Skip to main content
TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸
DockerKubernetesGrafanaNextcloudHomeLabVault

HomeLab – Private Cloud und DevOps-Infrastruktur

Eine umfassende private Infrastruktur, die auf Docker, Kubernetes (k3s) und GitOps-Prinzipien basiert und eine Vielzahl von Self-Hosted-Diensten sowie Monitoring-Lösungen integriert.

Aland Baban · March 2023 · 6 min read · tier:[flagship]
Dockerk3sGitOpsPrometheusGrafanaVault
View repo

Dieses Projekt dokumentiert den Aufbau und die Verwaltung meiner persönlichen IT-Infrastruktur (HomeLab). Es dient als praktische Lernumgebung für moderne DevOps-Technologien und als Plattform für eine Vielzahl von selbst gehosteten Diensten.

Die gesamte Infrastruktur wird durch Infrastructure-as-Code (IaC) und GitOps-Methoden verwaltet. Die Orchestrierung der Dienste erfolgt primär über Docker und ein leichtgewichtiges Kubernetes-Cluster (k3s).

Kernkomponenten und Dienste

  • Container-Orchestrierung: Einsatz von Docker für einzelne Dienste und k3s (eine CNCF-zertifizierte Kubernetes-Distribution) für komplexe, skalierbare Anwendungen.
  • Monitoring und Visualisierung: Ein robuster Monitoring-Stack, bestehend aus Prometheus zur Metrikerfassung und Grafana für die Erstellung von Dashboards, gewährleistet die Systemtransparenz.
  • Secrets Management: HashiCorp Vault wird zur sicheren Speicherung und Verwaltung von Zugangsdaten, API-Schlüsseln und Zertifikaten eingesetzt.
  • Netzwerksicherheit: Implementierung von DNS-over-TLS zur Absicherung von DNS-Abfragen und weitere Maßnahmen zur Härtung des Netzwerks.
  • Automatisierung: CI/CD-Pipelines werden genutzt, um die Bereitstellung und Aktualisierung von Diensten zu automatisieren.
  • Self-Hosted-Anwendungen: Betrieb diverser Open-Source-Anwendungen wie Nextcloud für private Cloud-Speicherung, Gitea für die Versionskontrolle und weitere Dienste.

Das Projekt ist ein fortlaufender Prozess, der sich kontinuierlich weiterentwickelt und an neue technologische Standards angepasst wird.

Zum Projekt-Repository auf GitHub

01

architecture

Drei Ebenen: Internet-Edge (Router, DNS-over-TLS) → Reverse-Proxy-Layer (Nginx/Traefik mit TLS-Termination) → k3s-Cluster, der Workloads orchestriert. GitOps konvergiert den Cluster-Zustand gegen das Git-Repo; Vault liefert Secrets und kurzfristige Credentials; Prometheus/Grafana scrapen und alarmieren alle Knoten.

[ HomeLab — GitOps edge infra ]7 nodes · click to inspect

select a node to inspect responsibility, I/O, failure modes & security

02

problem

Eine private Cloud, die wie ein Produktionssystem betrieben wird — reproduzierbar, observabel und sicher, ohne Enterprise-Budget oder Vendor-Lock-in.

03

context

Ziel war eine Lernumgebung für moderne DevOps-Praxis, die echte Workloads (Nextcloud, Gitea, Monitoring) hostet und gleichzeitig als Spielwiese für Kubernetes, GitOps und Secrets-Management dient.

04

requirements

  • Alle Konfiguration deklarativ in Git (GitOps-Prinzip)
  • Zentrales Secrets-Management statt Klartext-Keys in Repos
  • Monitoring + Alerting für alle Dienste
  • Container-Orchestrierung mit k3s (CNCF-zertifiziert)
  • Selbst-gehostete Anwendungen ohne externe Dienste
05

constraints

  • Bare-Metal-Hardware im Heimnetz — begrenzte Ressourcen vs. k3s-Overhead
  • Keine Public-Cloud-Integration in v1; WAN-Zugriff über Port-Forwarding + TLS
  • Vault erfordert Unseal-Operationen bei jedem Neustart
07

key decisions

k3s statt Full-Kubernetes
CNCF-zertifiziert, ein Binär, geringer Footprint — passt auf die verfügbare Hardware, bleibt aber echtes Kubernetes.
Vault für Secrets
Dynamische Credentials + Unseal-Disziplin ergeben deutlich bessere Security-Posture als .env-Dateien.
GitOps als Zustands-Wahrheit
Replaybarer, auditierbarer Zustand; Cluster-Drift wird durch Reconciliation zurückgeführt.
08

alternatives considered

Docker Compose-only
[ rejected ]
Wesentlich einfacher, ausreichend für 10 Dienste.
why not: Kein Self-Healing, kein RBAC, keine Netzwerk-Policies — Lernziel Kubernetes verfehlt.
Kubernetes via Managed Cloud
[ rejected ]
Kein Betriebsaufwand.
why not: Widerspricht Ziel 'eigene Infrastruktur verstehen' und erzeugt Kosten.
09

trade-offs

  • Betriebskomplexität vs. Lernwert: k3s + Vault fordern Operability, liefern aber Enterprise-Praxis
  • Ressourcenverbrauch des Monitoring-Stacks vs. Observability-Gewinn
  • Unseal-Workflow von Vault vs. Komfort von statischen Secrets
10

security

  • DNS-over-TLS schützt Abfragen im Heimnetz
  • Secrets nie im Git; Vault mit verschlüsseltem Storage-Backend und kurzen Leases
  • RBAC + Network-Policies im Cluster; Firewall-Zonen am Edge
11

reliability

  • Self-Healing durch k3s (Replica-Controller, Restart-Policies)
  • Backups der Stateful-Services; Prometheus-Alerts auf Zielausfall
  • GitOps-Reconciliation stellt gewünschten Zustand nach Drift wieder her
12

testing

  • Rollouts über GitOps-Pipelines; manuelle Smoke-Tests je Dienst
  • Failover-Test: Knoten-Drain und Service-Recovery beobachtet
13

deployment

  • IaC + CI/CD-Pipelines automatisieren Bereitstellung und Updates
  • Reverse-Proxy terminiert TLS; Container laufen isoliert pro Namespace
14

observability

  • Prometheus scraped alle Knoten + Dienste; Grafana-Dashboards aggregieren Metriken
  • Alerting-Rules alarmieren auf Service-Down und Ressourcen-Engpässe
15

results

  • Reproduzierbare private Cloud mit GitOps, Vault und Monitoring
  • Praktisches Fundament für Security- und DevOps-Projekte (SSH-Hack, UserMatrix)
16

lessons

  • Infrastruktur als Code ist kein Selbstzweck — jeder Layer braucht einen wartbaren Owner
  • Monitoring zuerst einrichten, sonst lernt man Probleme erst im Ausfall