- Full Obsidian vault content - Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte) - Media stack documentation - Traefik HA setup - Automation scripts - Bachelor party planning
331 lines
12 KiB
Markdown
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)
|