Raspberry Pi Heimserver: Das 2025 Update mit Docker, AdGuard & Traefik
Schritt-für-Schritt-Anleitung: Richte deinen Raspberry Pi als energiesparenden Heimserver mit Docker, AdGuard Home (Adblocker), Traefik (Reverse Proxy) und Heimdall (Dashboard) ein. Update 2025.

Inhaltsverzeichnis
- Voraussetzungen und Hardware-Empfehlungen
- Betriebssystem installieren: Headless-Setup mit Raspberry Pi OS
- Grundkonfiguration des Raspberry Pi OS
- Docker und Docker Compose installieren
- AdGuard Home als Netzwerkweiter Werbeblocker einrichten
- Traefik als Reverse Proxy einrichten
- Heimdall als Dashboard einrichten
- Automatische Updates und Wartung
- Öffentlicher Zugang zu deinen Diensten (Optional)
- Fazit und Ausblick
Im Jahr 2021 hatte ich einen Blogpost zur Einrichtung eines Raspberry Pi als Heimserver mit Proxy Manager und Werbeblocker veröffentlicht. Seitdem hat sich in der Welt der Heimserver und Containerisierung einiges getan. In diesem aktualisierten Beitrag zeige ich dir, wie du im Jahr 2025 einen modernen und effizienten Heimserver auf Basis eines Raspberry Pi aufsetzt – perfekt für Dienste wie Werbeblocker, Reverse Proxy und mehr.
Möchtest du lieber zuschauen? Die komplette Anleitung findest du auch in diesem YouTube-Video.
Voraussetzungen und Hardware-Empfehlungen
Für einen zuverlässigen Heimserver benötigst du nicht zwingend den allerneuesten Raspberry Pi. Als Minimum empfehle ich jedoch einen Raspberry Pi 4 mit mindestens 4 GB RAM. Mehr Arbeitsspeicher sorgt für eine bessere Performance, wenn du planst, mehrere Dienste parallel laufen zu lassen. Grundsätzlich kann diese Anleitung auch auf anderen Geräten (z.B. Mini-PCs) mit einem Debian-basierten Betriebssystem angewendet werden.
Finger weg von SD-Karten als Systemspeicher! SD-Karten sind für den Dauerbetrieb und die vielen kleinen Schreibzugriffe eines Serversystems ungeeignet. Sie haben begrenzte Schreib-/Lesezyklen und fallen bei intensiver Nutzung oft unerwartet aus. Stattdessen empfehle ich dringend eine externe SSD, die via USB 3.0 angeschlossen wird. Die Vorteile sind deutlich:
- Höhere Geschwindigkeit: Das System bootet schneller und reagiert flüssiger.
- Längere Lebensdauer: SSDs sind für häufigere Schreibvorgänge ausgelegt.
- Mehr Zuverlässigkeit: Geringeres Risiko von Datenverlust durch Speicherausfall.
Ein großer Vorteil des Raspberry Pi bleibt sein geringer Stromverbrauch. Ein Raspberry Pi 5 benötigt etwa 4-5 Watt im Leerlauf und bis zu 10 Watt unter Volllast. Im Vergleich zu einem “ausgewachsenen” Server oder einem alten Laptop ist das immer noch sehr wirtschaftlich. Berechne hier deine ungefähren jährlichen Stromkosten:
Ergebnis
Betriebssystem installieren: Headless-Setup mit Raspberry Pi OS
Der Raspberry Pi Imager ist über die Jahre deutlich komfortabler geworden und erlaubt viele Vorkonfigurationen direkt beim Erstellen des Boot-Mediums.
- Lade zunächst den aktuellen Raspberry Pi Imager von der offiziellen Website herunter und installiere ihn.
- Wähle dein Raspberry Pi Modell aus.
- Wähle als Betriebssystem die “Raspberry Pi OS Lite (64-bit)“-Version aus (unter “Raspberry Pi OS (other)”). Die 64-Bit-Version ist mittlerweile die Standardempfehlung. Die Lite-Version kommt ohne grafische Oberfläche aus, was für einen Server ideal ist, da sie wertvolle Systemressourcen spart.
- Wähle als Speichermedium deine angeschlossene externe SSD. (Hinweis: Falls die SSD nicht erkannt wird oder das Formatieren fehlschlägt, musst du sie eventuell unter Windows über die Datenträgerverwaltung oder unter macOS/Linux mit entsprechenden Tools zunächst manuell löschen und neu initialisieren.)
- Klicke auf “Weiter” und dann auf “Einstellungen bearbeiten”. Hier kannst du jetzt wichtige Voreinstellungen treffen:
- Hostname: Gib deinem Pi einen Namen (z.B.
raspberrypi.local
). - Benutzername und Passwort: Lege einen sicheren Benutzernamen und ein starkes Passwort fest (vermeide den alten Standard “pi”).
- WLAN konfigurieren: Gib deine WLAN-Daten ein, falls du kein LAN-Kabel verwendest (LAN ist für Serverbetrieb empfohlen!).
- Locale-Einstellungen: Setze Sprache und Tastaturlayout (z.B.
de
,Europe/Berlin
). - Dienste: Aktiviere SSH unbedingt! Wähle “Passwort-Authentifizierung verwenden”. Ohne SSH müsstest du Monitor und Tastatur anschließen.
- Hostname: Gib deinem Pi einen Namen (z.B.
- Speichere die Einstellungen und klicke auf “Ja” bzw. “Schreiben”, um den Vorgang zu starten.
Nach Abschluss des Schreibvorgangs kann die SSD an den Raspberry Pi (an einen blauen USB 3.0 Port!) angeschlossen und der Pi gestartet werden.
Nach dem ersten Start verbindest du dich per SSH mit deinem Pi. Die IP-Adresse findest du in der Oberfläche deines Routers. Unter Windows, macOS oder Linux geht das im Terminal:
ssh dein_benutzername@ip-adresse-des-pi
# Beispiel: ssh pi-admin@192.168.178.50
Bestätige beim ersten Verbinden den Fingerprint mit yes
.
Grundkonfiguration des Raspberry Pi OS
Nach der erfolgreichen SSH-Verbindung bringen wir als Erstes das System auf den neuesten Stand:
sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove -y
Dies kann einige Zeit dauern. Im Anschluss prüfen wir wichtige Systemeinstellungen:
# Zeitzone überprüfen (sollte durch Imager korrekt sein)
date
# Falls doch nötig, Zeitzone manuell setzen:
# sudo timedatectl set-timezone 'Europe/Berlin'
# Systemauslastung und laufende Prozesse beobachten (mit Strg+C beenden)
htop
# CPU-Temperatur überwachen
cat /sys/class/thermal/thermal_zone0/temp
Der letzte Befehl zeigt die CPU-Temperatur in Milligrad Celsius an. Teile den Wert durch 1000, um die Gradzahl zu erhalten (z.B. 52123
entspricht 52.123 °C
). Bei längerer Nutzung unter Last, besonders bei neueren Modellen wie dem Raspberry Pi 5, ist eine adäquate Kühlung (passiv oder aktiv) unerlässlich, um Überhitzung und Leistungsdrosselung zu vermeiden.
Docker und Docker Compose installieren
Docker ist der De-facto-Standard für die Containerisierung von Anwendungen. Es erlaubt uns, Dienste isoliert voneinander in sogenannten Containern laufen zu lassen, ohne uns um Abhängigkeitskonflikte kümmern zu müssen. Die Installation unter Raspberry Pi OS (Debian) erfolgt über die offiziellen Docker-Repositories:
# 1. Notwendige Pakete installieren
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# 2. Dockers offiziellen GPG-Schlüssel hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 3. Docker Repository hinzufügen
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. Docker Engine, CLI, Containerd und Compose Plugin installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker Compose ist heute als Plugin direkt in Docker integriert und muss nicht mehr separat installiert werden. Es erlaubt uns, Multi-Container-Anwendungen über einfache YAML-Dateien zu definieren und zu verwalten.
Überprüfe die Installation:
docker --version
docker compose version
Wir erstellen nun eine Grundstruktur für unsere Docker-Konfigurationen im Home-Verzeichnis:
mkdir -p ~/docker
cd ~/docker
AdGuard Home als Netzwerkweiter Werbeblocker einrichten
Statt Blocky oder Pi-hole setzen wir auf AdGuard Home. Es blockiert Werbung und Tracker auf DNS-Ebene für dein gesamtes Netzwerk, bietet eine moderne Weboberfläche und wird aktiv weiterentwickelt.
-
Verzeichnisse erstellen:
mkdir -p ~/docker/adguard/{work,conf} cd ~/docker/adguard
(Im
conf
-Ordner speichert AdGuard seine Konfiguration, imwork
-Ordner Arbeitsdaten wie Statistiken.) -
Docker Compose Datei erstellen:
nano docker-compose.yml
Füge folgende Konfiguration ein:
# ~/docker/adguard/docker-compose.yml version: "3.8" # Version hinzugefügt für Klarheit services: adguard: image: adguard/adguardhome:latest # :latest hinzugefügt container_name: adguard-home # Konsistenter Name restart: unless-stopped ports: # DNS Ports - Müssen direkt erreichbar sein - "53:53/tcp" - "53:53/udp" # Port für die Ersteinrichtung (kann danach entfernt werden) - "3000:3000/tcp" # Ports für DNS-over-TLS und DNS-over-HTTPS (optional) # - "853:853/tcp" # DoT # - "443:443/tcp" # DoH - Achtung: Kollidiert mit Traefik! # - "443:443/udp" # DNS-over-QUIC - Achtung: Kollidiert mit Traefik! volumes: - ./work:/opt/adguardhome/work - ./conf:/opt/adguardhome/conf environment: TZ: Europe/Berlin # Zeitzone anpassen falls nötig networks: - proxy # Verbindung zum Traefik-Netzwerk # Labels für Traefik (um das Dashboard über traefik.home zu erreichen) labels: - "traefik.enable=true" # Router für HTTP Anfragen - "traefik.http.routers.adguard-http.rule=Host(`adguard.home`)" - "traefik.http.routers.adguard-http.entrypoints=web" # Service Definition - "traefik.http.services.adguard.loadbalancer.server.port=80" # Interner AdGuard Webinterface Port networks: proxy: external: true # Verwendet das extern erstellte Netzwerk
-
Gemeinsames Docker-Netzwerk erstellen: Bevor wir Container starten, die über ein gemeinsames Netzwerk kommunizieren sollen, erstellen wir dieses einmalig:
# Falls noch nicht geschehen: sudo docker network create proxy
-
AdGuard Home starten: Stelle sicher, dass du im Verzeichnis
~/docker/adguard
bist.sudo docker compose up -d
-
Ersteinrichtung: Öffne im Browser
http://<IP-Adresse-des-Pi>:3000
.- Wähle als “Listen interface” für das Webinterface Port
80
und für den DNS-Server Port53
. - Lege einen Benutzernamen und ein sicheres Passwort für das AdGuard-Dashboard fest.
- Folge den weiteren Schritten des Assistenten.
- Wichtig: Nachdem die Einrichtung abgeschlossen ist und du das Dashboard über Traefik (siehe nächster Schritt) erreichst, kannst du den Port
3000:3000/tcp
aus derdocker-compose.yml
entfernen und den Container mitsudo docker compose up -d
neu starten, um den Port zu schließen.
- Wähle als “Listen interface” für das Webinterface Port
-
Router konfigurieren: Damit AdGuard Home dein Netzwerk filtert, trage die IP-Adresse deines Raspberry Pi in den DHCP-Einstellungen deines Routers als einzigen DNS-Server für deine Netzwerkgeräte ein. Der genaue Ort dieser Einstellung variiert je nach Router-Modell (z.B. bei Fritz!Box unter “Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv4-Adressen”). Starte danach deine Endgeräte neu oder erneuere deren IP-Konfiguration (z.B.
ipconfig /renew
unter Windows), damit sie den neuen DNS-Server verwenden. -
Filterlisten konfigurieren: Im AdGuard Dashboard unter “Filter > DNS-Sperrlisten” kannst du Listen hinzufügen. Empfehlenswert ist z.B. die “AdGuard DNS filter”-Liste. Um Fehlfunktionen durch zu aggressives Blocken zu vermeiden, füge unter “Filter > Zulassungslisten” diese Whitelist hinzu, die häufig benötigte Domains (z.B. für Updates) enthält:
https://raw.githubusercontent.com/deployn/adguardhomelist/main/whitelist.txt
-
(Sehr Wichtig!) DNS-Umschreibung für lokale Domains: Damit Domains wie
traefik.home
oderheimdall.home
später funktionieren, musst du AdGuard anweisen, diese auf deinen Pi umzuleiten. Gehe in AdGuard zu “Filter > DNS-Umschreibungen” und füge eine neue Regel hinzu:- Domain:
*.home
- IP-Adresse: Die IP-Adresse deines Raspberry Pi (z.B.
192.168.178.50
) - Speichern.
- Domain:
Traefik als Reverse Proxy einrichten
Ein Reverse Proxy wie Traefik nimmt Anfragen aus dem Netzwerk entgegen und leitet sie an den richtigen internen Dienst (Container) weiter. Das erspart uns, für jeden Dienst einen eigenen Port freigeben zu müssen und ermöglicht die zentrale Verwaltung von Domains und SSL-Zertifikaten. Wir verwenden hier Traefik v3 wegen seiner exzellenten Docker-Integration. Alternativen wie Nginx Proxy Manager oder Caddy sind ebenfalls gute Optionen (siehe dieses Youtube-Video).
-
Verzeichnis erstellen:
mkdir -p ~/docker/traefik cd ~/docker/traefik
-
Docker Compose Datei erstellen:
nano docker-compose.yml
Mit folgendem Inhalt:
# ~/docker/traefik/docker-compose.yml version: "3.8" services: traefik: image: traefik:v3.0 # Spezifische Version verwenden (oder :latest) container_name: traefik restart: unless-stopped ports: # HTTP & HTTPS Entrypoints - "80:80" - "443:443" volumes: # Docker Socket für Service Discovery - /var/run/docker.sock:/var/run/docker.sock:ro # Traefik Konfigurationsdatei - ./traefik.yml:/etc/traefik/traefik.yml:ro # Datei zum Speichern von Let's Encrypt Zertifikaten - ./acme.json:/acme.json networks: - proxy # Labels um das Traefik Dashboard selbst verfügbar zu machen labels: - "traefik.enable=true" # Router für HTTP (leitet auf HTTPS um, falls konfiguriert) - "traefik.http.routers.traefik-http.rule=Host(`traefik.home`)" - "traefik.http.routers.traefik-http.entrypoints=web" # Router für HTTPS (optional, siehe Abschnitt Public Access) # - "traefik.http.routers.traefik-https.rule=Host(`traefik.home`)" # - "traefik.http.routers.traefik-https.entrypoints=websecure" # - "traefik.http.routers.traefik-https.tls=true" # TLS aktivieren # - "traefik.http.routers.traefik-https.tls.certresolver=letsencrypt" # LE verwenden # Service zum Traefik API/Dashboard (intern auf Port 8080) - "traefik.http.services.traefik.loadbalancer.server.port=8080" # Middleware für HTTPS Redirect (optional, siehe Public Access) # - "traefik.http.routers.traefik-http.middlewares=redirect-to-https" # - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true" networks: proxy: external: true
(Struktur verbessert, Kommentare hinzugefügt, Optionale HTTPS-Teile auskommentiert)
-
Traefik Konfigurationsdatei erstellen:
nano traefik.yml
Mit diesem Inhalt:
# ~/docker/traefik/traefik.yml # Statische Konfiguration für Traefik # EntryPoints definieren (wo Traefik lauscht) entryPoints: web: address: ":80" # HTTP # Optional: Automatische Weiterleitung aller HTTP Anfragen an HTTPS # http: # redirections: # entryPoint: # to: websecure # scheme: https # permanent: true websecure: address: ":443" # HTTPS # API & Dashboard Konfiguration api: dashboard: true # Dashboard aktivieren insecure: true # Erlaubt Zugriff auf Dashboard via HTTP (nur für lokales Netz empfohlen!) # Docker Provider Konfiguration providers: docker: endpoint: "unix:///var/run/docker.sock" # Verbindung zum Docker Socket exposedByDefault: false # Nur Container mit Label 'traefik.enable=true' verwenden network: proxy # Welches Netzwerk für die Kommunikation nutzen # Log Einstellungen log: level: INFO # Log Level (DEBUG, INFO, WARNING, ERROR) # Optional: Let's Encrypt Konfiguration (siehe Abschnitt Public Access) # certificatesResolvers: # letsencrypt: # acme: # email: deine-email@example.com # storage: acme.json # httpChallenge: # entryPoint: web
(Optionale Teile auskommentiert,
insecure: true
erklärt) -
Leere Datei für SSL-Zertifikate erstellen: Diese Datei wird von Traefik verwendet, um Let’s Encrypt Zertifikate zu speichern.
touch acme.json chmod 600 acme.json # Wichtig: Zugriffsbeschränkung setzen!
-
Traefik starten: Stelle sicher, dass du im Verzeichnis
~/docker/traefik
bist.sudo docker compose up -d
Traefik ist nun der Haupt-Eingangspunkt auf Port 80 (und 443). Dank der AdGuard-Umschreibung sollte das Traefik Dashboard jetzt unter http://traefik.home
erreichbar sein (da wir insecure: true
gesetzt haben). Es zeigt dir alle von Traefik erkannten Docker-Container (“Router” und “Services”).
Heimdall als Dashboard einrichten
Um den Überblick über unsere wachsenden Dienste zu behalten, installieren wir Heimdall. Es bietet ein ansprechendes Dashboard mit Kacheln für all deine Anwendungen und kann für einige Dienste sogar Live-Informationen anzeigen. Homer (aus der alten Anleitung) ist weiterhin eine gute, schlanke Alternative.
-
Verzeichnis erstellen:
# PUID/PGID ermitteln (Benutzer-ID/Gruppen-ID deines Docker-Benutzers) # Diese werden benötigt, damit der Container mit den richtigen Rechten auf Config-Dateien zugreifen kann. id -u # Zeigt deine Benutzer-ID (z.B. 1000) id -g # Zeigt deine Gruppen-ID (z.B. 1000) mkdir -p ~/docker/heimdall/config cd ~/docker/heimdall
(Erklärung für PUID/PGID hinzugefügt)
-
Docker Compose Datei erstellen:
nano docker-compose.yml
Mit folgendem Inhalt (ersetze
1000
beiPUID
/PGID
mit deinen Werten):# ~/docker/heimdall/docker-compose.yml version: "3.8" services: heimdall: image: linuxserver/heimdall:latest container_name: heimdall restart: unless-stopped volumes: # Konfigurationsdaten persistent speichern - ./config:/config environment: - PUID=1000 # Deine Benutzer-ID (von 'id -u') - PGID=1000 # Deine Gruppen-ID (von 'id -g') - TZ=Europe/Berlin # Deine Zeitzone networks: - proxy labels: - "traefik.enable=true" # Router für HTTP - "traefik.http.routers.heimdall.rule=Host(`heimdall.home`)" - "traefik.http.routers.heimdall.entrypoints=web" # Service (Heimdall lauscht intern standardmäßig auf Port 80/443, wir verwenden HTTP) - "traefik.http.services.heimdall.loadbalancer.server.port=80" networks: proxy: external: true
(PUID/PGID Erklärung im Code-Kommentar)
-
Heimdall starten: Stelle sicher, dass du im Verzeichnis
~/docker/heimdall
bist.sudo docker compose up -d
Heimdall sollte nun dank AdGuard und Traefik unter http://heimdall.home
erreichbar sein. Klicke auf “Add Application” oder das Zahnrad, um Kacheln für deine Dienste (AdGuard, Traefik usw.) hinzuzufügen. Für AdGuard kannst du unter “Enhanced” sogar die API-Daten eintragen (URL: http://adguard-home
, Port 80, Benutzer/Passwort), um Live-Statistiken im Dashboard zu sehen.
Automatische Updates und Wartung
Ein Heimserver benötigt regelmäßige Pflege.
-
Betriebssystem-Updates: Wir haben
unattended-upgrades
installiert, das Sicherheitsupdates automatisch einspielt. Kontrolliere trotzdem ab und zu manuell:sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
-
Docker-Container Updates: Container sollten ebenfalls aktuell gehalten werden. Manuell geht das pro Dienst:
# Beispiel für AdGuard: cd ~/docker/adguard sudo docker compose pull # Lädt das neueste Image herunter sudo docker compose up -d --remove-orphans # Startet den Container mit dem neuen Image neu
Wiederhole dies für Traefik und Heimdall in ihren jeweiligen Verzeichnissen (
~/docker/traefik
,~/docker/heimdall
).Alternative für automatische Docker-Updates: Watchtower ist ein beliebter Container, der andere Container automatisch aktualisieren kann. Die Einrichtung ist einfach, birgt aber das Risiko, dass ein fehlerhaftes Update einen Dienst lahmlegt, wenn man nicht aufpasst.
-
Docker Systembereinigung: Mit der Zeit sammeln sich ungenutzte Images, Container und Netzwerke an. Bereinige regelmäßig:
sudo docker system prune -af
Dieser Befehl entfernt ohne Rückfrage (
-f
):- Alle gestoppten Container
- Alle Netzwerke, die nicht von mindestens einem Container verwendet werden
- Alle ungenutzten Images (Images ohne Tag oder Referenz durch einen Container, dank
-a
) - Den ungenutzten Build-Cache
Öffentlicher Zugang zu deinen Diensten (Optional)
öchtest du Dienste wie Heimdall oder andere sicher von unterwegs erreichen?
-
DynDNS: Da sich deine öffentliche IP-Adresse zu Hause ändern kann, benötigst du einen DynDNS-Dienst (z.B. DuckDNS, No-IP, Cloudflare DDNS), der eine feste Domain (z.B.
mein-heimserver.duckdns.org
) immer auf deine aktuelle IP zeigt. Viele Router haben integrierte DynDNS-Clients. -
Port-Weiterleitung: Leite in deinem Router die Ports 80 (für HTTP) und 443 (für HTTPS) an die IP-Adresse deines Raspberry Pi weiter. Achtung: Das Öffnen von Ports birgt Sicherheitsrisiken. Stelle sicher, dass deine Dienste gut abgesichert sind!
-
SSL mit Let’s Encrypt & Traefik: Für sichere HTTPS-Verbindungen nutzen wir kostenlose Zertifikate von Let’s Encrypt, die Traefik automatisch beantragen und erneuern kann.
-
Bearbeite
~/docker/traefik/traefik.yml
. -
Entkommentiere den
certificatesResolvers
-Abschnitt am Ende und trage deine E-Mail-Adresse ein. -
Starte Traefik neu:
cd ~/docker/traefik && sudo docker compose up -d
-
Für jeden Dienst, der über HTTPS öffentlich erreichbar sein soll (z.B. Heimdall), passe die Labels in der jeweiligen
docker-compose.yml
an:# Beispiel-Labels für Heimdall (in ~/docker/heimdall/docker-compose.yml) labels: - "traefik.enable=true" # HTTP Router (optional: leitet nur auf HTTPS um) - "traefik.http.routers.heimdall-http.rule=Host(`heimdall.deine-dyn-dns.de`)" - "traefik.http.routers.heimdall-http.entrypoints=web" - "traefik.http.routers.heimdall-http.middlewares=redirect-to-https@docker" # Middleware für Redirect # HTTPS Router (Haupt-Router) - "traefik.http.routers.heimdall-https.rule=Host(`heimdall.deine-dyn-dns.de`)" - "traefik.http.routers.heimdall-https.entrypoints=websecure" - "traefik.http.routers.heimdall-https.tls=true" # TLS aktivieren - "traefik.http.routers.heimdall-https.tls.certresolver=letsencrypt" # LE Resolver verwenden # Service Definition (wie zuvor) - "traefik.http.services.heimdall.loadbalancer.server.port=80" # Middleware Definition (nur einmal global für Traefik nötig, kann auch in traefik.yml) - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
(HTTPS-Labels mit Redirect präzisiert. Ersetze
heimdall.deine-dyn-dns.de
) Starte den jeweiligen Container neu, damit Traefik die neuen Labels erkennt und das Zertifikat beantragt.
-
Alternative ohne öffentliche IP/Portweiterleitung: Dienste wie Tailscale, ZeroTier oder Cloudflare Tunnel erlauben den Zugriff auf dein Heimnetzwerk über einen sicheren Tunnel, ohne Ports öffnen zu müssen. Auch Pangolin (Blogpost/Youtube Video) ist eine Option.
Fazit und Ausblick
Herzlichen Glückwunsch! Du hast einen modernen, effizienten und relativ sicheren Heimserver auf Basis eines Raspberry Pi eingerichtet. Die Kombination aus Docker für Flexibilität, AdGuard Home für ein werbefreies Netz, Traefik für zentrale Zugriffssteuerung und Heimdall als Übersicht bietet eine hervorragende Grundlage.