Files
agent-estate-wiki/systems/homepage-dashboard.md
T

3.6 KiB

title, type, status, created, updated, confidence, tags
title type status created updated confidence tags
Homepage Dashboard systems active 2026-07-26 2026-07-26 high
dashboard
homepage
homelab
proxmox
monitoring

Homepage Dashboard

Purpose

Central dashboard for all homelab services, with Proxmox integration, per-VM stats, and a management UI.

URLs

  • Tailscale: https://runtipi.kangaroo-eel.ts.net:8443/
  • Local: http://runtipi.kangaroo-eel.ts.net:8082/
  • Manager UI: http://runtipi.kangaroo-eel.ts.net:8084/

Architecture

CT201 (runtipi)
├── Homepage container (port 8082) — main dashboard
├── Manager container (port 8084) — web UI for adding/removing apps
└── Tailscale serve (port 8443) — HTTPS proxy to Homepage

Tabs

Tab Content
Overview Infrastructure (2 cols) + Everyday (4 cols) + Resources
Media Jellyfin, arr stack, RSS
AI OmniRoute, LiteLLM, Lobe Chat, SearXNG
Agents Hermes, OpenClaw, Nanobot, Camofox
Tools IT tools, Cyber Chef, etc. + Storage
More Home Assistant, N8n, Jupyter
All Apps 114 apps in 5-column grid (alphabetical)

Proxmox Integration

  • Node widget: Shows live VM/LXC counts, CPU, memory for PVE node
  • Per-VM stats: Click "View Proxmox stats" on mapped services
  • API token: homepage@pve!homepage (privsep=0)
  • proxmox.yaml: Config at /opt/homepage/config/proxmox.yaml

VM/LXC Mapping

Service VMID Type
PVE (node)
Portainer docker 200 lxc
Portainer debianVM 101 qemu
Portainer openweb 245 lxc

Portainer on CT245 (openweb.kangaroo-eel.ts.net:9443) now uses a Tailscale/Let's Encrypt cert (installed 2026-08-09). Files: /root/portainer-certs/portainer.{crt,key} mounted into the container, --sslcert/--sslkey. Renewal: /root/renew-portainer-cert.sh via crontab (04:00 on the 1st monthly) — tailscale cert --min-validity=20d then docker restart portainer. Cert validity ~90 days. | Runtipi | 201 | lxc | | Gitea | 221 | lxc | | FreshRSS | 260 | lxc | | NextCloud | 270 | lxc | | LiteLLM | 500 | lxc | | OmniRoute | 600 | lxc | | Ntfy | 241 | lxc | | Home Assistant | 100 | qemu | | N8n | 215 | lxc | | Mattermost | 255 | lxc | | SFTPGo | 299 | lxc | | Cliproxy API | 103 | lxc | | OpenClaw | 403 | qemu | | Zeroclaw | 333 | lxc | | Hermes | 460 | lxc | | Hindsight | 450 | lxc |

Configuration Files

All at /opt/homepage/config/ on CT201:

  • services.yaml — All apps, groups, and Proxmox mappings
  • settings.yaml — Theme, layout, tabs
  • custom.css — Warm amber accent overrides
  • widgets.yaml — System health, clock
  • proxmox.yaml — PVE API token
  • docker.yaml — Docker socket integration

Manager UI

Web form at port 8084 for adding/removing apps without SSH.

  • Add: Name, Category (dropdown), URL, optional Icon
  • Delete: Search apps, click Delete
  • Auto-restart: Homepage restarts after each change

Type anywhere on the dashboard to search services by name/description. Google search disabled — only searches your apps.

Theme

  • Dark base with warm amber (#d4a04a) accents
  • Bigger tiles (68px min-height, 40px icons)
  • Custom CSS in custom.css

Tailscale Serve

Port 443 occupied by Traefik on CT201 — Tailscale uses port 8443 instead.

Maintenance

  • Restart Homepage: docker restart homepage
  • Restart Manager: docker restart homepage-manager
  • Edit apps manually: Edit /opt/homepage/config/services.yaml then restart
  • Docker auto-discovery: Add homepage.group, homepage.name, homepage.href labels to containers