Zum Inhalt

Server-Technologien

Diese Seite stellt die Technik vor, die auf unseren Hosts werner und containerhost läuft, und begründet, warum es genau diese ist. Zu jedem Teil gibt es eine eigene Seite.

Was auf den Hosts läuft

Auf beiden Hosts läuft derselbe kleine Kern:

Rocky Linux
Das Betriebssystem der Hosts, ein kostenloses Linux, das mit RHEL kompatibel ist. Welche Version auf welchem Host läuft, steht auf den Seiten werner und containerhost. Eingerichtet wird es von Hand; die wenigen Dateien dafür liegen in rootfs/. Mehr dazu: Statische Konfiguration
Podman mit Quadlets und systemd
Betreibt alle Anwendungen als Container. syslet erzeugt dafür Quadlet-Dateien, aus denen systemd die Container startet und überwacht. Mehr dazu: Podman
Caddy
Der Reverse Proxy: nimmt alle Anfragen aus dem Netz entgegen, leitet sie an den richtigen Container weiter und kümmert sich um die TLS-Zertifikate. Läuft selbst als Container. Mehr dazu: Caddy
restic
Sichert die Daten der Apps verschlüsselt auf das NAS. Läuft selbst als Container. Mehr dazu: Backup
WireGuard
Verbindet werner mit dem Netz im Maschinendorf, damit Backups und Monitoring nicht über das offene Internet laufen. Mehr dazu: Netzwerk

Im Hintergrund ist außerdem SELinux eingeschaltet, das zu Rocky Linux gehört und die Container voneinander und vom Host trennt. Im Alltag merkt man davon nichts; nur bei den Volumes einer Stack-Datei muss man es beachten (siehe SELinux).

Alles andere, auch die Anmeldung über Authentik, gehört zu einzelnen Apps und läuft in deren Containern. Wie Apps an den zentralen Login angebunden werden, erklärt SSO und OIDC.

Entscheidungen

Auf den Hosts läuft nur ein kleiner Kern. Jedes Werkzeug auf den Hosts muss jemand verstehen, aktualisieren und bei einer Störung durchschauen. Deshalb gibt es auf den Hosts nur, was wirklich gebraucht wird (siehe Grundsätze).

Wir nutzen, was das Betriebssystem schon mitbringt. Podman, systemd und SELinux gehören bei Rocky Linux wie bei RHEL zum Betriebssystem und sind aufeinander abgestimmt. Jede Hauptversion bekommt rund zehn Jahre lang Sicherheitsupdates; ein Wechsel auf eine neue Hauptversion steht also selten an. Es braucht keinen zusätzlichen Dienst, der die Container verwaltet (siehe Podman und systemd). Dass Podman die SELinux-Labels für Container von selbst setzt, ist der Grund, warum wir SELinux eingeschaltet lassen können, ohne viel Aufwand damit zu haben.

Alles Weitere läuft als Container. Caddy und restic laufen wie die Apps als Container und werden mit syslet ausgerollt. Sie stehen damit im Repo, und ihre Version anzuheben funktioniert wie bei jeder App. Fest auf dem Host eingerichtet sind nur das Betriebssystem mit Podman, WireGuard und ein paar Dateien aus rootfs/ (siehe Grundsätze im Selfhosting).

Weiterlesen