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
This commit is contained in:
330
homelab/entities/homepage.md
Normal file
330
homelab/entities/homepage.md
Normal file
@@ -0,0 +1,330 @@
|
||||
---
|
||||
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)
|
||||
Reference in New Issue
Block a user