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¶
- Podman
- SELinux
- Caddy
- SSO und OIDC
- Was man von Hand darf: was man auf den Hosts selbst tun darf