Moin.

Heute mal was für die technikaffinen Leser aka Nerds unter euch.

Dieses Blag und mittlerweile auch alle weiteren Seiten von mir laufen unter einem Webserver namens Caddy. Caddy ist in Go geschrieben, und performace-mäßig irgendwo zwischen Apache und nginx einzuordnen.

Was Caddy aber so besonders macht, ist die Konfiguration. Konfigurationsdateien heißen Caddyfiles und haben einen wundervoll simplen Aufbau:

Die ganze Konfigurationsdatei für meinen Blag sieht so aus:

bock.rocks {
    redir https://niclasleon.bock.rocks{uri}
}

niclasleon.bock.rocks {
    gzip

    proxy / /var/run/ghost.sock
}

Für ein (noch nicht öffentliches) PHP-Projekt (auf Basis von OctoberCMS / Laravel) sieht sie so aus:

example.com {
    gzip
    fastcgi / /var/run/php5-fpm.sock php

    rewrite {
        r .*
        ext /
        to /index.php?{query}
    }
}

Und für statische Inhalte könnte sie so aussehen:

example.com

Ziemlich cool, huh? Aber auch das macht einen Webserver noch nicht wirklich besonders. Die Konfigurationsdatei legt man einmal an und lässt sie dann bis zum Sankt Nimmerleins-Tag vor sich hin vegetieren.

Oder doch nicht? Was aufgefallen sein dürfte: Die Konfigurationsdateien sind dezentralisiert, direkt bei der jeweiligen Seite (und hoffentlich auch im Git-Projekt). Alles liegt beieinander, nicht die Config irgendwo und die Seite irgendwo anders. Vorteil? Verdammt leichtes Deployment - sowohl live als auch zum Entwickeln lokal. Und das auch noch unter verschiedenen Betriebssystemen.

Aber auch das ist für mich nicht das Ausschlaggebende. Caddy bietet dank Let's Encrypt von Haus aus für jede Seite ein gültiges SSL-Zertifikat. Das ist zum Entwickeln super und für Produktiv-Seiten noch superer.

So viel dazu. Anregungen sind wie immer erwünscht.

Tschööö!