Zum Inhalt springen
← Alle Beiträge
· 4 Min. Lesezeit·Emre Yurtbay

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.

CaddyTraefikReverse ProxyDockerHTTPSTLSSelf-HostingDevOpsVergleich

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).

Projekt besprechen