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.shvia crontab (04:00 on the 1st monthly) —tailscale cert --min-validity=20dthendocker 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 mappingssettings.yaml— Theme, layout, tabscustom.css— Warm amber accent overrideswidgets.yaml— System health, clockproxmox.yaml— PVE API tokendocker.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
Quick Launch Search
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.yamlthen restart - Docker auto-discovery: Add
homepage.group,homepage.name,homepage.hreflabels to containers