Ein Reverse Proxy leitet Anfragen an verschiedene Server oder Container weiter – oft mit SSL-Verschlüsselung und Routing-Regeln. Caddy ist dafür eine moderne und einfache Lösung. Er kümmert sich automatisch um HTTPS-Zertifikate mit Let’s Encrypt und erfordert kaum Konfiguration. In diesem Tutorial zeigen wir, wie du Caddy auf einem Ubuntu Server installierst und als Reverse Proxy nutzt.


1. Voraussetzungen

  • Ubuntu Server (22.04 oder neuer)
  • Root- oder Sudo-Zugriff
  • Eine Domain, die auf deinen Server zeigt (z. B. per A-Record)

2. Caddy installieren

Installiere Caddy direkt aus dem offiziellen Repository:

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 -y

Nach der Installation läuft Caddy automatisch als Dienst:

sudo systemctl status caddy

3. Reverse Proxy konfigurieren

Die Konfiguration liegt unter /etc/caddy/Caddyfile.
Öffne die Datei mit:

sudo nano /etc/caddy/Caddyfile

Ein Beispiel für eine Weiterleitung zu einem internen Service (z. B. Portainer):

example.com {
    reverse_proxy localhost:9000
}

Speichern und Caddy neu laden:

sudo systemctl reload caddy

Caddy holt automatisch ein Let’s Encrypt-Zertifikat für deine Domain – kein manuelles SSL-Setup nötig.


4. Mehrere Dienste über Subdomains

Du kannst mehrere Dienste gleichzeitig über verschiedene Subdomains anbieten, z. B.:

portainer.example.com {
    reverse_proxy localhost:9000
}

nextcloud.example.com {
    reverse_proxy localhost:8080
}

Caddy verwaltet automatisch die Zertifikate für alle Domains.


5. HTTP auf HTTPS umleiten

Caddy aktiviert HTTPS standardmäßig.
Wenn du jedoch sicherstellen willst, dass kein unverschlüsselter Zugriff möglich ist, kannst du Folgendes ergänzen:

example.com {
    redir https://example.com{uri}
}

6. Zugriff mit Basic Auth schützen (optional)

Für einfache Absicherung kannst du Basic Authentication aktivieren:

example.com {
    basicauth /admin/* {
        admin JDJhJDEyJGx4ZExVdV...
    }
    reverse_proxy localhost:9000
}

Das Passwort-Hash kannst du mit folgendem Befehl erstellen:

caddy hash-password

7. Fazit

Mit Caddy richtest du in wenigen Minuten einen sicheren Reverse Proxy ein – inklusive automatischem HTTPS.
Im Vergleich zu Nginx oder Apache ist Caddy besonders für Einsteiger ideal: einfache Syntax, automatische Zertifikate und kaum Wartungsaufwand.

Ob für kleine Projekte, Docker-Container oder produktive Webdienste – Caddy bietet Sicherheit und Komfort ohne zusätzliche Tools.


Tipp:
Kombiniere Caddy mit Docker und Portainer, um eine vollständig automatisierte Hosting-Umgebung mit SSL, Routing und Containerverwaltung aufzubauen.