Homelab · Platform Engineering

Ein Server. Betrieben wie Produktion.

Die Geschichte meines Homelabs, von einer einzelnen Kiste bis zur GitOps-Plattform, mit dem Live-Beweis, dass es läuft. Scroll, um es aufzubauen.

Story überspringen

01 / Der Stack

Schicht für Schicht.

  1. 01Hardware

    Ein Server. Ein gespiegelter ZFS-Pool für alles Unersetzliche, NVMe für schnelle Disks, eine GPU fürs Transcoding.

  2. 02Virtualisierung

    Proxmox teilt die Kiste in VMs und Container. Der Cluster-Manager läuft neben dem Cluster, nie darin.

  3. 03Cluster

    Vier Talos-Linux-Nodes bilden Kubernetes: kein SSH, keine Shell, jede Maschine durch ihre Konfiguration beschrieben.

  4. 04Plattform

    Git ist die Quelle der Wahrheit. Flux wendet jede Änderung an; Netzwerk, Identität, Secrets, Zertifikate, Backups und Monitoring gehören dazu.

  5. 05Anwendungen

    Was die Familie täglich nutzt: Fotos, Medien, Dateien, Dokumente, Code und Automatisierung, hinter einem Login.

Diagramm des Homelab-Stacks, von der Hardware bis zu den AnwendungenHOMELAB · EIN SERVERPRÜFEKUBERNETES-CLUSTERAnwendungenFotosMedienDateienDokumenteGitAutomatisierungPlattformGitOpsNetzwerkGatewayIdentitätSecretsZertifikateBackupsMonitoringKubernetesTALOS LINUXControl PlaneworkerworkerWorker · GPUOmniVERWALTUNGAUSSERHALBProxmoxVMS · CONTAINERtalosBackup · S3DateienomniEin ServerBARE METALZFS-MirrorNVMeGPUHBASCROLLEN ZUM AUFBAUEN

02 / Eine Anfrage

Jede Anfrage, geprüft.

Weg einer Anfrage aus dem Internet über Firewall, Gateway und Login zu einer AppWEG EINER ANFRAGESCROLLEN ZUM SENDENInternetIRGENDWERFirewallNUR EIN LANDGatewayTLS · RATE LIMITSLoginEIN KONTO · 2FAAppANGEKOMMENBLOCKIERTGEBREMST
  1. 01Internet

    Jemand öffnet einen Link. Ab hier gilt nichts als vertrauenswürdig.

  2. 02Firewall

    Ein einziger Port ist offen, und nur für Adressen aus einem Land. Intrusion Prevention prüft den Rest. Die meisten Scanner kommen nie weiter.

  3. 03Gateway

    Hier endet die Verschlüsselung, mit Zertifikaten, die sich selbst erneuern. Rate Limits bremsen alle, die Passwörter raten.

  4. 04Login

    Ein Konto für alle Apps, mit zweitem Faktor. Der Identitätsdienst entscheidet, wer reinkommt.

  5. 05App

    Die Anfrage kommt an, unterwegs dreimal geprüft.

03 / Wenn es bricht

Dinge gehen kaputt. Es kommt zurück.

Ein Worker fällt aus, seine Apps ziehen auf die gesunden Worker um und Daten kommen aus einem Backup ausserhalb des Clusters zurückCLUSTER · VIER NODESSCROLLEN ZUM KAPUTTMACHENControl PlaneFÜHRT DEN CLUSTERworkerworkerworkerGPUworkerNICHT BEREITNEU GEBAUTFotosMedienDateienDokumenteGitAutomatisierungBackupS3 · JEDE NACHTAUSSERHALBOffsiteVERSCHLÜSSELTAUSSER HAUS↺ STELLT WIEDER HER
  1. 01Läuft

    Vier Nodes, die Apps verteilt auf die drei Worker.

  2. 02Ein Node fällt aus

    Ein Worker antwortet nicht mehr. Kubernetes markiert ihn als nicht bereit und gibt ihm keine Arbeit mehr.

  3. 03Apps ziehen um

    Seine Apps starten auf den gesunden Workern neu. Dafür muss sich niemand einloggen.

  4. 04Daten kommen zurück

    Gehen Daten selbst verloren, kommen sie aus dem Backup zurück. Jede Nacht gehen sie auf Speicher ausserhalb des Clusters, und eine verschlüsselte Kopie verlässt das Haus.

  5. 05Wieder grün

    Der Node wird aus seiner Konfiguration neu gebaut und ist wieder dabei. Jede Nacht läuft ein Restore-Test, die Backups sind also bewiesen, nicht erhofft.

Der Restore-Test läuft jede Nacht. Sein Live-Ergebnis erscheint hier, sobald das Lab sich meldet.

04 / Es ist live

Keine Animation. Live.

Alles oben war eine Zeichnung. Diese Werte kommen vom Cluster selbst, alle fünf Minuten gepusht.

Homelab-Status wird geprüft

Nodes bereit

– / –

Letzter Restore-Test

–

Änderungen über Git

–%

letzte 30 Tage

Fotos

–

in der Familienbibliothek

Gemergte Änderungen

–

pro Tag, letzte 30 Tage

Speicher belegt

–%

gespiegelter Pool für Unersetzliches

Dienste

    Letzte Aktivität

      Über mich

      Zuhause gebaut. Mit Sorgfalt betrieben.

      In diesem Lab betreibe ich alles so, wie ich es auch beruflich tun würde: alles in Git, jede Änderung geprüft, Backups, die regelmässig wiederhergestellt werden, und nichts, was auf Glück beruht. Wenn du etwas Ähnliches baust oder dich austauschen willst, schreib mir.