Caddy ist ein Open-Source-Webserver, der in Go entwickelt wurde. Er eignet sich zum Bereitstellen statischer und dynamischer Webanwendungen und stellt für alle eingerichteten Domains automatisch HTTPS bereit. Durch die einfache Konfiguration kann Caddy als Webserver, Reverse Proxy oder Lastverteiler eingesetzt werden – und das mit minimalem Aufwand.
Diese Anleitung zeigt, wie Sie den Caddy Webserver auf Ubuntu 22.04 installieren und Ihre Anwendungen sicher über den Server ausliefern.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes vorhanden ist:
- Ein Ubuntu 22.04 Server.
- Eine Domain, deren A-Record auf die IP-Adresse des Servers zeigt.
- SSH-Zugang zum Server als Nicht-Root-Benutzer mit sudo-Rechten.
Passende Infrastruktur bei centron
Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
Caddy installieren
Führen Sie diese Schritte aus, um das Caddy-Repository hinzuzufügen und die Anwendung auf Ihrem Server zu installieren.
Caddy GPG-Schlüssel hinzufügen
Importieren Sie den aktuellen GPG-Schlüssel von Caddy auf Ihren Server:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgCaddy-Repository hinzufügen
Fügen Sie anschließend das Caddy-Repository zu den APT-Quellen hinzu:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.listPaketindex aktualisieren
Aktualisieren Sie den Paketindex Ihres Servers:
sudo apt updateCaddy installieren
Installieren Sie Caddy mit folgendem Befehl:
sudo apt install caddyInstallation überprüfen
Prüfen Sie die installierte Version, um sicherzustellen, dass die Installation erfolgreich war:
caddy -vBeispielausgabe:
v2.9.1 h1:OEYiZ7DbCzAWVb6TNEkjRcSCRGHVoZsJinoDR/n9oaY=Firewall konfigurieren
Erlauben Sie eingehende Verbindungen für den HTTP-Port 80:
sudo ufw allow 80Laden Sie anschließend die Firewall neu, um die Änderungen zu übernehmen:
sudo ufw reloadÖffnen Sie jetzt Ihren Browser und rufen Sie folgende Adresse auf:
Die Standard-Willkommensseite von Caddy sollte angezeigt werden.
Caddy Systemdienst verwalten
Aktivieren Sie den Caddy-Dienst, damit er beim Systemstart automatisch startet:
sudo systemctl enable caddyStarten Sie den Caddy Webserver:
sudo systemctl start caddyÜberprüfen Sie den Status des Caddy-Dienstes, um sicherzustellen, dass er läuft:
sudo systemctl status caddyBeispielausgabe:
● caddy.service - Caddy
Loaded: loaded (/lib/systemd/system/caddy.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2025-04-06 09:20:18 UTC; 4min 10s ago
Docs: https://caddyserver.com/docs/
Main PID: 3015 (caddy)
Tasks: 9 (limit: 9415)
Memory: 10.9M
CGroup: /system.slice/caddy.service
└─3015 /usr/bin/caddy run --environ --config /etc/caddy/CaddyfileEinen Caddy Virtual Host erstellen
Standardmäßig speichert Caddy seine Konfiguration in /etc/caddy, kann aber auch eine Caddyfile aus einem anderen Pfad einlesen. Mit den folgenden Schritten erstellen Sie einen neuen virtuellen Host, der Dateien aus /var/www/example.com bereitstellt.
Webroot-Verzeichnis erstellen
sudo mkdir -p /var/www/example.comIndex-Seite anlegen
sudo nano /var/www/example.com/index.htmlFolgenden HTML-Code einfügen
Hello World! Greetings from centron
Hello World! Greetings from centron
Speichern Sie die Datei und schließen Sie den Editor.
Zum Caddy-Konfigurationsverzeichnis wechseln
cd /etc/caddy/Standard-Caddyfile sichern
sudo mv Caddyfile Caddyfile.defaultNeue Caddyfile erstellen
sudo nano CaddyfileDiese Konfiguration einfügen
example.com {
tls admin@example.com
root * /var/www/example.com
file_server {
index index.html
}
log {
output file /var/log/caddy/example.log
format console
}
}Speichern Sie die Änderungen und schließen Sie die Datei.
Was diese Konfiguration bewirkt
- example.com: Definiert einen virtuellen Host für Ihre Domain oder die IP-Adresse des Servers.
- tls: Legt die Kontakt-E-Mail für Let’s Encrypt Zertifikatsanfragen fest.
- root: Zeigt auf das Verzeichnis, das Ihre Webinhalte enthält.
- file_server: Aktiviert die Bereitstellung statischer Dateien und setzt
indexals Standarddatei. - log: Schreibt Zugriffs- und Fehlermeldungen in
/var/log/caddy/example.logim Konsolenformat.
Caddy validieren und neu laden
Überprüfen Sie die Konfiguration auf Syntaxfehler und übernehmen Sie anschließend die neue Konfiguration:
sudo caddy validatesudo caddy reloadCaddy Webserver absichern
Caddy richtet automatisch HTTPS für gültige Domains ein. Um die Konfiguration zusätzlich zu schützen, sollten Sie den Zugriff auf die Caddyfile so einschränken, dass unbefugte Änderungen verhindert werden.
Besitzrechte des Konfigurationsverzeichnisses an den Caddy-Benutzer übertragen
sudo chown -R caddy:caddy /etc/caddyCaddyfile-Berechtigungen einschränken
Geben Sie dem Caddy-Benutzer Lese- und Schreibrechte und verweigern Sie anderen den Zugriff:
sudo chmod 660 /etc/caddy/CaddyfileBerechtigungen prüfen
ls -l /etc/caddy/Ausgabe:
total 8
-rw-rw---- 1 caddy caddy 168 Jun 2 15:20 Caddyfile
-rw-r--r-- 1 caddy caddy 769 Jun 2 12:07 Caddyfle.defaultFirewall-Regeln einrichten
Je nach Caddyfile bedient Caddy HTTP (Port 80) und HTTPS (Port 443). Erlauben Sie diese Ports in der Firewall, um den Zugriff auf Ihre Website zu ermöglichen.
UFW-Status prüfen
sudo ufw statusWenn UFW inaktiv ist: SSH erlauben und aktivieren
sudo ufw allow 22 && sudo ufw enableHTTPS-Verkehr erlauben
sudo ufw allow 443UFW neu laden
sudo ufw reloadÖffnen Sie Ihren Browser und rufen Sie Ihre Domain auf, um zu prüfen, ob der virtuelle Host korrekt ausgeliefert wird:
Wenn eine Verbindungsstörung auftritt, prüfen Sie die Caddy-Logs, um den Fehler zu ermitteln.
Fazit
In diesem Abschnitt haben Sie den Caddy Webserver auf Ubuntu 22.04 eingerichtet und eine Virtual-Host-Konfiguration erstellt, um Ihre Webanwendungsdateien bereitzustellen. Weitere Optionen und erweiterte Konfigurationsbeispiele finden Sie in der offiziellen Caddy-Dokumentation.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.