Caddy ist ein moderner Webserver und Reverse Proxy, der HTTPS automatisch über Let’s Encrypt bereitstellt. Mit Docker Compose lässt sich Caddy schnell auf Linux aufsetzen, inklusive automatischer Zertifikatserneuerung, persistenter Volumes für Konfigurationen und Logs sowie sicherer Netzwerke. Dieses Tutorial zeigt Schritt für Schritt, wie Sie Caddy als Reverse Proxy für Ihre containerisierten Services betreiben.
Grundkomponenten eines Caddy-Stacks
Ein typischer Caddy-Stack besteht aus:
- Caddy: Reverse Proxy mit automatischer HTTPS-Konfiguration
- Docker Services: Containerisierte Anwendungen, die über Caddy erreichbar sein sollen
- Volumes: Persistente Speicherung von Konfigurationen, Zertifikaten und Logs
- Netzwerke: Interne Kommunikation zwischen Caddy und den Services
Volumes für Persistenz
Persistente Volumes sichern Konfigurationen und Zertifikate, sodass diese auch nach Neustarts der Container erhalten bleiben.
volumes:
caddy_data:
caddy_config:
caddy_logs:
caddy_datafür automatische Let’s Encrypt Zertifikatecaddy_configfür Caddyfile und statische Konfigurationencaddy_logsfür Server-Logs- Persistente Volumes bleiben auch bei Updates oder Neustarts der Container erhalten
Netzwerke für interne Kommunikation
Ein separates Netzwerk stellt sicher, dass Caddy und die containerisierten Services sicher miteinander kommunizieren.
networks:
web_proxy_net:
- Alle Services, die Caddy verwalten soll, werden mit
web_proxy_netverbunden - Erleichtert Port-Mapping für HTTP/HTTPS
Beispiel: docker-compose.yml für Caddy
version: '3.8'
services:
caddy:
image: caddy:2.9.5
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- caddy_config:/config
- caddy_logs:/logs
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- web_proxy_net
Beispiel-Caddyfile für automatische HTTPS-Routen
whoami.example.com {
reverse_proxy whoami:80
}
- Der Host
whoami.example.comwird automatisch mit HTTPS versehen reverse_proxyleitet Anfragen an den internen Servicewhoamiweiter- Caddy kümmert sich automatisch um Zertifikatserneuerung via Let’s Encrypt
Service hinter Caddy
services:
whoami:
image: containous/whoami
container_name: whoami
networks:
- web_proxy_net
- Service verbindet sich mit dem selben Netzwerk wie Caddy
- Anfragen an
whoami.example.comwerden automatisch weitergeleitet
Start und Verwaltung des Caddy-Stacks
Starten Sie den Stack mit:
docker-compose up -d
Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:
docker-compose down -v
Best Practices
- Volumes für persistente Daten verwenden
- Separate Netzwerke für Caddy und Services definieren
- Versionierte Docker Images nutzen für Updates und Rollbacks
- Backups der Caddyfile und Zertifikate erstellen
- Logs überwachen, um Fehler frühzeitig zu erkennen
- Externe Ports nur bei Bedarf öffnen
- DNS korrekt auf öffentliche IPs verweisen, damit Let’s Encrypt Zertifikate ausgestellt werden können
Praxisbeispiele
Caddy starten
docker-compose up -d
Logs überwachen
docker-compose logs -f caddy
Neuen Service hinzufügen
docker-compose up -d whoami
Updatefähigkeit
Versionierte Docker Images ermöglichen einfache Updates von Caddy, während Volumes für Konfigurationen und Zertifikate unverändert bleiben. Automatische HTTPS-Zertifikate werden nach Updates weiterhin bereitgestellt.
docker-compose pull
docker-compose up -d
Zusammenfassung
Mit Docker Compose lässt sich Caddy als Reverse Proxy schnell, sicher und automatisch HTTPS-fähig auf Linux betreiben. Persistente Volumes, Netzwerke und eine einfache Caddyfile sorgen für Wartbarkeit und Stabilität. Versionierte Images erleichtern Updates und Rollbacks und gewährleisten, dass alle containerisierten Services jederzeit zuverlässig erreichbar bleiben.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











