# Overlook's config. Every host here is invented: put your own. # A key Overlook doesn't know stops it, and so does a ${VAR} that isn't set # in its environment or in the .env beside this file: keep keys and # passwords there, not here. sources: # The check engine: its checks, and which of them are problems. gatus: - url: ${GATUS_URL} # where Overlook reads Gatus, such as http://gatus:8080 link: https://status.example.com # where the page sends you, if not the same # user: overlook # a login, if your Gatus asks for one # password: ${GATUS_PASSWORD} threshold: 3 # failures in a row that make a problem: as your alerts # A group named like an area (Servers, Network, Storage, Apps) goes # there. Say where each other group goes; one you don't name goes in # no area, though its problems still show. areas: DNS: network Backups: storage Media: apps # Another check engine: the monitors on one of Uptime Kuma's status pages. uptimekuma: - url: http://uptime-kuma:3001 # where Overlook reads Uptime Kuma page: homelab # the status page's slug, as in /status/homelab # link: https://uptime.example.com # where the page sends you, if not the same # areas: # as Gatus's, for the status page's groups # DNS: network # Another check engine: the alert rules Grafana manages, in their folders. grafana: - url: http://grafana:3000 # where Overlook reads Grafana token: ${GRAFANA_TOKEN} # a service account's, with the Viewer role # link: https://grafana.example.com # where the page sends you, if not the same # areas: # as Gatus's, for the rules' folders # Hosts: servers # Another check engine: Prometheus's alerting rules, by their groups, and # which of them Alertmanager silences. prometheus: - url: http://prometheus:9090 # where Overlook reads Prometheus alertmanager: http://alertmanager:9093 # its Alertmanager, if it sends alerts to one # user: overlook # a login, if they ask for one # password: ${PROMETHEUS_PASSWORD} # areas: # as Gatus's, for the rule groups # node: servers # Another check engine: each monitor Checkmate checks, by its group, and # the problems its incidents remember. checkmate: - url: http://checkmate:52345 # where Overlook reads Checkmate user: overlook@example.com # a user of its own, with the role user password: ${CHECKMATE_PASSWORD} # link: https://checkmate.example.com # where the page sends you, if not the same # areas: # as Gatus's, for the monitors' groups # DNS: network # The updates waiting: the open pull requests from Dependabot or Renovate, # read at most every 10 minutes. github: - repos: [example/homelab] # each as owner/name # A private repository needs a token: token: ${GITHUB_TOKEN} # The photos: what each person keeps and uploaded this week, the space, # Immich's version and its jobs. immich: - url: ${IMMICH_URL} # where Overlook reads Immich, such as http://immich:2283 key: ${IMMICH_KEY} # an API key with the read permissions in the README # Each guest's newest backup in a datastore, and the nights that made them. pbs: - url: https://pbs.example.com:8007 token: overlook@pbs!overlook # an API token's ID, as user@realm!name secret: ${PBS_SECRET} # and its secret datastore: backups # PBS signs its own certificate. Copy it from the server's # /etc/proxmox-backup/proxy.pem and say where it is. If the url names # PBS by an address its certificate doesn't, say the name it does. # ca: /etc/overlook/pbs.pem # server_name: pbs.example.com # The hosts and their guests, storage and ZFS pools, and the backup runs. proxmox: - url: https://pve.example.com:8006 token: overlook@pve!overlook # an API token's ID, as user@realm!name secret: ${PROXMOX_SECRET} # and its secret # Proxmox signs its own certificate. Copy its CA from the host's # /etc/pve/pve-root-ca.pem and say where it is; Overlook never reads # a source it can't check. # ca: /etc/overlook/pve-root-ca.pem # Each system Beszel's agents report on, as a host: whether it's up, how # busy and how full it is, and its week by the hour. beszel: - url: http://beszel:8090 # where Overlook reads the hub user: overlook@example.com # a user of its own, with the role readonly password: ${BESZEL_PASSWORD} # Each container a Docker engine runs, and those that exited, restart or # fail their health check. Docker's socket is root, so Overlook reads it # only through a socket proxy that lets the containers' reads through. docker: - url: http://socket-proxy:2375 # the proxy, over HTTP # name: Media # with more than one engine, tell them apart # The films: how many, how much room, what came this week and what's coming. radarr: - url: http://radarr:7878 # where Overlook reads Radarr key: ${RADARR_KEY} # Settings, General, API Key # The shows and their episodes, the same way. sonarr: - url: http://sonarr:8989 # where Overlook reads Sonarr key: ${SONARR_KEY} # Settings, General, API Key # The indexers: those disabled or failing, and what each found this week. prowlarr: - url: http://prowlarr:9696 # where Overlook reads Prowlarr key: ${PROWLARR_KEY} # Settings, General, API Key # The torrents: what downloads and seeds, those in error, the room left on # its disk, and whether peers reach it. qbittorrent: - url: http://qbittorrent:8080 # where Overlook reads qBittorrent's web UI key: ${QBITTORRENT_KEY} # from 5.2: Options, WebUI, API key # user: overlook # before 5.2, its login instead # password: ${QBITTORRENT_PASSWORD} # The films, shows and music: what each person plays now, the plays of the # last day, the room left on the libraries' disks, failed logins and tasks. jellyfin: - url: http://jellyfin:8096 # where Overlook reads Jellyfin key: ${JELLYFIN_KEY} # Dashboard, API Keys # Emby's films, shows and music: what each person plays now, the plays of # the last day, failed logins and tasks. emby: - url: http://emby:8096 # where Overlook reads Emby key: ${EMBY_KEY} # Dashboard, Advanced, API Keys # Plex, through Tautulli: what plays now, the libraries and the plays of # the last day, added up with Jellyfin's and Emby's. tautulli: - url: http://tautulli:8181 # where Overlook reads Tautulli, directly, not through a proxy key: ${TAUTULLI_KEY} # Settings, Web Interface, API key # The requests for films and shows: those waiting for your approval are # chores, and the problems people reported show. seerr: - url: http://seerr:5055 # where Overlook reads Seerr key: ${SEERR_KEY} # Settings, General, API Key # link: https://requests.example.com # where the page sends you, if not the same # The home: broken automations and devices that dropped off, and, as # chores, the updates waiting to be installed and the batteries to change. homeassistant: - url: http://homeassistant:8123 # where Overlook reads Home Assistant token: ${HOMEASSISTANT_TOKEN} # a long-lived access token of a user of its own # link: https://home.example.com # where the page sends you, if not the same # The documents: how many, how many wait in the inbox, the room left, the # parts it runs on that aren't well, and the documents it failed to take in. paperless: - url: http://paperless:8000 # where Overlook reads Paperless-ngx token: ${PAPERLESS_TOKEN} # the API token of a user of its own, as the README says # The files: how many, the shares, who used it today, the room left, and, # as chores, the apps waiting for an update. nextcloud: - url: http://nextcloud # where Overlook reads Nextcloud token: ${NEXTCLOUD_TOKEN} # serverinfo's token, as the README says # link: https://cloud.example.com # where the page sends you, if not the same # A UPS, read from NUT's upsd: its power, its battery and what it draws. nut: - host: ${NUT_HOST} # where upsd listens, such as nut.example.com or nut.example.com:3493 ups: ups # the UPS's name in upsd, as in its ups.conf # A UniFi OS console: each WAN, each device and its state, the clients # connected, and, as chores, the firmware waiting and the devices waiting # to be adopted. It reads every site on the console. unifi: - url: https://unifi.example.com # where Overlook reads the console key: ${UNIFI_KEY} # an API key, from the Network application's Integrations # The console signs its own certificate, for unifi.local. Save it, such # as with openssl s_client, say where it is, and name unifi.local. # ca: /etc/overlook/unifi.pem # server_name: unifi.local # link: https://unifi.ui.com/consoles/… # where the page sends you, if not the same # Each DNS resolver: whether it filters, today's lookups and blocks, and # its top clients and domains. Give each its own name. adguard: - name: Primary DNS url: http://dns1.example.com user: overlook # its login password: ${ADGUARD_PASSWORD} - name: Standby DNS url: http://dns2.example.com user: overlook password: ${ADGUARD_PASSWORD} # A Pi-hole resolver the same way, its lookups added up with any other's. pihole: - name: Kids' DNS url: http://pihole.example.com # where Overlook reads Pi-hole's web interface password: ${PIHOLE_PASSWORD} # an app password, from Settings, Web interface / API # The chores you keep on a to-do list: mark one done there, in any CalDAV # app, and the page follows. A to-do with no due date is due now. ical: - url: https://dav.example.com/owner/chores/ # Radicale's list; Nextcloud's or Baïkal's with ?export user: owner # a login, if the server asks for one password: ${DAV_PASSWORD} # The apps the homelab hosts, and the tools that run it. An icon is a file in # icons/ beside this config (or one Overlook ships), or a URL. A check is a # Gatus check's name, which lights the app's dot: with two Gatus that both # have it, say which, as Gatus Outside/Photos. apps: - name: Photos url: https://photos.example.com icon: immich.svg check: Photos description: The household's photos color: "#ED79B5" - name: Calendar url: https://dav.example.com icon: radicale.svg check: Calendar description: Calendars and contacts color: "#E5484D" - name: Films url: https://films.example.com icon: radarr.svg check: Films description: The film library color: "#FFC230" - name: Home Assistant url: https://ha.example.com icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/home-assistant.svg description: The house color: "#18BCF2" tools: - name: Gatus url: https://status.example.com icon: gatus.svg description: Every check and its history color: "#3CAD4B" - name: Proxmox url: https://pve.example.com:8006 icon: proxmox.svg check: Hypervisor description: The host and its guests color: "#E57000"