Ziel-, und Problemstellung: Ziel war es, eine zentrale, wartbare Infrastruktur für mehrere private Dienste aufzubauen – ohne Cloud-Abhängigkeit und mit klarer Trennung der Komponenten.
Ergebnis: Die Lösung läuft auf vorhandener Hardware, ist leicht erweiterbar und kann sowohl technische Experimente als auch produktive Nutzung abdecken.
Ausgangsprobleme
- Mehrere Dienste liefen unstrukturiert oder direkt auf dem Host.
- Updates und Backups waren uneinheitlich oder nur über SD-Card-Copy möglich.
- Kein sauberer Zugriff von außen.
- Keine gemeinsame Basis für neue Projekte (Portfolio, CV, Tools)
Technische Eckpunkte
- Raspberry Pi 4 als zentraler Server
- Docker / Docker Compose für alle Anwendungen
- Synology DSplay als NAS für Storage, Backups und Medien
- Netzwerk im privaten Umfeld, externer Zugriff nur gezielt
Umsetzung / Architektur: Der Raspberry Pi fungiert als Applikations-Host. Alle Dienste laufen containerisiert, jeweils mit eigener Konfiguration und klar definierten Volumes. Das NAS übernimmt Backups persistente Daten, Backups und Medien- und Archivspeicher.
Eingesetzte Dienste
- Pi-hole: Netzwerkweiter DNS-Filter, Werbe- und Tracking-Blocker für alle Geräte, Läuft als eigener Container
- Reverse Proxy: Zentrale Einstiegsschicht für Webdienste, einheitliche URLs und HTTPS, entkoppelt Dienste von internen Ports
- Portfolio: Eigene Website als Container, dient als technisches und kreatives Schaufenster, wird vollständig über Docker deployt
- Reactive Resume: "Extern" gepflegter Lebenslauf, read-only Einbindung per URL, keine lokale Datenhaltung notwendig
- NAS-Anbindung: Docker-Volumes zeigen auf NAS-Freigaben, Trennung von Compute und Storage, einfacher Host-Wechsel möglich
Fazit: Die Kombination aus Raspberry Pi, Docker und NAS hat sich als robuste und flexible Basis für ein privates Homelab erwiesen. Statt einzelner Insellösungen existiert nun eine klar strukturierte Infrastruktur, die sowohl Experimente als auch produktive Dienste trägt. Besonders wertvoll ist die Trennung von Infrastruktur und Inhalt: Dienste lassen sich austauschen oder neu deployen, ohne Daten oder Struktur zu verlieren. Das System ist bewusst nicht maximal ausgereizt, sondern auf Verständlichkeit, Wartbarkeit und Erweiterbarkeit ausgelegt.