
Homelab Setup
So habe ich meinen eigenen Homelab-Server aufgesetzt: Hardware, Virtualisierung und Netzwerk
Im Dezember 2025 habe ich mir einen Mini-PC zugelegt und mir darauf mein eigenes Homelab aufgesetzt. Ich hatte schon seit einiger Zeit vor, ein paar meiner Anwendungen selber zu hosten, damit ich meine eigenen Daten selber verwalten kann und ich ein eigenes Smart Home aufsetzen kann.
Also habe ich mir zu Weihnachten einen Dell Optiplex 7040 Mini zugelegt. Der PC hat
Diese Specs sind für meinen Gebrauch mehr als ausreichend. Ich kann problemlos mehrere Anwendungen wie Home Assistant, Immich, Traefik etc. virtualisiert parallel laufen lassen. Sogar Minecraft Server mit vielen Mods sind problemlos möglich
Auf dem Mini PC habe ich Proxmox installiert, um die einzelnen Anwendungen isoliert ausführen zu können und leichter Backups durchführen zu können. Dies hat sich als extrem nützlich erwiesen, da es auch die Installation der Anwendungen erleichtert, diese simpel und übersichtlich managen lässt und man nicht an ein Betriebssystem gebunden ist.
Für Backups habe ich mir externe HDDs zugelegt, auf denen ich mithilfe der Proxmox Backup Tools Sicherheitskopien der einzelnen LXC Container und VMs ablegen kann.
Um die Anwendungen im lokalen und externen Netz verfügbar zu machen, verwende ich eine Kombination aus Pi-Hole, Traefik, Tailscale und einer angemieteten Domain.
Die VMs und LXC Container, die man in Proxmox erstellt, bekommen immer eine eigene IP Adresse zugewiesen. Die Anwendungen, die man in ihnen ausführt, sind entsprechend über diese IP (plus Port) zu erreichen, z.B. ist die Home Assistant Web GUI bei mir unter http://192.168.178.115:8123 verfügbar.
Da es praktischer ist, die Anwendungen über richtige Domain-Namen (wie z.B. homeassistant.home.arpa) zu erreichen, bietet es sich an, einen lokalen DNS-Server zu betreiben, der auf Anfrage den Domain-Namen in die IP-Adresse umwandelt, sodass man nicht immer die IP-Adressen verwenden muss. Dieser lässt sich ebenfalls auf dem eigenen Home Server hosten. Die IP-Adresse des DNS-Servers muss dann in den Einstellungen des WLAN-Routers hinterlegt werden, damit die Geräte im lokalen Netz diesen verwenden und die Domain-Namen korrekt aufgelöst werden.
DNS-Server sind allerdings nur dazu da, IP-Adressen aufzulösen, und nicht IP-Adresse + Port. Würde man seinen eigenen DNS-Server (z.B. pi-hole) betreiben und 192.168.178.115 auf homeassistant.home.arpa zuweisen, müsste man zum Erreichen der Home Assistant Seite immer noch http://homeassistant.home.arpa:8123 eingeben. Um dies zu vermeiden, bietet sich ein Reverse Proxy (z.B. traefik) an.
Die Anfragen, die eigentlich an den Home Assistant Server geschickt werden sollen, werden dazu zuerst an den Reverse Proxy geschickt, welcher diese an Home Assistant weiterleitet. Der DNS-Eintrag homeassistant.home.arpa müsste daher nicht mehr auf die IP-Adresse von Home Assistant zeigen, sondern auf die IP-Adresse des Reverse Proxy. Der Reverse Proxy muss so konfiguriert werden, dass er die Anfragen an homeassistant.home.arpa korrekt an http://192.168.178.115:8123 weiterleitet. Der Reverse Proxy kann, wenn er korrekt konfiguriert ist, nicht nur die Anfragen an Home Assistant weiterleiten, sondern auch an jede andere Anwendung auf dem Server.
Wie sich an den Beispiel-URLs unschwer erkennen lässt, ist der gesamte Netzwerk-Traffic bisher unverschlüsselt und lässt sich von anderen im lokalen Netzwerk mitverfolgen. Dies sollte man langfristig vermeiden, da es nur ein kompromittiertes Gerät im Netzwerk braucht, damit Daten ungewollt abfließen.
Dazu werden TLS-Zertifikate (früher SSL-Zertifikate) verwendet. Diese bestätigen einem Nutzer, wenn er z.B. eine Website aufruft, dass die Seite, die er aufruft, tatsächlich die Seite ist, die sie vorgibt zu sein. Dies bezieht sich vor allem auf den Domain-Namen der aufgerufenen Seite. Ist die Domain, die im TLS-Zertifikat hinterlegt ist, nicht die gleiche wie die Domain der aufgerufenen Seite, so wird der Nutzer gewarnt, dass die Seite möglicherweise nicht vertrauenswürdig ist. Wenn das TLS-Zertifikat passt, wird die Verbindung zwischen Nutzer und Server hergestellt und der gesamte Traffic zwischen beiden wird verschlüsselt, sodass er von Dritten nicht mitverfolgt werden kann.
Dementsprechend braucht man für die Verschlüsselung der Verbindungen zu den Anwendungen auf dem Home Server TLS-Zertifikate, die die Domain-Namen der Anwendungen beinhalten.
Es gibt verschiedene Möglichkeiten, an solche TLS-Zertifikate zu kommen. An sich kann man diese selbst erstellen, allerdings werden diese von den meisten Browsern als nicht vertrauenswürdig eingestuft und führen dazu, dass man eine Warnung erhält, wenn man die Anwendung aufruft, weil die Zertifikate nicht von einer vertrauenswürdigen Instanz ausgestellt wurden. Dies ist auf Dauer nicht besonders angenehm, da man bei jedem Aufruf der Anwendung eine Warnung wegklicken muss, um sie zu erreichen, oder jedes einzelne Zertifikat als vertrauenswürdig einstufen muss, was unsicher und fehleranfällig ist.
Zertifikate von offiziellen Zertifizierungsstellen (CAs) sind dagegen von den meisten Browsern als vertrauenswürdig eingestuft, aber sind in der Regel teuer, da man für jedes Zertifikat, das man benötigt, bezahlen muss.
Glücklicherweise gibt es auch kostenlose Zertifikate von CAs, wie z.B. Let's Encrypt. Diese sind von den meisten Browsern als vertrauenswürdig eingestuft und können kostenlos genutzt werden. Allerdings muss man dazu eine Domain anmieten, damit die Zertifikate von Let's Encrypt ausgestellt werden können, da diese nur für öffentlich registrierte Domains ausgestellt werden.
Reverse Proxies wie Traefik können allerdings so konfiguriert werden,dass sie die Anfragen an die Anwendungen auf dem Home Server weiterleiten und gleichzeitig die TLS-Zertifikate von Let's Encrypt für die entsprechenden Domains bereitstellen.
Dadurch wird der Netzwerk-Traffic zu den Anwendungen auf dem Home Server verschlüsselt, ohne dass man sich um die Erstellung und Verwaltung der einzelnen TLS-Zertifikate kümmern muss.
Dazu muss der Home Server nicht von außen erreichbar sein. Wichtig ist nur, dass die Anwendungen im lokalen Netz über den angemieteten Domain-Namen erreichbar sind. Wurde z.B. mustermann.de angemietet, müsste der Reverse Proxy diese unter homeassistant.home.mustermann.de, immich.home.mustermann.de etc. erreichbar machen, und die TLS-Zertifikate von Let's Encrypt würden für diese Domains ausgestellt werden,
Um die Anwendungen auf dem Home Server auch von außerhalb des lokalen Netzwerks erreichbar zu machen, könnte man Ports am Router freigeben, damit die Anfragen von außen direkt an die Anwendungen weitergeleitet werden. Dies ist jedoch unsicher, da es Angriffe von außen ermöglicht.
Eine praktische, kostenlose Alternative ist Tailscale, ein VPN-Dienst, der es ermöglicht, von überall auf der Welt sicher auf die Anwendungen im lokalen Netzwerk zuzugreifen, indem man eine sichere Verbindung zwischen dem Gerät, von dem man auf die Anwendungen zugreifen möchte, und dem lokalen Netzwerk herstellt.
Dazu muss Tailscale auf dem Home Server installiert werden, und so ausgeführt werden, dass es das Subnetz des lokalen Netzwerks (z.B. 192.168.178.0/24) in das Tailscale Netzwerk einbindet. Wird Tailscale dann auch auf dem Gerät installiert, von dem man auf die Anwendungen zugreifen möchte, verhält es sich, als würde man sich im lokalen Netzwerk befinden. Die für das lokale Netz eingerichteten Domain-Namen, der Reverse-Proxy und die TLS-Zertifikate funktionieren dadurch genauso.
Nach einigem Herumprobieren habe ich mich für die folgende Konfiguration entschieden:
Als Reverse-Proxy verwende ich Traefik. Traefik läuft in einem LXC auf Proxmox und ist so konfiguriert,
http://.. automatisch zu https://.. weiterleitet.
Wenn ich Zeit habe, werde ich einen weiteren Beitrag über meine Traefik-Konfiguration erstellen und das praktische Python-Skript, dass ich dafür geschrieben habe, veröffentlichen.
Die Konfiguration für Home Assistant sieht z.B. so aus:
http:
routers:
ha:
rule: Host(`ha.home.ejuet.de`)
entryPoints:
- websecure
tls:
certResolver: le
service: ha
services:
ha:
loadBalancer:
servers:
- url: http://192.168.178.115:8123
Damit alle Anfragen an die einzelnen Anwendungen wie homeassistant.home.ejuet.de korrekt weitergeleitet werden, verwende ich als DNS-Server Pi-Hole. In /etc/dnsmasq.d habe ich dafür eine Datei 06-home-ejuet-de-wildcard.conf erstellt:
address=/home.ejuet.de/192.168.178.67Dadurch werden alle Anfragen mit Domain-Namen, die mit .home.ejuet.de enden, an Traefik unter der angegebenen IP weitergeleitet.
Die Domain habe ich bei Porkbun gemietet, jedoch nicht weiter konfiguriert. Ich habe bloß einen API-Key erstellt und diesen im Traefik LXC hinterlegt, damit Traefik korrekt die TLS-Zertifikate generieren kann.
Ich habe mich bei Tailscale angemeldet, tailscale in einem LXC auf dem Home Server installiert.
Zuerst muss IP-Forwarding aktiviert werden:
echo 'net.ipv4.ip_forward=1' | tee /etc/sysctl.d/99-tailscale-router.confMit folgendem Command wird tailscale gestartet, damit das Subnetz freigegeben wird:
tailscale up --advertise-routes=192.168.178.0/24Die Route muss zudem in der Tailscale-Admin-Konsole genehmigt werden.
Damit Pi-Hole weiterhin als DNS-Server verwendet wird, muss dieser als Split-DNS Server in den Tailscale Einstellungen hinterlegt werden:

Das Aufsetzen eines eigenen Home Labs ist mit ein bisschen Zeit und Geduld gar nicht so schwer und bietet viele Möglichkeiten, um sich mit verschiedenen Technologien auseinanderzusetzen und die volle Kontrolle über die eigenen Daten zu haben.
Mein Setup mit Proxmox, Traefik, Pihole und Tailscale läuft seit einiger Zeit sehr verlässlich.
Noch Fragen?