103 lines
3.6 KiB
Markdown
103 lines
3.6 KiB
Markdown
---
|
|
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
|