Caddy Server einrichten

Wer einen kleinen, schlanken und flinken Webserver braucht, greift normalerweise zu Lighttpd oder nginx. Nun haben wir eine dritte Lösung zur Verfügung: Caddy.

Aktuell kommt der in Go geschriebene Webserver Caddy mit winzigen 3MB daher und ist auf den meisten Systemen sofort betriebsbereit. Dabei ist der Webserver doch recht mächtig und wartet mit interessanten, doch simpel einzurichtenden Features auf: HTTP/2, HTTPS, IPv6, FastCGI, Websockets, Markdown und Templates, sowie weiteren Funktionen.

Konfiguration simpel gemacht: Das Caddyfile

Die komplette Konfiguration läuft dabei über eine einzige Datei ab, welche schlicht und einfach den Namen „Caddyfile“ trägt. Die Syntax ist recht simpel, für nicht-IT-Kundige schnell zu verstehen und erinnert ein wenig an CSS:

Wenn man eine ownCloud-Instanz betreiben möchte, hat man leider standardmäßig das Problem einer Weiterleitungsschleife. Diese kann man mit der obigen Rewrite-Regel aber einfach umgehen.

Let’s Encrypt für Faule

Eines der Killer-Features von Caddy ist die HTTPS-Unterstützung out of the Box. Wenn man Caddy bei der Definition nicht zu HTTP zwingt:

dann versucht Caddy automatisch für die definierte Domain und deren ggf. definierten Subdomains ein Let’s Encrypt-Zertifikat zu bekommen. Falls dies möglich ist, wird, ebenfalls automatisch ein HTTPS-Listener gestartet und lauscht für die Domains.

Selbst wenn ein User die Webseite über HTTP ansteuert, und dessen Browser HTTPS unterstützt, leitet Caddy direkt die Anfrage auf die HTTPS-Adresse um. Für private Webseiten und kleinere Projekte ein klarer Vorteil.

Möchte man statt der Let’s Encrypt-Zertifikate lieber seine eigenen verwenden, so geschieht dies auch wieder über eine simple Direktive:

Der erste Start

Wie anfangs gesagt, funktioniert Caddy auf den meisten System direkt und ohne Vorbereitung:

Der Server startet und versucht automatisch mit dem eingebauten Let’s Encrypt Client die Zertifikate für die definierten Domains abzuholen. Dabei muss man noch die Nutzungsbedingungen von LE abnicken.

Möchte man bei Let’s Encrypt seine eMail-Adresse hinterlegen und automatisch die Nutzungsbedingungen abnicken lassen, so kann man dies mit folgenden Parametern:

 

Ohne Stützräder

Generell sollte man Dienste, wenn möglich, nicht unter einem administrativen Account laufen lassen. Ich habe daher für meine Testmaschine den Benutzer „caddy“ und eine gleichnamige Gruppe angelegt. In diese Gruppe habe ich auch die Benutzer aufgenommen, welche Webinhalte ändern dürfen. Die Rechte auf das Caddyfile habe ich so beschnitten, dass niemand sonst auf selbiges zugreifen kann.

Da Caddy über die Shell gestartet wird und eine reguläre Implementation als Dienst noch in den Sternen steht, kann man unter Ubuntu einfach das in der Regel vorhandene Upstart verwenden:

Dadurch kann man den Server als Service starten, sodass auch bei Systemneustarts der Webserver wieder zur Verfügung steht:

Beachtet hierbei ggf. den Account, sowie die Gruppe und Mailadresse anzupassen.

Damit ist eine grundlegende Konfiguration abgeschlossen und man kann den Webserver schon produktiv einsetzen. Eine Übersicht über alle Direktiven und Parameter kann man auf der Webseite vom Caddy Server finden. Übrigens, falls ihr Angst habt, dass Eure Zertifikate nach 90 Tagen ablaufen – hier kümmert sich Caddy selbst drum und erneuert selbstständig vor Ablauf die vorhandenen Zertifikate.

Bitte beachtet, dass der Webserver (leider) noch nicht so bekannt ist, und daher etwaige vorhandene Lücken noch nicht aufgedeckt wurden. Wer möchte, kann sich aber an der Bug-Suche beteiligen, da der Quelltext auf Github zur Verfügung steht.

Gefällt's euch? Dann teilt's...Share on FacebookTweet about this on TwitterShare on Google+Share on TumblrShare on Reddit
This entry was posted in Tutorials and tagged , , , , , , .

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*