Caddy - automatisches HTTPS ohne Konfigurationsaufwand

Caddy

Automatischer HTTPS-Reverse-Proxy und Webserver mit eingebautem Let's-Encrypt-Support.

Was ist Caddy?

Caddy ist ein moderner Webserver, der TLS-Zertifikate vollautomatisch über Let's Encrypt oder ZeroSSL ausstellt und erneuert — ohne manuelle Konfiguration. Er eignet sich hervorragend als Reverse Proxy vor anderen Diensten und ersetzt klassische Setups mit nginx + Certbot durch eine einzige, deutlich schlankere Lösung. Die Konfiguration erfolgt über ein lesbares Caddyfile. Caddy ist in Go geschrieben und produziert keine externen Abhängigkeiten.

Voraussetzungen

  • Docker 20.10+ / Docker Compose
  • Ports 80 und 443 am Host erreichbar
  • Eine öffentlich erreichbare Domain (für automatisches HTTPS)

Compose-Beispiel

services:
  caddy:
    image: caddy:latest
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:

Beispiel Caddyfile:

example.com {
    reverse_proxy app:3000
}

Hinweise

  • Das Volume caddy_data enthält die ausgestellten Zertifikate — unbedingt persistieren, sonst läuft man in Rate-Limits bei Let's Encrypt.
  • Für lokale Entwicklung funktioniert Caddy mit selbstsignierten Zertifikaten via tls internal.
  • Mehrere Domains lassen sich einfach als separate Blöcke im Caddyfile definieren.
  • Caddy unterstützt HTTP/2 und HTTP/3 (QUIC) out-of-the-box ohne zusätzliche Konfiguration.