homepage: function-first layout + fleet label sweep

Reorganize the gethomepage dashboard from site-based (PFI-ANA, ESH, NH3)
to function-first grouping (Monitoring, AI Systems, Apps, Media, Games,
Infra-<site>, Service Networking). Canonical config now tracked in
configs/homepage/ with Plex/Jellyfin widget keys moved to env
substitution.

Label sweep across fleet compose files:
  - beszel, dozzle, backrest -> Monitoring
  - rest-server-ana -> Service Networking

Healthcheck fixes (previous wget/curl paths broke on distroless +
--private-repos 401):
  - beszel hub:    /beszel health --url ...
  - beszel agent:  /agent health (newly added)
  - rest-server:   nc -z localhost 8000 (TCP probe)

Group name originally "Wiring / Plumbing" collapsed to single-word group
on homepage's parser; renamed to "Service Networking" everywhere.
This commit is contained in:
vh
2026-04-20 22:14:00 -07:00
parent 8c15ec2d5f
commit 2be296ffa0
16 changed files with 465 additions and 10 deletions
+165
View File
@@ -0,0 +1,165 @@
---
# https://gethomepage.dev/latest/configs/services
#
# Groups are ordered by settings.yaml `layout`. This file holds the manual
# entries — infrastructure, BMCs, off-Docker endpoints, and a handful of
# well-known internal service URLs. Docker-labeled stacks auto-populate
# their own groups through the providers in docker.yaml, so most app
# entries don't need to appear here.
- Monitoring:
# Beszel, Dozzle, Backrest arrive here via Docker label auto-discovery
# (homepage.group=Monitoring on their compose files). Do not re-add them
# manually — they'll double up in the UI.
- Uptime Kuma:
href: http://10.0.50.45:3001
icon: mdi-check-network
siteMonitor: http://10.0.50.45:3001
description: Uptime monitor (esh-docker-vm)
# AI Systems group is fully Docker-auto-discovered (llama-swap, vLLM Embed,
# vLLM Rerank — homepage.group=AI Systems on their compose files). Position
# and row×3 style for the group live in settings.yaml. Do not add entries
# here or they'll double up.
- Media:
- Plex:
href: http://10.0.50.56:32400
icon: si-plex
siteMonitor: http://10.0.50.56:32400
description: Media Server (esh-nas-pve 10.0.50.56)
widget:
type: plex
url: http://10.0.50.56:32400
key: '{{HOMEPAGE_VAR_PLEX_KEY}}'
- Jellyfin:
href: http://10.0.50.57:8096
icon: si-jellyfin
siteMonitor: http://10.0.50.57:8096
description: Media Server (esh-nas-pve 10.0.50.57)
widget:
type: jellyfin
url: http://10.0.50.57:8096
key: '{{HOMEPAGE_VAR_JELLYFIN_KEY}}'
enableBlocks: true
- Games:
- Pterodactyl:
href: http://10.250.50.55/
icon: mdi-gamepad-square
siteMonitor: http://10.250.50.55
description: Game server panel
- Infra - ANA:
- ANA-Firewall:
href: https://ana-fw.phasefinal.com/
icon: mdi-wall-fire
siteMonitor: https://10.250.250.1
description: ana-gw Fortigate 81F
- PFI-r750xs-iDRAC:
href: https://10.250.250.30/
siteMonitor: https://10.250.250.30/
icon: si-dell
description: iDRAC (Dell R750xs)
- PFI-PVE:
href: https://10.250.250.31:8006/
siteMonitor: https://10.250.250.31:8006/
icon: si-proxmox
description: Proxmox hypervisor (pfi-pve)
- ANA-NAS:
href: https://10.250.50.50:9090/
siteMonitor: https://10.250.50.50:9090/
icon: mdi-nas
description: Debian NAS (Cockpit)
- ANA-FileBot:
ping: 10.250.50.53
icon: mdi-sync-circle
description: File-task VM
- PFI-VM-Docker:
href: http://10.250.50.70:5001
icon: si-docker
ping: 10.250.50.70
description: Docker VM (ana-docker, Dockge at :5001)
- PFI-ANA-ML2:
ping: 10.250.50.54
icon: mdi-brain
description: GPU host (bare-metal)
- PFI-ANA-ML2 BMC:
ping: 10.250.250.50
icon: mdi-brain
description: BMC (ana-ml2)
- Infra - NH3:
- NH3-Firewall:
href: https://10.100.250.1
icon: mdi-wall-fire
siteMonitor: https://10.100.250.1
description: nh3-gw Fortigate 101F
- NH3-SW1:
href: https://10.100.250.2
icon: mdi-switch
ping: 10.100.250.2
description: Mikrotik CRS328-24P-4S+
- NH3-NAS:
href: https://10.100.50.50:5001
icon: mdi-nas
siteMonitor: https://10.100.50.50:5001
description: Synology RS2418+ DSM (restic target + VM storage)
- NH3-PVE:
href: https://10.100.250.60:8006/
siteMonitor: https://10.100.250.60:8006/
icon: si-proxmox
description: Proxmox hypervisor (nh3-pve)
- NH3-VM-Docker:
href: http://10.100.50.40:5001
icon: si-docker
ping: 10.100.50.40
description: Docker VM (nh3-docker, Dockge at :5001)
- NH3-Ansible:
ping: 10.100.50.42
icon: si-ansible
description: Ansible control node
- Infra - ESH:
- ESH-Firewall:
href: https://10.0.250.1
icon: mdi-wall-fire
siteMonitor: https://10.0.250.1
description: esh-gw
- Brother Printer:
href: http://10.0.90.125/
icon: mdi-printer
siteMonitor: http://10.0.90.125/
description: Brother (ESH)
- ESH-NAS:
href: https://10.0.50.50:9090
icon: mdi-nas
siteMonitor: https://10.0.50.50:9090
description: NAS share manager (Cockpit)
- ESH-PVE:
href: https://10.0.250.35:8006
siteMonitor: https://10.0.250.35:8006
icon: si-proxmox
description: Proxmox hypervisor (esh-pve)
- ESH-PVE-NAS:
href: https://10.0.50.55:8006
siteMonitor: https://10.0.50.55:8006
icon: si-proxmox
description: Proxmox hypervisor (esh-pve-nas, storage/media)
- ESH-FileBot:
ping: 10.0.50.70
icon: mdi-sync-circle
description: Restic / file-sync VM (esh-nas-pve) — role TBC
- ESH-VM-Docker:
href: http://10.0.50.45:5001
icon: si-docker
ping: 10.0.50.45
description: Docker VM (esh-docker-vm, Dockge at :5001)
# Service Networking group is now fully Docker-auto-discovered (Traefik ×2,
# AdGuard ×2, Dockge ×5, rest-server-ana, mailrise, etc. all carry
# homepage.group=Service Networking on their compose files). Position and
# layout live in settings.yaml. Do not add entries here or they'll double up.
#
# Mosquitto (ESH) note: still labeled Apps on its compose; once moved to
# Service Networking via a label change on esh-docker-vm, it auto-populates.