Reverse Proxy fürs Homelab — Caddy, Traefik und Nginx Proxy Manager im Vergleich

Taxonomic-Silence-Plate Nr. 59: sechs paarweise Glyphen in Cremefarbe, das dritte Paar in Iron-Oxide-Akzentfarbe, symbolisiert den Vergleich zwischen Caddy, Traefik und Nginx Proxy Manager.

Hinweis: Dieser Beitrag enthält Affiliate-Links (mit * gekennzeichnet). Kaufst du über einen dieser Links, erhalten wir eine kleine Provision — für dich ändert sich der Preis nicht. Hardware wird vor jeder Empfehlung mindestens vier Wochen im eigenen Homelab getestet.

Wenn du im Homelab mehr als zwei Dienste betreibst, stehst du irgendwann vor einer einfachen Frage: Wie kommen Browser-Anfragen zum richtigen Container? Genau das ist der Job eines Reverse Proxy. Er nimmt eingehende HTTPS-Verbindungen entgegen, kümmert sich um Zertifikate und leitet die Anfragen passend weiter — auf Basis der Subdomain oder des Pfads. Drei Tools haben sich 2026 etabliert: Caddy, Traefik und der Nginx Proxy Manager. In diesem Vergleich schauen wir, wann welches Tool die richtige Wahl ist und wie du die jeweilige Variante in 30 Minuten lauffähig hast.

TL;DR — der Vergleich auf einen Blick

  • Reverse Proxy = der Tor-Wächter vor deinen Containern. Nimmt HTTPS entgegen, leitet HTTP intern weiter, kümmert sich um Zertifikate.
  • Caddy: Einfachste Wahl, automatische Let’s-Encrypt-Zertifikate, lesbare Konfigurationsdatei. Empfehlung für Einsteiger.
  • Traefik: Container-Auto-Discovery, perfekt im Docker-Workflow, dynamische Routing-Tabellen. Stärker bei wachsenden Setups.
  • Nginx Proxy Manager (NPM): Web-UI für Klick-Konfiguration. Gut für alle, die nicht in YAML schreiben wollen.
  • Faustregel: Klein und übersichtlich → Caddy. Docker-Stack mit vielen Containern → Traefik. UI-affin → NPM.

Warum überhaupt ein Reverse Proxy?

Ohne Reverse Proxy hat jeder Dienst seine eigene IP-Adresse plus Port. Heißt: Du tippst http://192.168.1.50:8080 für Nextcloud, http://192.168.1.51:32400 für Plex, http://192.168.1.52:8096 für Jellyfin. Funktioniert — ist aber unschön und unsicher.

Mit Reverse Proxy nutzt du stattdessen Subdomains: cloud.deine-domain.de, plex.deine-domain.de, jellyfin.deine-domain.de. Alle laufen über Port 443 (HTTPS), und der Reverse Proxy weiß, welche Anfrage zu welchem Container gehört. Drei Vorteile:

  • HTTPS für alle Dienste: Let’s Encrypt liefert automatisch gültige Zertifikate, kostenlos.
  • Saubere URLs: Keine Port-Nummern, leicht zu merken, leicht zu teilen.
  • Einheitliche Sicherheits-Schicht: Header-Härtung, Rate-Limiting und Authentifizierung an einer Stelle, statt in jedem Dienst einzeln.

Die drei beliebten Lösungen lösen die Aufgabe alle gleich gut, mit unterschiedlichen Schwerpunkten in Setup-Aufwand, Komfort und Skalierbarkeit.

Direkter Vergleich: Caddy vs. Traefik vs. Nginx Proxy Manager

KriteriumCaddyTraefikNginx Proxy Manager
Konfigurations-StilCaddyfile (lesbar)YAML / Container-LabelsWeb-UI (Klick)
HTTPS automatischja, ab Werkja, mit ein paar Zeilen Configja, ein Klick
Lernkurveflachmoderat-steilflach
Container-Auto-Discoverynein (manuell)ja, eingebautnein (manuell)
Performancesehr hochhochhoch (Nginx-Backend)
RAM-Bedarf~30 MB~50 MB~150 MB (mit DB)
Web-UInein (Caddyfile + CLI)Dashboard (read-only)volle Verwaltung
Plugins / Middlewarebegrenztsehr vieleSSL/Auth nativ
LizenzApache 2.0MITMIT (NPM, NGINX BSD)

Wann lohnt sich welches Tool?

Caddy — der entspannte Einstieg

Caddy ist 2026 unsere Standard-Empfehlung für alle, die zum ersten Mal einen Reverse Proxy aufsetzen. Drei Argumente:

  • HTTPS ohne Einrichtung: Sobald Caddy startet, holt er automatisch Let’s-Encrypt-Zertifikate — ohne dass du irgendwo „ich-will-HTTPS“ anklicken musst.
  • Lesbare Konfiguration: Die Caddyfile ist quasi selbsterklärend. Eine Sub-Domain hängst du in 3 Zeilen an.
  • Sehr leichtgewichtig: 30 MB RAM, ein einziges Binary. Läuft auch auf einem Raspberry Pi entspannt mit.

Wann nicht Caddy: Wenn du in einem reinen Docker-Stack mit häufigen Container-Änderungen arbeitest und manuelle Caddyfile-Updates lästig werden. Dann lohnt sich der Sprung zu Traefik.

Traefik — der Profi-Wahl im Docker-Stack

Traefik glänzt, sobald du Docker als Hauptwerkzeug nutzt. Statt eine Konfigurationsdatei zu pflegen, beschriftest du deine Container mit Labels — Traefik erkennt sie automatisch und richtet das Routing ein.

Beispiel: Ein Nextcloud-Container bekommt das Label traefik.http.routers.nextcloud.rule=Host(`cloud.deine-domain.de`) — und Traefik erstellt automatisch eine Route mit HTTPS-Zertifikat. Kein Restart, keine zusätzliche Datei. Sehr elegant in Docker-Compose-Setups.

Die Lernkurve ist steiler: Du brauchst eine traefik.yml-Hauptkonfiguration, Provider, Entrypoints, Resolver und musst die Label-Syntax verstehen. Dafür skaliert es auch in Setups mit 30+ Containern entspannt.

Nginx Proxy Manager — Web-UI für die Klick-Affinen

Wer YAML hasst und lieber klickt, ist mit dem Nginx Proxy Manager (NPM) gut bedient. Du installierst NPM als Docker-Container, klickst dich durchs Web-UI und legst Hosts an: Subdomain rein, Ziel-Container und Port rein, „Request a new SSL Certificate“ anklicken — fertig.

NPM nutzt unter der Haube Nginx, die Performance ist also identisch. Der Verwaltungs-Komfort kostet ein bisschen RAM (rund 150 MB inklusive der eingebauten SQLite-DB) — auf einem Mini-PC fällt das nicht ins Gewicht. Auf einem Pi mit 4 GB RAM merkst du es schon.

Caddy aufsetzen in 30 Minuten

Wir nehmen Caddy als Beispiel, weil das die schnellste Variante ist. Voraussetzungen:

  • Eine eigene Domain, deren DNS du verwalten kannst (z. B. bei Cloudflare, INWX, Hetzner DNS).
  • Eine öffentliche IP oder ein DDNS-Setup, auf das deine Subdomains zeigen.
  • Ein offener Port 80/443 nach außen — Port 80 brauchst Let’s Encrypt für die HTTP-Challenge, oder du nutzt die DNS-Challenge bei Cloudflare.
  • Ein Linux-Server im Heimnetz, der den Reverse Proxy hostet.

Schritt 1: Caddy installieren

Auf Debian/Ubuntu:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
  | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
  | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Schritt 2: Caddyfile erstellen

Die Konfiguration liegt in /etc/caddy/Caddyfile. Ein Beispiel mit drei Subdomains:

cloud.deine-domain.de {
    reverse_proxy 192.168.1.50:8080
}

plex.deine-domain.de {
    reverse_proxy 192.168.1.51:32400
}

jellyfin.deine-domain.de {
    reverse_proxy 192.168.1.52:8096
}

Das ist die komplette Konfiguration. Caddy holt automatisch HTTPS-Zertifikate für alle drei Subdomains, sobald sie per DNS auf deinen Server zeigen.

Schritt 3: Caddy starten und testen

sudo systemctl reload caddy
sudo journalctl -u caddy -f   # Logs verfolgen

Caddy zeigt dir live im Log, wann das Let’s-Encrypt-Zertifikat geholt wurde. Nach 1-2 Minuten sind die Subdomains per HTTPS erreichbar. Wenn etwas hakt, sind die Log-Meldungen meist klar.

DNS-Challenge statt HTTP-Challenge — wenn Port 80 zu ist

Manche Internetanbieter blockieren eingehenden Port 80 oder du willst gar keine Ports nach außen öffnen. Lösung: DNS-Challenge. Let’s Encrypt prüft dann nicht über eine HTTP-Anfrage, sondern über einen TXT-Eintrag in deinem DNS — den setzt Caddy automatisch, wenn dein DNS-Anbieter eine API hat.

Beliebte API-fähige DNS-Anbieter: Cloudflare (kostenlos, sehr verbreitet), Hetzner DNS, INWX. Im Caddyfile sieht das mit Cloudflare so aus:

{
    acme_dns cloudflare YOUR_CF_API_TOKEN
}

cloud.deine-domain.de {
    reverse_proxy 192.168.1.50:8080
}

Das Token erstellst du im Cloudflare-Dashboard unter „API Tokens“ — mit Berechtigung „DNS:Edit“ auf die jeweilige Zone. Caddy holt damit auch Zertifikate für Subdomains, die nicht von außen erreichbar sind — perfekt für Setups, in denen alles nur über VPN zugänglich ist.

Häufige Fallstricke

  1. DNS-Eintrag fehlt: Wenn die Subdomain nicht per DNS auf deinen Server zeigt, kann Caddy kein Zertifikat holen. Vor dem Caddy-Start mit dig cloud.deine-domain.de prüfen, ob die DNS-Auflösung stimmt.
  2. Port 80/443 nicht weitergeleitet: Bei der HTTP-Challenge muss Port 80 von außen erreichbar sein, sonst scheitert die Validierung. Im Router-Port-Forwarding nachprüfen.
  3. Container hört nur auf 127.0.0.1: Manche Container binden nur auf Localhost. Reverse Proxy auf einem anderen Host kann sie dann nicht erreichen. Container-Listen-Address auf 0.0.0.0 oder die LAN-IP setzen.
  4. Let’s-Encrypt-Limits: 50 Zertifikate pro Woche pro Domain ist die Grenze. Beim Testen lieber das Staging-Endpoint nutzen, sonst sperrst du dich aus.
  5. Header werden nicht weitergeleitet: Manche Anwendungen brauchen X-Real-IP oder X-Forwarded-For, um die Original-IP zu erkennen. Caddy setzt die per Default, Traefik und NPM auch — aber prüfen, wenn etwas hakt.

Häufige Fragen

Brauche ich eine eigene Domain?

Ja, ohne Domain keine Let’s-Encrypt-Zertifikate (und damit kein vertrauenswürdiges HTTPS). Eine .de-Domain kostet bei guten Registrars 5-10 Euro pro Jahr — bei einem Setup, das du mehrere Jahre betreibst, lohnt sich das auf jeden Fall. Free-DDNS-Anbieter wie DuckDNS funktionieren auch und kosten nichts.

Kann ich den Reverse Proxy hinter Cloudflare betreiben?

Ja, sogar empfohlen. Cloudflare als CDN davor schützt vor DDoS, hide deine Heim-IP und entlastet deinen Reverse Proxy. Wichtig: Cloudflare auf „Proxied“ stellen (orange Wolke) und im Caddy/Traefik die Cloudflare-IP-Ranges als Trusted Proxy eintragen, damit die X-Forwarded-For-Header korrekt durchkommen.

Was ist mit Authentication vor den Diensten?

Drei Optionen: Basic Auth (einfach, aber unkomfortabel), Authelia (SSO mit 2FA, anspruchsvoll im Setup), Cloudflare Zero Trust Access (kostenlose Tier reicht für Homelab). Für die meisten Self-Hoster ist Authelia die saubere Lösung — im Komplett-Stack-Tutorial beschrieben.

Brauche ich einen Reverse Proxy, wenn ich nur per VPN zugreife?

Empfohlen: ja. Auch im VPN willst du HTTPS, schon weil viele Apps HTTP komplett ablehnen. Plus: saubere Subdomains statt IP-Plus-Port machen den Alltag deutlich entspannter. Der Reverse Proxy steht dann hinter dem WireGuard, ist aber genauso sinnvoll.

Wie sichere ich den Reverse Proxy selbst?

Drei Pflichten: 1) Regelmäßige Updates (apt update + restart), 2) Nicht-root-Container für NPM/Traefik, 3) fail2ban aktiv, das nach mehreren Fehlversuchen die IP sperrt. Bei Caddy reicht das Standard-Setup, weil es als unprivilegierter User läuft.

Welche Logs sollte ich anschauen?

Caddy: journalctl -u caddy. Traefik: per Docker-Compose-Setup ein Log-Volume mounten. NPM: das Web-UI hat einen Log-Reiter pro Host. Generell: Was nicht ankommt oder Zertifikat-Fehler — das siehst du in den ersten Sekunden des Caddy/Traefik-Starts.

Wo es weitergeht

Externe Pflichtquellen:

Du willst einen Reverse Proxy aufsetzen und kommst nicht weiter? Schreib uns eine Mail an admin@lapalutschi.de.