Homelab – Infrastructure

CT 101 auf dem Proxmox-Host. Enthält Pi-hole (DNS-basierter Werbeblocker) und Cloudflared (Cloudflare Tunnel). Zurück zum Homelab-Überblick.


Container-Konfiguration

EigenschaftWert
CT ID101
Hostnameinfrastructure
IP192.168.178.10
RAM512 MB
Disk4 GB (ZFS Subvolume)
Cores(Proxmox Default)
Startup Order1 (startet zuerst — DNS muss vor allem anderen laufen)

Compose & Secrets

  • Compose: /opt/infrastructure/docker-compose.yml
  • Env: /opt/infrastructure/.env (Berechtigungen: 600)
  • Enthält: CLOUDFLARED_TUNNEL_TOKEN, PIHOLE_PASSWORD

Pi-hole

Netzwerkweiter DNS-Adblocker. Alle Clients im Heimnetz nutzen Pi-hole als DNS-Server.

Netzwerk-Konfiguration

Pi-hole läuft mit network_mode: host. Das ist notwendig, weil Docker-NAT in einer unprivileged LXC Port 53 nicht korrekt weiterleitet.

Die Fritz!Box ist so konfiguriert:

  • IPv4 lokaler DNS-Server: 192.168.178.10
  • IPv6: Router Advertisement aktiv, DNSv6 via RA deaktiviert, DHCPv6deaktiviert
  • Ergebnis: Alle Clients nutzen IPv4-DNS über Pi-hole, IPv6-Internet funktioniert normal

Web-Interface

http://192.168.178.10/admin (Port 80, nicht 8080). Passwort gesetzt via docker exec -it pihole pihole -a -p.

Blocklisten

Automatisch aktualisiert über pihole-updatelists (im Image jacklul/pihole integriert):

QuelleURL
Firebog Ticked Listshttps://v.firebog.net/hosts/lists.php?type=tick
mmotti Regexhttps://raw.githubusercontent.com/mmotti/pihole-regex/master/regex.list

DNS-Leak-Prüfung

macOS-Geräte können gelegentlich auf die Fritz!Box als IPv6-DNS zurückfallen. Prüfen mit:

# Auf dem Mac:
scutil --dns | grep "nameserver"
# Sollte NUR 192.168.178.10 zeigen

Falls IPv6-DNS der Fritz!Box auftaucht: DNS auf dem Mac manuell auf 192.168.178.10 setzen (Systemeinstellungen → Netzwerk → Wi-Fi → Details → DNS).


Cloudflared

Cloudflare Tunnel für sichere externe Erreichbarkeit ohne Port-Forwarding. Exponiert ausschließlich Jellyfin (CT 103, http://192.168.178.12:8096). Konfiguration im Cloudflare Zero Trust Dashboard unter Networks → Tunnels.

Actual Budget und alle Admin-Interfaces sind bewusst nicht im Tunnel — Zugriff von unterwegs läuft ausschließlich über Tailscale.


Troubleshooting

  • DNS-Auflösung funktioniert nicht: nslookup google.com 192.168.178.10 von einem Client testen
  • Pi-hole Web-UI nicht erreichbar: docker ps in der LXC prüfen, Port 80 muss auf host-Netzwerk lauschen
  • Cloudflared-Tunnel “unhealthy”: docker logs cloudflared --tail 20 — häufigste Ursache: Token abgelaufen oder Tunnel im Dashboard deaktiviert
  • Seite fälschlich geblockt: Pi-hole → Query Log → Whitelist