04282232cc
Runs as a host-level systemd timer on CT122 (scripts/discover-devices.sh) rather than inside the api container, since real ARP entries live in the host's network namespace, not Docker's bridge network. See docs/device-discovery.md for the full writeup, including why literal passive-only ARP reading was dropped (near-empty result in practice). API reads the resulting JSON file each poll cycle, cross-references config/hosts.yaml's knownDevices list by IP, and serves /api/devices. Dashboard gets a new "Network Devices" table. Closes #9. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
86 lines
2.4 KiB
YAML
86 lines
2.4 KiB
YAML
# Declares what the dashboard monitors. No secrets here — credentials come from
|
|
# environment variables (see .env.example) so this file can be committed safely.
|
|
proxmox:
|
|
host: 192.168.1.144
|
|
node: pve
|
|
|
|
# Bare-metal boxes Proxmox can't see. Connects with the dedicated
|
|
# `monitor` SSH key (see docs/ssh-collector-key-setup.md), read-only commands only.
|
|
sshHosts:
|
|
- id: omv
|
|
displayName: omv
|
|
group: Bare Metal
|
|
host: 192.168.1.180
|
|
username: root
|
|
diskPaths:
|
|
- path: /
|
|
label: os
|
|
- path: /srv/mergerfs/media
|
|
label: media
|
|
- id: ripper
|
|
displayName: ripper
|
|
group: Bare Metal
|
|
host: 192.168.1.171
|
|
username: jhodgkin
|
|
diskPaths:
|
|
- path: /
|
|
label: os
|
|
|
|
# LAN device discovery reads devices-raw.json (produced by scripts/discover-devices.sh
|
|
# via a systemd timer on the deploy host, see docs/device-discovery.md) and labels any
|
|
# IP found here as "known" instead of "unknown". Keyed by IP since these are all DHCP
|
|
# reservations, not truly static — update if a reservation ever changes.
|
|
knownDevices:
|
|
- ip: 192.168.1.144
|
|
name: pve (Proxmox host)
|
|
- ip: 192.168.1.180
|
|
name: omv (NAS)
|
|
- ip: 192.168.1.171
|
|
name: ripper (DVD ripper)
|
|
- ip: 192.168.1.103
|
|
name: homelab-monitor (this dashboard, CT122)
|
|
- ip: 192.168.1.226
|
|
name: audiobookshelf (CT100)
|
|
- ip: 192.168.1.119
|
|
name: nextcloud (CT101)
|
|
- ip: 192.168.1.185
|
|
name: nginxproxymanager (CT102)
|
|
- ip: 192.168.1.125
|
|
name: immich (CT103)
|
|
- ip: 192.168.1.243
|
|
name: jellyfin (CT104)
|
|
- ip: 192.168.1.245
|
|
name: rclone (CT105)
|
|
- ip: 192.168.1.168
|
|
name: booklore (CT106)
|
|
- ip: 192.168.1.200
|
|
name: actualbudget (CT107)
|
|
- ip: 192.168.1.135
|
|
name: graylog (CT108)
|
|
- ip: 192.168.1.172
|
|
name: zabbix (CT109)
|
|
- ip: 192.168.1.215
|
|
name: cloudflared (CT110)
|
|
- ip: 192.168.1.246
|
|
name: pve-runner / lisilou-portfolio (CT111)
|
|
- ip: 192.168.1.237
|
|
name: thatguylaserworks (CT112)
|
|
- ip: 192.168.1.149
|
|
name: n8n (CT113)
|
|
- ip: 192.168.1.236
|
|
name: keycloak (CT114, being decommissioned)
|
|
- ip: 192.168.1.184
|
|
name: postgresql (CT115)
|
|
- ip: 192.168.1.186
|
|
name: gitea (CT116)
|
|
- ip: 192.168.1.247
|
|
name: gitea-runner (CT117)
|
|
- ip: 192.168.1.187
|
|
name: homeassistant (CT118)
|
|
- ip: 192.168.1.183
|
|
name: mosquitto (CT119)
|
|
- ip: 192.168.1.241
|
|
name: vaultwarden (CT120)
|
|
- ip: 192.168.1.208
|
|
name: authentik (CT121)
|