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.

Raspberry Pi Heimserver: Das 2025 Update mit Docker, AdGuard & Traefik hero image

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.

Externe SSD als zuverlässiges Systemlaufwerk für den Raspberry Pi

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.

  1. Lade zunächst den aktuellen Raspberry Pi Imager von der offiziellen Website herunter und installiere ihn.
  2. Wähle dein Raspberry Pi Modell aus.
  3. 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.
  4. 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.)
  5. 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.
  6. 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.

  1. Verzeichnisse erstellen:

    mkdir -p ~/docker/adguard/{work,conf}
    cd ~/docker/adguard

    (Im conf-Ordner speichert AdGuard seine Konfiguration, im work-Ordner Arbeitsdaten wie Statistiken.)

  2. 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
  3. 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
  4. AdGuard Home starten: Stelle sicher, dass du im Verzeichnis ~/docker/adguard bist.

    sudo docker compose up -d
  5. 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 Port 53.
    • 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 der docker-compose.yml entfernen und den Container mit sudo docker compose up -d neu starten, um den Port zu schließen.
  6. 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.

  7. 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
  8. (Sehr Wichtig!) DNS-Umschreibung für lokale Domains: Damit Domains wie traefik.home oder heimdall.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.

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).

  1. Verzeichnis erstellen:

    mkdir -p ~/docker/traefik
    cd ~/docker/traefik
  2. 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)

  3. 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)

  4. 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!
  5. 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.

  1. 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)

  2. Docker Compose Datei erstellen:

    nano docker-compose.yml

    Mit folgendem Inhalt (ersetze 1000 bei PUID/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)

  3. 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.

  1. 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
  2. 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.

  3. 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?

  1. 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.

  2. 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!

  3. 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.

Diesen Beitrag teilen:

Diese Website verwendet Cookies. Diese sind notwendig, um die Funktionalität der Website zu gewährleisten. Weitere Informationen finden Sie in der Datenschutzerklärung