Files
hermes-ice/homelab/entities/homepage.md
Hermes Agent e4d91aadf9 Initial commit: homelab infrastructure wiki
- Full Obsidian vault content
- Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte)
- Media stack documentation
- Traefik HA setup
- Automation scripts
- Bachelor party planning
2026-05-24 16:08:40 -07:00

331 lines
12 KiB
Markdown

---
title: homepage
created: 2026-04-29
updated: 2026-04-29
type: entity
tags: [services, docker, homelab]
sources: []
---
# homepage
**Role:** Unified homelab dashboard — service bookmarks, Docker widget, infrastructure status
**Image:** `gethomepage/homepage:latest`
**Websites:** See Traefik routes below
## Overview
Two Homepage instances provide a unified dashboard for the homelab. [GetHomepage](https://gethomepage.dev/) is a modern, configurable dashboard for homelab services. It uses Docker socket integration for live container status, widgets for service metrics, and Traefik for ingress routing.
| Instance | Host | Port | Network | Traefik Route |
|----------|------|------|---------|--------------|
| `homepage-ubuntu` | [[ubuntu]] | 3003 | `proxy-net` | `homepage.local.tophermayor.com`, `homepage-ubuntu.local.tophermayor.com` |
| `homepage-grizzley` | [[grizzley]] | 3000 | `traefik-proxy` | `homepage-grizzley.local.tophermayor.com` |
**Traefik VIP routing:** `homepage.local.tophermayor.com``homepage-to-self``http://192.168.50.61:3003` (ubuntu). The grizzley instance is accessible at `homepage-grizzley.local.tophermayor.com`.
## Docker Configuration
### homepage-ubuntu
```yaml
container_name: homepage-ubuntu
image: gethomepage/homepage:latest
network: proxy-net
ports: 3003
bind mount: /home/bear/homelab/ubuntu/homepage/config → /app/config
docker socket: /var/run/docker.sock (read-only)
memory limit: (none set — uses host resources)
```
Config path: `/home/bear/homelab/ubuntu/homepage/config/`
### homepage-grizzley
```yaml
container_name: homepage-grizzley
image: ghcr.io/gethomepage/homepage:latest
network: traefik-proxy
ports: 3000
bind mount: /home/bear/homelab/grizzley/docker/homepage/config → /app/config
docker socket: /var/run/docker.sock (read-only)
memory limit: 256MB (hard), 64MB (reserved)
allowed hosts: homepage.local.tophermayor.com, homepage-grizzley.local.tophermayor.com, 192.168.50.84:3000
```
Config path: `/home/bear/homelab/grizzley/docker/homepage/config/`
## Traefik Routes (ubuntu Traefik)
From `homelab/ubuntu/traefik/config/dynamic/upstream-ingress.yml`:
```yaml
# Primary VIP route → ubuntu instance
homepage-vip:
rule: "Host(`homepage.local.tophermayor.com`)"
entryPoints: [websecure]
service: homepage-to-self
priority: 100
tls: {}
# Direct ubuntu route
homepage-local:
rule: "Host(`homepage-ubuntu.local.tophermayor.com`)"
entryPoints: [websecure]
service: homepage-to-self
priority: 100
tls: {}
# grizzley backup route (bypasses VIP)
homepage-backup-grizzley:
rule: "Host(`homepage-grizzley.local.tophermayor.com`)"
entryPoints: [websecure]
service: homepage-grizzley-svc
priority: 100
tls: {}
```
Services:
- `homepage-to-self``http://192.168.50.61:3003`
- `homepage-grizzley-svc``http://192.168.50.84:3000`
## Settings (ubuntu instance)
From `settings.yaml`:
```yaml
title: Ubuntu Homepage
description: Homelab dashboard — all hosts.
target: _self
theme: dark
color: slate
iconStyle: theme
background:
image: https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&w=2560&q=80
opacity: 28
brightness: 55
saturate: 60
cardBlur: md
```
Layout (4-column rows by section):
- Media Servers (4 cols)
- Media Automation (5 cols)
- Grizzley (4 cols)
- Apps (4 cols)
- Infrastructure (4 cols)
## Widgets (ubuntu instance)
From `widgets.yaml`:
```yaml
- resources:
cpu: true
memory: true
disk: /
- search:
provider: duckduckgo
target: _blank
```
From `docker.yaml`:
```yaml
ubuntu:
socket: /var/run/docker.sock
```
Docker socket integration provides live container status for all services on [[ubuntu]].
## Services Displayed (ubuntu homepage)
### Media Servers
| Service | URL | Widget |
|---------|-----|--------|
| Jellyfin | https://jellyfin.tophermayor.com | Jellyfin widget (`http://jellyfin:8096`, key `3aabf1af...`) |
| Immich | https://immich.tophermayor.com | — |
| Navidrome | https://navidrome.tophermayor.com | — |
| Audiobookshelf | https://audiobooks.tophermayor.com | — |
| Kavita | https://kavita.tophermayor.com | — |
| Calibre-Web | https://calibre-web.local.tophermayor.com | — |
| Stremio | https://stremio.local.tophermayor.com | — |
### Media Automation
| Service | URL | Widget |
|---------|-----|--------|
| Gluetun VPN | (internal) | Gluetun widget (`http://gluetun:8000`, v2) |
| Sonarr | https://sonarr.local.tophermayor.com | Sonarr widget (key `0573d93d...`) |
| Sonarr Anime | https://sonarr-anime.local.tophermayor.com | Sonarr widget (key `84de4e4a...`) |
| Radarr | https://radarr.local.tophermayor.com | Radarr widget (key `d69cafc9...`) |
| Radarr Anime | https://radarr-anime.local.tophermayor.com | Radarr widget (key `d4373fbc...`) |
| Lidarr | https://lidarr.local.tophermayor.com | Lidarr widget (key `55921016...`) |
| Readarr | https://readarr.local.tophermayor.com | — |
| Prowlarr | https://prowlarr.local.tophermayor.com | — |
| qBittorrent | https://qbittorrent.local.tophermayor.com | — |
| SABnzbd | https://sabnzbd.local.tophermayor.com | SABnzbd widget (key `01d3c44b...`) |
| NZBdav | https://nzbdav.local.tophermayor.com | — |
| Seerr | https://jellyseerr.tophermayor.com | Overseerr widget (key `MTc2NTIy...`) |
### Grizzley (links through to grizzley-hosted services)
| Service | URL |
|---------|-----|
| Homepage Grizzley | https://homepage-grizzley.local.tophermayor.com |
| Traefik Grizzley | https://traefik-grizzley.local.tophermayor.com |
| Komodo | https://komodo.local.tophermayor.com |
| AIOManager | https://aiomanager.tophermayor.com |
| AIOStreams | https://aiostreams.tophermayor.com |
| AIOMetadata | https://aiometadata.tophermayor.com |
| Vaultwarden | https://vaultwarden.tophermayor.com |
| Status (Uptime Kuma) | https://status.tophermayor.com |
### Apps
| Service | URL | Widget |
|---------|-----|--------|
| Authentik | https://auth.tophermayor.com | — |
| Gitea | https://gitea.tophermayor.com | — |
| Home Assistant | https://ha.tophermayor.com | HomeAssistant widget (key `eyJhbG...`, fields: people_home, lights_on, switches_on) |
| OpenCode | https://opencode.tophermayor.com | — |
| OpenCode Ice | https://opencode-ice.local.tophermayor.com | — |
| Whisper | https://whisper.local.tophermayor.com | — |
### Infrastructure
| Service | URL | Widget |
|---------|-----|--------|
| Traefik | https://traefik.local.tophermayor.com | Traefik widget (`http://traefik:8080`) |
| Proxmox | https://proxmox.local.tophermayor.com | Proxmox widget (user: `homepage@pam!homepage`, node: pve) |
| TrueNAS | https://truenas.local.tophermayor.com | TrueNAS widget (key `1-SdjbJ...`) |
| Grafana | https://grafana.local.tophermayor.com | — |
| Prometheus | https://prometheus.local.tophermayor.com | Prometheus widget (`http://prometheus:9090`) |
| Reccollection | https://reccollection.local.tophermayor.com | — |
## Services Displayed (grizzley homepage)
### Grizzley (local services)
| Service | URL | Widget |
|---------|-----|--------|
| Traefik | https://traefik-grizzley.local.tophermayor.com | Traefik widget (`http://traefik-pi:8080`) |
| Komodo | https://komodo.local.tophermayor.com | Komodo widget (key `K_jjWNbR...`, secret `S_IHGCW15...`) |
| AIOManager | https://aiomanager.tophermayor.com | — |
| AIOStreams | https://aiostreams.tophermayor.com | — |
| AIOMetadata | https://aiometadata.tophermayor.com | — |
| Vaultwarden | https://vaultwarden.tophermayor.com | — |
| Status (Uptime Kuma) | https://status.tophermayor.com | UptimeKuma widget (slug: default) |
| Minecraft Standby | (UDP 19132) | — |
| Minecraft Sison | (UDP 19134) | — |
| Jellyfin Standby | (internal) | — |
### Ubuntu (linked)
| Service | URL |
|---------|-----|
| Homepage Ubuntu | https://homepage-ubuntu.local.tophermayor.com |
| Traefik Ubuntu | https://traefik.local.tophermayor.com |
| OpenCode | https://opencode.tophermayor.com |
| Authentik | https://auth.tophermayor.com |
| Gitea | https://gitea.tophermayor.com |
| Whisper | https://whisper.local.tophermayor.com |
| Stremio Server | https://stremio.local.tophermayor.com |
| Reccollection | https://reccollection.local.tophermayor.com |
### Media (ubuntu via links)
| Service | URL |
|---------|-----|
| Jellyfin | https://jellyfin.tophermayor.com |
| Seerr | https://jellyseerr.tophermayor.com |
| Immich | https://immich.tophermayor.com |
| Navidrome | https://navidrome.tophermayor.com |
| Audiobookshelf | https://audiobooks.tophermayor.com |
| Kavita | https://kavita.tophermayor.com |
| Calibre-Web | https://calibre-web.local.tophermayor.com |
### Media Automation (ubuntu via links)
| Service | URL | Widget |
|---------|-----|--------|
| Sonarr | https://sonarr.local.tophermayor.com | Sonarr (key `0573d93d...`) |
| Radarr | https://radarr.local.tophermayor.com | Radarr (key `d69cafc9...`) |
| Lidarr | https://lidarr.local.tophermayor.com | Lidarr (key `55921016...`) |
| Readarr | https://readarr.local.tophermayor.com | — |
| Prowlarr | https://prowlarr.local.tophermayor.com | — |
| qBittorrent | https://qbittorrent.local.tophermayor.com | — |
| SABnzbd | https://sabnzbd.local.tophermayor.com | SABnzbd (key `01d3c44b...`) |
| Sonarr Anime | https://sonarr-anime.local.tophermayor.com | Sonarr (key `84de4e4a...`) |
| Radarr Anime | https://radarr-anime.local.tophermayor.com | Radarr (key `d4373fbc...`) |
### Apps (ubuntu via links)
| Service | URL | Widget |
|---------|-----|--------|
| Home Assistant | https://ha.tophermayor.com | HomeAssistant (key `eyJhbG...`, fields: people_home, lights_on, switches_on) |
| OpenCode Ice | https://opencode-ice.local.tophermayor.com | — |
### Infrastructure (ubuntu via links)
| Service | URL | Widget |
|---------|-----|--------|
| Proxmox | https://proxmox.local.tophermayor.com | Proxmox (user `homepage@pam!homepage`, node pve) |
| TrueNAS | https://truenas.local.tophermayor.com | TrueNAS (key `1-SdjbJ...`) |
| Grafana | https://grafana.local.tophermayor.com | — |
| Prometheus | https://prometheus.local.tophermayor.com | — |
## Bookmark Groups (ubuntu)
From `bookmarks.yaml`:
```yaml
- Developer:
- Github (abbr: GH) → https://github.com/
- Social:
- Reddit (abbr: RE) → https://reddit.com/
- Entertainment:
- YouTube (abbr: YT) → https://youtube.com/
```
## Kubernetes / Proxmox Configs
Both instances have `kubernetes.yaml` and `proxmox.yaml` for additional infrastructure widgets.
## Upstream Ingress Widget Routes (Traefik)
From `homelab/ubuntu/traefik/config/dynamic/homepage-widgets.yml` — Traefik routes exposed **through** homepage for internal service access (not homepage's own routes):
```yaml
# Routes via gluetun VPN for media services
sonarr-svc: http://gluetun:8989 # Host(`sonarr-internal.local.tophermayor.com`)
radarr-svc: http://gluetun:7878 # Host(`radarr-internal.local.tophermayor.com`)
lidarr-svc: http://gluetun:8686 # Host(`lidarr-internal.local.tophermayor.com`)
sabnzbd-svc: http://gluetun:8080 # Host(`sabnzbd-internal.local.tophermayor.com`)
seerr-svc: http://seerr:5055 # Host(`seerr-internal.local.tophermayor.com`)
jellyfin-svc: http://jellyfin:8096 # Host(`jellyfin-internal.local.tophermayor.com`)
prometheus-svc: http://prometheus:9090 # Host(`prometheus-internal.local.tophermayor.com`)
```
These are the `*-internal.local.tophermayor.com` routes — accessible only inside the network via gluetun VPN tunnel.
## Access URLs
| URL | Host | Notes |
|-----|------|-------|
| https://homepage.local.tophermayor.com | [[ubuntu]] | Primary VIP route |
| https://homepage-ubuntu.local.tophermayor.com | [[ubuntu]] | Direct ubuntu instance |
| https://homepage-grizzley.local.tophermayor.com | [[grizzley]] | Direct grizzley instance |
## Config Files
| File | Purpose |
|------|---------|
| `services.yaml` | Service definitions, URLs, icons, widget configs |
| `settings.yaml` | Theme, layout, background image |
| `widgets.yaml` | Resource monitors, search bar |
| `docker.yaml` | Docker socket connection |
| `bookmarks.yaml` | Quick bookmarks bar |
| `kubernetes.yaml` | K8s widget config |
| `proxmox.yaml` | Proxmox widget config |
| `custom.css` | Custom styles |
| `custom.js` | Custom JavaScript |
## Related
- [[ubuntu]] — Hosts `homepage-ubuntu` on port 3003, `proxy-net`
- [[grizzley]] — Hosts `homepage-grizzley` on port 3000, `traefik-proxy`
- [[traefik]] — Ingress routing for all homepage instances
- [[media-stack]] — Media services displayed on homepage
- [[homelab-monitoring]] — Infrastructure widgets (Prometheus, Grafana, Proxmox, TrueNAS)