--- title: Homepage Dashboard type: systems status: active created: 2026-07-26 updated: 2026-07-26 confidence: high tags: [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 ## 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.yaml` then restart - **Docker auto-discovery:** Add `homepage.group`, `homepage.name`, `homepage.href` labels to containers