Seealm Seebruck

Verfasst von

in

🌐 Dahoam Mesh-Weiche

Zentrale Vermittlungsstelle (Traefik v3 & Headscale) zur sicheren Anbindung dezentraler Homeserver ohne Portfreigaben am Router.

🗺️ Der Weg des Datenverkehrs (Ende-zu-Ende)

Ein eingehender HTTPS-Aufruf aus dem Internet wird auf dem Hostkey-VPS entgegengenommen, dort vollautomatisch mit einem echten Let’s-Encrypt-Zertifikat versehen und über den verschlüsselten Tailscale/WireGuard-Mesh-Tunnel direkt an den dezentralen Homeserver weitergeleitet:Browser / ClientInternet-NutzerPort 443Hostkey VPS (Weiche)Traefik v3Auto-TLS / SSLHeadscaleControl PlaneTailscale Mesh100.64.0.0/10Knoten SeebruckDietPi VM in PVEwp-seppi:8080

1. DNS-Wildcard
*.aopen.nas64.de routet direkt auf die VPS-IP. Subdomains erfordern keine manuelle DNS-Verwaltung.

2. TLS & Zertifikat
Traefik v3 stellt automatisch Let’s-Encrypt-Zertifikate per HTTP-01 aus und terminiert SSL zentral am VPS.

3. CGNAT-Bypass
Der Tunnel baut sich von innen nach außen auf. Keine Portweiterleitung in Kundenroutern erforderlich.

Erledigt & Online Meilensteine des Setups

  • VPS Basis & Härtung: Debian 12 auf Hostkey VPS gehärtet (Key-only SSH, UFW Firewall für Ports 22/80/443, Fail2ban, Auto-Upgrades).
  • Zentrale Vermittlung (Traefik v3 & Headscale): Reverse-Proxy und selbst gehostete Headscale-Instanz laufen containerisiert im Mesh-Netz.
  • Domain-Architektur: Saubere Wildcard-Domain aopen.nas64.de – vollständig frei von geteilten DynDNS-Rate-Limits.
  • Mesh-Kopplung: 4 registrierte Knoten im Headscale-Netzwerk (100.64.0.0/10).
  • Erstes Kunden-Deployment (Live): Kunde Seppi in Seebruck (100.64.0.4) – WordPress Docker-Stack via Remote-SSH vom VPS ausgerollt. Endpunkt https://wp-seppi.aopen.nas64.de ist live und zertifiziert.

📖 Rezept 1: WordPress-Kundenknoten remote ausrollen

Dieses Rezept rollt einen neuen Dienst für einen Kunden vollautomatisch über das Mesh-Netzwerk aus.

1. Headscale Pre-Auth-Key auf dem VPS erzeugen

docker exec headscale headscale preauthkeys create --user 1 --expiration 24h

2. Remote-Node verbinden & Hostname setzen

tailscale up \
--login-server https://headscale.aopen.nas64.de \
--authkey <PRE-AUTH-KEY> \
--hostname seebruck-seppi \
--accept-routes

3. SSH-Key-Vertrauen über das Mesh herstellen

VPS-Public-Key in die /root/.ssh/authorized_keys des Client-Nodes eintragen, damit künftige Deployments und Updates direkt vom Hostkey-VPS per SSH ohne Passworteingabe durchlaufen.

4. WordPress-Stack per Remote-SSH vom VPS deployen

ssh root@100.64.0.4 'bash -s' << 'EOF'
set -e
mkdir -p /opt/wp-seppi && cd /opt/wp-seppi

cat << 'YAML' > compose.yaml
services:
db:
image: mariadb:10.11
container_name: wp-seppi-db
restart: unless-stopped
environment:
  MYSQL_ROOT_PASSWORD: secret_root_password_seppi
  MYSQL_DATABASE: wordpress
  MYSQL_USER: wpuser
  MYSQL_PASSWORD: secret_wp_password_seppi
volumes:
  - db_data:/var/lib/mysql

wordpress:
image: wordpress:php8.2-apache
container_name: wp-seppi-app
restart: unless-stopped
depends_on:
  - db
ports:
  - "8080:80"
environment:
  WORDPRESS_DB_HOST: db:3306
  WORDPRESS_DB_USER: wpuser
  WORDPRESS_DB_PASSWORD: secret_wp_password_seppi
  WORDPRESS_DB_NAME: wordpress
volumes:
  - wp_data:/var/www/html

volumes:
db_data:
wp_data:
YAML

docker compose up -d
EOF

Hinweis: Das offizielle WordPress-Image erkennt HTTP_X_FORWARDED_PROTO bereits nativ – kein WORDPRESS_CONFIG_EXTRA erforderlich!

5. Traefik-Route am VPS aktivieren (/opt/headscale-traefik/traefik/dynamic/wp-seppi.yml)

http:
routers:
wp-seppi-router:
  rule: "Host(`wp-seppi.aopen.nas64.de`)"
  entryPoints:
    - websecure
  service: wp-seppi-svc
  tls:
    certResolver: letsencrypt

services:
wp-seppi-svc:
  loadBalancer:
    servers:
      - url: "http://100.64.0.4:8080"

Roadmap Nächste Schritte

  1. Auto-Sync Daemon: Shell-Skript auf dem VPS, das neue Headscale-Registrierungen erkennt und Traefik-Routen automatisch aus Vorlagen generiert.
  2. Zero-Touch Bootstick: USB-Stick mit vorkonfiguriertem DietPi/Alpine-Image für Kunden, das beim Einstecken automatisch ins Mesh joint.
  3. Eigene Kundendomains: Aufschaltung beliebiger Kunden-Domains via CNAME auf den VPS.

TRAUNROCKS

Dahoam Cloud • Digitale Souveränität • Dezentrale Infrastruktur

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Weitere Beiträge