Homelab-Notizen: Dienste hinter Traefik betreiben
Mein aktuelles Homelab-Setup, warum ich von nginx-proxy gewechselt habe und was dabei kaputtgegangen ist.
Habe das Wochenende damit verbracht, meinen Homelab-Reverse-Proxy von nginx-proxy auf Traefik v3 zu migrieren. Hier ist, was ich am Ende hatte.
Der Stack
- Mini-PC, Debian 12, Docker Compose
- Traefik v3 als den einzigen Einstiegspunkt auf 80/443
- Cloudflare-Origin-Zertifikate für öffentliche Dienste
- Step-CA für interne
*.lab-Zertifikate - ~18 Dienste, von Home Assistant bis zu einem selbstgehosteten Postgres
Warum ich gewechselt bin
nginx-proxy war in Ordnung, bis ich pro Dienst Middleware (Ratenbegrenzung, Auth-Weiterleitung, Kompression) wollte. Das Hinzufügen zu nginx-proxy bedeutet Templating; Traefik behandelt Middleware als erstklassige Labels.
Das Compose-Muster, auf das ich mich geeinigt habe
services:
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx
labels:
- traefik.enable=true
- traefik.http.routers.paperless.rule=Host(\`paperless.lab\`)
- traefik.http.routers.paperless.entrypoints=websecure
- traefik.http.routers.paperless.tls=true
- traefik.http.routers.paperless.middlewares=forward-auth@file
- traefik.http.services.paperless.loadbalancer.server.port=8000
networks: [edge]
Jeder Dienst erhält diese sechs Labels. Middleware-Ketten leben in einer gemeinsamen dynamic.yml.
Was kaputt ging
- Websockets benötigten explizit
passHostHeader=trueam Router. - Ein Dienst lieferte einen Healthcheck, der 301 zurückgab. Traefik markierte ihn als ungesund. Habe
--providers.docker.useBindPortIP=falsehinzugefügt und den Dienstport überschrieben. - Cloudflare-Tunnel + Traefik ist eine Fußangel: doppelte TLS-Terminierung funktioniert, aber du möchtest
insecureSkipVerifybeim internen Hop aus.
Nächste Schritte
Authentik als den Forward-Auth-Anbieter für alles Interne einbinden. Die letzte unverschlüsselte Basic-Auth-Konfiguration abschalten.
Weiter geht's
Wohin als Nächstes?
Stöbere durch weitere technische Texte, sieh dir die Engineering Case Studies an oder melde dich direkt.