- Full Obsidian vault content - Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte) - Media stack documentation - Traefik HA setup - Automation scripts - Bachelor party planning
4.3 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| traefik | 2026-04-28 | 2026-04-29 | entity |
|
traefik
Role: Reverse proxy / ingress controller — HA across grizzley + ubuntu Instances: 2 (ubuntu = PRIMARY, grizzley = BACKUP) Ports: 80 (HTTP), 443 (HTTPS), 2222 (SSH proxy), 8080 (metrics) Dashboard: traefik dashboard on each instance
Overview
Traefik is the reverse proxy for the homelab. It runs in HA mode across grizzley and ubuntu, handling TLS termination for all incoming traffic. Cloudflare routes DNS to Traefik. Two separate Docker Compose stacks manage each instance independently.
Instances
| Instance | Host | Role | Ports | Cert Source |
|---|---|---|---|---|
traefik (ubuntu) |
ubuntu (192.168.50.61) | PRIMARY — handles majority of traffic | 80, 443 | Syncs from grizzley via NFS |
traefik-pi (grizzley) |
grizzley (192.168.50.84) | BACKUP + ACME cert generation | 80, 443, 2222, 8080 | Cloudflare DNS challenge |
Ubuntu (Primary)
Docker Compose: homelab/ubuntu/traefik/
- Network:
proxy-net(bridge) - Reads TLS certs from NFS mount at
/mnt/truenas/traefik-certs/ - Prometheus metrics: port 8080
- Connects via
authentik_authentik-internalfor SSO middleware
Grizzley (Backup + ACME)
Docker Compose: homelab/grizzley/traefik-pi/
- Network:
traefik-proxy(bridge) - Generates wildcard certs via Cloudflare DNS challenge
- Writes certs to NFS mount
/mnt/truenas/traefik-certs/grizzley - Prometheus metrics: port 8080
HA Configuration (Keepalived VRRP)
| Parameter | Value |
|---|---|
| Interface | eth0.50 (VLAN 50) |
| Virtual Router ID | 51 |
| grizzley State | BACKUP (priority 90) |
| ubuntu State | PRIMARY (higher priority) |
| Virtual IP | 192.168.50.80/27 |
| Auth | PASS (HomelabH) |
| Check Script | /etc/keepalived/check_traefik.sh (2s interval, fall 2, rise 2) |
When ubuntu Traefik fails health checks, keepalived promotes grizzley to MASTER and traffic to 192.168.50.80 fails over automatically.
Certificate Flow
Cloudflare DNS Challenge
↓
traefik-pi on grizzley (ACME DNS challenge)
↓
Writes certs to /mnt/TrueNAS/traefik-certs/grizzley (NFS)
↓
traefik on ubuntu reads same certs from NFS mount
↓
Both serve *.tophermayor.com wildcard cert
Routes (Known)
| Service | URL | Host |
|---|---|---|
| Authentik | authentik.tophermayor.com | ubuntu |
| Gitea | gitea.tophermayor.com | ubuntu |
| OpenCode (ice) | opencode-ice.tophermayor.com | ubuntu → ice:4096 |
| Jellyfin | jellyfin.tophermayor.com | grizzley |
| Proxmox | proxmox.tophermayor.com | ubuntu → proxmox |
| Immich | immich.tophermayor.com | ubuntu |
| Homepage | home.tophermayor.com | ubuntu |
Dynamic config files in homelab/ubuntu/traefik/config/dynamic/:
| File | Services |
|---|---|
canonical-hosts.yml |
Grizzley ingress proxy, PVE OpenCode |
gitea.yml |
gitea.tophermayor.com |
immich.yml |
immich.tophermayor.com |
jellyfin.yml |
jellyfin.tophermayor.com |
media-stack.yml |
Sonarr, Radarr, SABnzbd, Prowlarr, qBittorrent |
middlewares.yml |
30+ middleware definitions |
opencode.yml |
opencode.tophermayor.com |
proxmox.yml |
proxmox.local.tophermayor.com |
Middlewares
| Middleware | Purpose |
|---|---|
local-only@file |
Restrict to local network IPs |
authentik-auth@file |
SSO authentication |
security-headers@file |
Add security headers |
crowdsec-bouncer@file |
Rate limiting and threat protection |
Prometheus Monitoring
Both Traefik instances expose Prometheus metrics at :8080/metrics. The monitoring stack scrapes:
- Request rates
- Error rates
- Backend health
Troubleshooting
- ServiceDown alerts: see homelab-servicedown-triage skill
- DNS issues: see homelab-systemd-resolved-dns skill
- VRRP failover: check
systemctl status keepalivedon grizzley - Certificate issues: check NFS mount
/mnt/truenas/traefik-certs/on both hosts - traefik-pi not starting: check
docker logs traefik-pion grizzley
Related
- ubuntu — Primary Traefik node
- grizzley — Backup Traefik node + ACME generation
- truenas — NFS storage for cert sync
- authentik — SSO behind Traefik
- traefik-ha — Full HA concept page