Caddy Webserver auf Ubuntu 22.04 installieren und konfigurieren
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.
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.gpg
Caddy-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.list
Paketindex aktualisieren
Aktualisieren Sie den Paketindex Ihres Servers:
sudo apt update
Caddy installieren
Installieren Sie Caddy mit folgendem Befehl:
sudo apt install caddy
Installation überprüfen
Prüfen Sie die installierte Version, um sicherzustellen, dass die Installation erfolgreich war:
caddy -v
Beispielausgabe:
v2.9.1 h1:OEYiZ7DbCzAWVb6TNEkjRcSCRGHVoZsJinoDR/n9oaY=
Firewall konfigurieren
Erlauben Sie eingehende Verbindungen für den HTTP-Port 80:
sudo ufw allow 80
Laden 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 caddy
Starten 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 caddy
Beispielausgabe:
● 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/Caddyfile
Einen 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.com
Index-Seite anlegen
sudo nano /var/www/example.com/index.html
Folgenden HTML-Code einfügen
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.default
Neue Caddyfile erstellen
sudo nano Caddyfile
Diese 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 validate
sudo caddy reload
Caddy 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/caddy
Caddyfile-Berechtigungen einschränken
Geben Sie dem Caddy-Benutzer Lese- und Schreibrechte und verweigern Sie anderen den Zugriff:
sudo chmod 660 /etc/caddy/Caddyfile
Berechtigungen 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.default
Firewall-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 status
Wenn UFW inaktiv ist: SSH erlauben und aktivieren
sudo ufw allow 22 && sudo ufw enable
HTTPS-Verkehr erlauben
sudo ufw allow 443
UFW 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.


