f4a5ba7c31
A standing user-level web server (nh3-dev :8090) that renders drop-folders under ~/booth-data as ephemeral media "booths" so Claude Code sessions can surface A/B renders and smoke results to the operator, then let them self-wipe. - Scan-and-serve model, no database, no upload API — a booth is just a folder. A folder's own index.html is served verbatim; otherwise an auto-gallery of images / webm+mp4 video / audio is rendered, with <file>.txt caption sidecars folded in (labels A/B pairs). - 24h TTL from newest mtime in the tree; background sweeper wipes stale booths. - Path-traversal + symlink-escape guarded; delete via UI button or DELETE API. - FastAPI + Jinja2, runs from the checkout under systemctl --user (booth.service), alongside the other nh3-dev fleet sidecars. 15 tests, all green. - Homepage tile added (Apps -> The Booth, siteMonitor /healthz). - Harden the homepage rsync doc: exclude *.bak* and logs/ so --delete can't wipe the host's dated services.yaml backups (footgun found deploying this).
217 lines
7.6 KiB
YAML
217 lines
7.6 KiB
YAML
---
|
||
# 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)
|
||
|
||
- Apps:
|
||
# Manual entry — the Booth is a user-level systemd service on nh3-dev
|
||
# (not a Docker-labeled stack), so it can't auto-discover; list it here.
|
||
- The Booth:
|
||
href: http://10.100.10.50:8090/
|
||
icon: mdi-filmstrip
|
||
siteMonitor: http://10.100.10.50:8090/healthz
|
||
description: Ephemeral media drop — CC-session A/B & smoke results (nh3-dev, 24h TTL)
|
||
|
||
# The AI tab is fully Docker-auto-discovered. Each inference service carries
|
||
# a homepage.group=AI - <role> label on its compose file (AI - Inference,
|
||
# AI - Eval & Retrieval, AI - Gateways & Chat, AI - Speech (TTS),
|
||
# AI - Audio Tools, AI - Image & Media). Tab assignment, group order, and
|
||
# column counts live in settings.yaml. Do not add entries here or they'll
|
||
# double up. To move a service between AI groups, change the label on its
|
||
# compose file and recreate the container (labels only apply on recreate).
|
||
|
||
- 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://10.250.250.1
|
||
icon: mdi-wall-fire
|
||
siteMonitor: https://10.250.250.1
|
||
description: ana-gw Fortigate 81F (ana-fw.phasefinal.com)
|
||
- PFI-r750xs-iDRAC:
|
||
href: https://10.250.250.30/
|
||
siteMonitor: https://10.250.250.30/
|
||
icon: si-dell
|
||
description: iDRAC (Dell R750xs) — OOB for pfi-pve @ 10.250.250.31
|
||
- 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
|
||
siteMonitor: http://10.250.50.70:5001
|
||
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:
|
||
href: https://10.250.250.50
|
||
icon: mdi-brain
|
||
siteMonitor: https://10.250.250.50
|
||
description: BMC (ana-ml2)
|
||
- SFsrv-ANA:
|
||
href: https://10.250.250.115:8006
|
||
icon: si-proxmox
|
||
siteMonitor: https://10.250.250.115:8006
|
||
description: Proxmox (SureFire tenant hypervisor at PFI colo)
|
||
- SF-R630-iDRAC:
|
||
href: https://10.250.250.110/
|
||
icon: si-dell
|
||
ping: 10.250.250.110
|
||
description: Dell R630 iDRAC (SureFire tenant hardware)
|
||
- PBS-ANA:
|
||
href: https://10.250.50.90:8007/
|
||
icon: mdi-backup-restore
|
||
siteMonitor: https://10.250.50.90:8007/
|
||
description: Proxmox Backup Server — primary (fleet vzdump target)
|
||
|
||
- Infra - NH3:
|
||
# NH3-Firewall (Fortigate 101F at 10.100.250.1) retired 2026-04-21,
|
||
# replaced by PFI-UDMSE (UniFi UDM Pro SE at 10.100.0.1, below).
|
||
# NH3-SW1 (Mikrotik CRS328-24P-4S+ at 10.100.250.2) retired from
|
||
# homepage 2026-04-22.
|
||
- PFI-UDMSE:
|
||
href: https://10.100.0.1
|
||
icon: si-ubiquiti
|
||
siteMonitor: https://10.100.0.1
|
||
description: UniFi Dream Machine Pro SE — gateway + controller (NH3 edge)
|
||
- 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
|
||
siteMonitor: http://10.100.50.40:5001
|
||
description: Docker VM (nh3-docker, Dockge at :5001)
|
||
- NH3-Ansible:
|
||
ping: 10.100.50.42
|
||
icon: si-ansible
|
||
description: Ansible control node
|
||
- PBS-NH3:
|
||
href: https://10.100.50.90:8007/
|
||
icon: mdi-backup-restore
|
||
siteMonitor: https://10.100.50.90:8007/
|
||
description: Proxmox Backup Server — DR mirror (pulls from PBS-ANA)
|
||
|
||
- Infra - IRV:
|
||
# Irvine site — reachable only via WireGuard tunnel from NH3.
|
||
# The 10.100.79.0/24 subnet is the WG tunnel IP space; these cards
|
||
# only light up when the WG link is healthy.
|
||
- IRV-ML1:
|
||
ping: 10.100.79.3
|
||
icon: mdi-brain
|
||
description: GPU host (bare-metal, RTX 3090 + RTX A6000, native AI stacks)
|
||
- IRV-ML1-Dockge:
|
||
href: http://10.100.79.3:5001
|
||
icon: si-docker
|
||
siteMonitor: http://10.100.79.3:5001
|
||
description: Docker management (irv-ml1)
|
||
|
||
- Infra - ESH:
|
||
- ESH-UDMPM:
|
||
href: https://10.0.0.1
|
||
icon: si-ubiquiti
|
||
siteMonitor: https://10.0.0.1
|
||
description: UniFi Dream Machine Pro Max — gateway + controller (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
|
||
siteMonitor: http://10.0.50.45:5001
|
||
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.
|