Warum ein Reverse Proxy für Homelab?
Wer mehrere Self-Hosting-Dienste betreibt, braucht einen Reverse Proxy. Anstatt alle Dienste über verschiedene Ports (:8080, :8096, :8443) erreichbar zu machen, leitet ein Reverse Proxy Anfragen über einen einzigen Port auf die richtigen Dienste um – und kümmert sich um TLS-Zertifikate.
Nginx Proxy Manager (NPM) und Traefik sind dabei die zwei meistgenutzten Lösungen im Homelab-Bereich. NPM ist die Einstiegslösung mit grafischer Oberfläche, Traefik die Profi-Lösung mit deklarativer Konfiguration.
Nginx Proxy Manager: GUI-basiertes Reverse Proxy
Nginx Proxy Manager ist kein eigenständiger Web-Server, sondern ein Management-Frontend für nginx. Es vereinfacht die Konfiguration von Proxy-Hosts, Weiterleitungen und SSL-Zertifikaten auf ein Minimum.
Installation via Docker Compose
# docker-compose.yml
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
ports:
- 80:80
- 443:443
- 81:81 # Admin UI
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
restart: unless-stopped
Nach dem Start ist die Web-UI unter http://DEINE-IP:81 erreichbar. Standard-Login: admin@example.com / changeme.
Proxy-Host hinzufügen: 3 Klicks
Ein neuer Proxy-Host in NPM wird in wenigen Sekunden angelegt:
- Proxy Hosts → Add Proxy Host
- Domain:
jellyfin.heimnetz.de - Forward Hostname/IP:
jellyfin(Container-Name) oder192.168.1.50 - Forward Port:
8096 - SSL Tab → Let's Encrypt → Force SSL aktivieren
NPM beantragt automatisch ein kostenloses Let's Encrypt Zertifikat und erneuert es monatlich. Keine Konfigurationsdateien, keine YAML-Syntax.
Zugangskontrolle und Weiterleitungen
NPM bietet grundlegende Sicherheitsfunktionen:
- HTTP-Auth: Benutzername/Passwort-Schutz für einzelne Proxy-Hosts
- Block Lists: IP-Adressen oder Länder blockieren
- Custom nginx Config: Rohe nginx-Konfiguration einbetten (für Experten)
- 404/301 Redirects: Einfache Weiterleitungen über die UI
Grenzen von NPM
NPM hat klare Einschränkungen:
- Keine automatische Container-Erkennung: Neue Dienste müssen manuell hinzugefügt werden
- Keine Middleware-Unterstützung: Kein Rate-Limiting, Header-Manipulation etc. ohne Custom Config
- Performance: nginx-basiert, aber nicht so ressourceneffizient wie Traefik
Traefik: Dynamisches Reverse Proxy für Profis
Traefik ist ein in Go geschriebener Reverse Proxy, der sich automatisch mit Docker, Kubernetes und anderen Orchestratoren integriert. Konfiguration über Labels statt GUI.
Installation via Docker Compose
# docker-compose.yml
services:
traefik:
image: traefik:v3.2
container_name: traefik
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.email=mail@example.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
restart: unless-stopped
Container automatisch exposen via Labels
Das Killer-Feature von Traefik: Neue Container werden automatisch registriert, wenn sie Labels tragen:
services:
jellyfin:
image: jellyfin/jellyfin:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.jellyfin.rule=Host(`jellyfin.heimnetz.de`)"
- "traefik.http.routers.jellyfin.entrypoints=websecure"
- "traefik.http.routers.jellyfin.tls.certresolver=letsencrypt"
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
Kein Neustart von Traefik nötig – der neue Dienst ist sofort erreichbar.
Middleware: HTTP-Auth, Rate-Limiting, Headers
Traefik unterstützt leistungsstarke Middleware-Konfiguration:
# Middleware definieren
labels:
- "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$..."
- "traefik.http.middlewares.ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.secure.headers.stsSeconds=31536000"
# Auf Router anwenden
- "traefik.http.routers.jellyfin.middlewares=auth,ratelimit,secure"
Traefik Dashboard
Traefik bietet ein eingebautes Dashboard (Port 8080) zur Übersicht aller Routes, Services und Middlewares:
# Dashboard aktivieren
command:
- "--api.dashboard=true"
- "--api.insecure=true" # Nur intern!
Direkter Vergleich: NPM vs Traefik
| Kriterium | Nginx Proxy Manager | Traefik |
|---|---|---|
| Konfiguration | Web-UI | YAML Labels / Files |
| Container-Erkennung | Manuell | Automatisch |
| SSL-Zertifikate | Let's Encrypt (UI) | Let's Encrypt (auto) |
| Middleware | Basic (HTTP-Auth) | Mächtig (Rate-Limit, Headers) |
| Kubernetes | Nein | Ja (nativer Ingress) |
| Einstiegshürde | Sehr niedrig | Mittel |
| Performance | Gut | Exzellent |
| Multi-Domain Wildcard | Möglich | Einfach |
Für wen ist welches System besser?
Nginx Proxy Manager ist die richtige Wahl, wenn:
- Du Reverse Proxy neu kennenlernst und schnell starten möchtest
- Du ein kleines Setup mit 3–15 Diensten hast
- Du eine grafische Oberfläche bevorzugst
- CLI und YAML-Konfiguration abschreckend wirken
Traefik ist die richtige Wahl, wenn:
- Du viele Dienste verwaltest und nicht jedes Mal die UI öffnen willst
- Du Docker Compose oder Kubernetes nutzt
- Du Middleware für Security-Features brauchst
- Du Infrastructure-as-Code bevorzugst
Migration von NPM zu Traefik
Wer mit NPM startet und zu Traefik wechselt, muss Proxy-Hosts manuell als Labels übertragen. Es gibt kein Migrationsskript, da die Konfigurationsformate grundverschieden sind.
Die gute Nachricht: Beide Systeme können parallel betrieben werden (auf verschiedenen Ports), um schrittweise zu migrieren.
Mein Fazit
Nginx Proxy Manager ist ideal für den schnellen Einstieg und kleine Homelabs. Die grafische Oberfläche eliminiert die Lernkurve und lässt dich in 5 Minuten produktiv werden.
Traefik ist die zukunftssicherere Wahl für wachsende Setups. Automatische Container-Erkennung, mächtige Middleware und Kubernetes-Support machen es unschlagbar für größere Infrastrukturen.
Viele Homelab-Betreiber starten mit NPM und wechseln nach 6–12 Monaten zu Traefik, wenn die manuelle Verwaltung mühsam wird. Wer von Anfang an skalieren will, startet direkt mit Traefik.
Weiterführende Artikel
- Traefik vs. Caddy: Reverse Proxy für Self-Hosting
- Uptime Kuma vs Gatus: Self-Hosted Uptime Monitoring
- Portainer vs. Rancher: Kubernetes Management UI