Caddy vs. Traefik: Welcher Reverse Proxy passt zu Ihrem Setup?
Caddy und Traefik im direkten Vergleich: Konfiguration, Docker-Integration, Zertifikate, Middlewares und Kubernetes – mit klarem Fazit, wann sich welches Tool lohnt.
In den letzten Wochen sind hier zwei praktische Anleitungen erschienen: Traefik als Reverse Proxy mit vier Services hinter einer Domain und Caddy mit automatischem HTTPS als schlanke Alternative. Beide Tools lösen dasselbe Grundproblem – mehrere Dienste hinter einer Domain, Zertifikate automatisch. Bleibt die Frage, die in der Praxis wirklich zählt: Welches sollten Sie nehmen? Dieser Beitrag stellt beide direkt gegenüber.
Was beide gleich gut können
Erst die Gemeinsamkeiten, denn sie sind größer als die Marketing-Seiten vermuten lassen. Beide sind in Go geschrieben und kommen als einzelnes Binary bzw. schlankes Container-Image. Beide holen sich Zertifikate selbstständig per ACME von Let's Encrypt, erneuern sie rechtzeitig und leiten HTTP auf HTTPS um. Beide sprechen HTTP/3: Caddy aktiviert es standardmäßig, bei Traefik genügt eine http3-Option am Entrypoint. Beide sind Open Source und im Docker-Umfeld zu Hause. Mit anderen Worten: Für „zwei, drei Container sicher ins Netz" sind beide die richtige Antwort – Sie machen mit keinem der beiden einen Fehler.
Der Kernunterschied: Woher kommt die Konfiguration?
Der eigentliche Unterschied liegt nicht in Features, sondern in der Philosophie.
Caddy denkt in einer Datei. Das Caddyfile beschreibt den gewünschten Zustand: pro Dienst ein Block, im Normalfall eine reverse_proxy-Zeile. Kommt ein Service dazu, editieren Sie die Datei und laden mit caddy reload unterbrechungsfrei neu. Das ist bewusst simpel – und für eine Handvoll stabiler Dienste genau richtig.
Traefik denkt in Ereignissen. Es beobachtet einen Provider – beim Docker-Provider den Docker-Socket – und baut seine Routen dynamisch aus Labels. Startet ein Container mit passenden Labels, existiert die Route; stoppt er, verschwindet sie. Die Routing-Regel wohnt damit direkt beim Service in der Compose-Datei, nicht in einer zentralen Proxy-Konfiguration. Bei vielen oder häufig wechselnden Containern spielt genau das seine Stärke aus.
Fairerweise: Auch Caddy lässt sich per Community-Plugin (caddy-docker-proxy) auf Label-Betrieb umrüsten – das ist dann aber ein Zusatzbaustein, kein Bordmittel.
Die Gegenüberstellung
| Caddy | Traefik | |
|---|---|---|
| Konfiguration | Caddyfile (zentrale Datei, caddy reload) |
dynamisch aus Providern (Docker-Labels u. a.), kein Reload |
| Docker-Integration | Datei + Reload; Labels nur via Community-Plugin | nativer Docker-Provider, Routen folgen Containern |
| Zertifikate | Let's Encrypt und ZeroSSL mit automatischem Failover | Let's Encrypt via TLS-, HTTP- oder DNS-Challenge |
| Wildcard-Zertifikate | DNS-Challenge, Provider als Modul (caddy-dns) | DNS-Challenge, viele Provider eingebaut |
| On-Demand TLS (Kundendomains) | ✔ eingebaut – Zertifikat beim ersten Handshake | – |
| Statische Dateien / Webserver | ✔ vollwertiger Webserver (file_server) |
– (reiner Proxy) |
| Fertige Middlewares | Basis an Bord, vieles über Module | groß: BasicAuth, RateLimit, Retry, Circuit Breaker, ForwardAuth, IPAllowList … |
| Dashboard | – (Admin-API) | ✔ eingebautes Dashboard |
| Kubernetes | kein etablierter Ingress Controller | ✔ etabliert: Ingress, CRD, Gateway API |
| Lokales Testen | eingebaute lokale CA (tls internal, .localhost) |
Let's-Encrypt-Staging |
| Lernkurve | sehr flach | flach für den Start, mehr Konzepte (statisch/dynamisch, Router, Middlewares) |
Was nur Caddy kann
Zwei Dinge stechen heraus. Erstens ist Caddy ein vollwertiger Webserver: Eine statische Website ausliefern und daneben zwei Container proxien – das erledigt eine Instanz mit drei Zeilen Caddyfile. Traefik kann das nicht; es proxyt ausschließlich. Zweitens On-Demand TLS: Caddy kann Zertifikate erst im Moment des ersten TLS-Handshakes besorgen, ohne dass die Domain vorher konfiguriert wurde. Wenn Ihre Kunden eigene Domains auf Ihre Anwendung zeigen (White-Label/SaaS), ist das ein Alleinstellungsmerkmal, das sonst aufwendige Eigenbauten ersetzt. Dazu kommt die eingebaute lokale CA: HTTPS-Testen ohne Internet und ohne Let's Encrypt, mit tls internal oder einer .localhost-Adresse.
Was nur Traefik kann
Traefik ist die bessere Plattform. Der Baukasten aus Routern und fertigen Middlewares (Rate-Limiting, Basic-Auth, Retry, Circuit Breaker, ForwardAuth für SSO-Gateways) deckt ohne Zusatzmodule ab, was bei wachsenden Setups früher oder später gebraucht wird. Das eingebaute Dashboard zeigt jederzeit, welche Routen aus welchen Labels entstanden sind – bei der Fehlersuche Gold wert. Und wer Richtung Kubernetes geht, findet in Traefik einen etablierten Ingress Controller inklusive Gateway-API-Unterstützung; einen vergleichbar verbreiteten Caddy-Ingress gibt es nicht. Auch jenseits von Docker und Kubernetes liest Traefik Konfiguration aus Nomad, Consul, ECS oder Key-Value-Stores.
Fazit: Welches Tool für welchen Einsatz?
Nehmen Sie Caddy, wenn …
- Sie eine Handvoll stabiler Services veröffentlichen und die einfachste funktionierende Lösung wollen,
- statische Inhalte und Proxy-Aufgaben aus einer Hand kommen sollen (Webserver inklusive),
- Kunden eigene Domains anbinden (On-Demand TLS),
- Sie viel lokal oder intern mit HTTPS testen (eingebaute CA).
Nehmen Sie Traefik, wenn …
- Container häufig dazukommen, wegfallen oder umziehen – Routen sollen den Services automatisch folgen,
- Sie Middlewares wie Rate-Limiting, ForwardAuth oder Circuit Breaker ohne Bastelei brauchen,
- ein Dashboard zur Laufzeit-Diagnose wichtig ist,
- Kubernetes auf der Roadmap steht – dann führt an Traefik kaum ein Weg vorbei.
Als Faustregel: Caddy ist der schnellste Weg zu „läuft sicher", Traefik wächst am besten mit. Beide Wege können Sie in unter 15 Minuten ausprobieren – die lauffähigen Minimal-Stacks stehen in den beiden Anleitungen zu Traefik und Caddy. Wer es genauer wissen will, findet die Primärquellen in der Caddy-Dokumentation und der Traefik-Dokumentation.
Hinweis: Die Beiträge dieses Blogs werden unter Einsatz von KI erstellt und vor der Veröffentlichung redaktionell geprüft. Die redaktionelle Verantwortung trägt Emre Yurtbay (siehe Impressum).