Externe Netzwerk erstellen (falls nicht vorhanden):
docker network create traefik_proxy_networkVerzeichnisse vorbereiten:
# Sicherstellen dass alle Ordner existieren
mkdir -p logs volumes
# Richtige Permissions setzen
chmod 700 volumes
chmod 755 logsTraefik stoppen:
docker compose downOptional: Alte Logs löschen (VORSICHT!):
# Nur wenn du die Logs nicht brauchst
rm -f logs/*.logContainer starten:
docker compose up -dLogs überprüfen:
# Live-Logs anschauen
docker compose logs -f traefik
# Nach Fehlern suchen
docker compose logs traefik | grep -i error
docker compose logs traefik | grep -i warndocker compose psErwartetes Ergebnis: State: Up
curl -I https://traefik.server-erde.web-seo-consulting.eu/dashboard/Erwartetes Ergebnis: HTTP/2 401 (Auth required) oder HTTP/2 200 (nach Login)
curl -I http://traefik.server-erde.web-seo-consulting.euErwartetes Ergebnis: 301 Moved Permanently mit Location: https://...
curl -I https://traefik.server-erde.web-seo-consulting.eu/dashboard/Sollte enthalten:
Strict-Transport-Security: max-age=31536000X-Frame-Options: DENYX-Content-Type-Options: nosniff
curl -u traefik-admin:DEIN_PASSWORT https://traefik.server-erde.web-seo-consulting.eu/metricsErwartetes Ergebnis: Prometheus-Metriken im Text-Format
curl -I --tlsv1.3 https://traefik.server-erde.web-seo-consulting.eu/dashboard/Sollte funktionieren.
curl -I --tlsv1.2 https://traefik.server-erde.web-seo-consulting.eu/dashboard/Sollte NICHT funktionieren (TLS 1.2 ist deaktiviert).
Lösung:
docker network create traefik_proxy_networkLösung:
mkdir -p volumes
chmod 700 volumes
docker compose up -dUrsache: Traefik kann sich selbst nicht finden
Debug:
# Prüfen ob Labels gesetzt sind
docker inspect traefik | grep -A 50 Labels
# Prüfen ob Router erstellt wurden
docker compose logs traefik | grep -i dashboardMögliche Ursachen:
- Port 80/443 nicht erreichbar von außen
- Domain zeigt nicht auf Server
- Rate-Limit von Let's Encrypt erreicht
Debug:
# Logs durchsuchen
docker compose logs traefik | grep -i acme
docker compose logs traefik | grep -i certificateTemporäre Lösung (Staging CA):
# In traefik.yaml ändern:
caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"Debug:
# Plugin-Status prüfen
docker compose logs traefik | grep -i geoblock
# API-Calls loggen ist aktiviert
docker compose logs traefik | grep geojs.ioBekanntes Problem: Bei Start dauert Plugin-Download ~30 Sekunden
Falls etwas schief geht:
# Stoppen
docker compose down
# Alte Config wiederherstellen (Git)
git checkout HEAD -- configs/
git checkout HEAD -- docker-compose.yaml
# Neu starten
docker compose up -dResponse-Zeiten messen:
curl -w "@-" -o /dev/null -s https://traefik.server-erde.web-seo-consulting.eu/dashboard/ <<'EOF'
time_namelookup: %{time_namelookup}s\n
time_connect: %{time_connect}s\n
time_appconnect: %{time_appconnect}s\n
time_pretransfer: %{time_pretransfer}s\n
time_starttransfer: %{time_starttransfer}s\n
time_total: %{time_total}s\n
EOFErwartete Werte:
time_total< 1s (für Dashboard)- Compression sollte Response-Size um ~70% reduzieren
Wichtige Metriken im Dashboard beobachten:
- https://traefik.server-erde.web-seo-consulting.eu/dashboard/
- Router-Status (grün = OK)
- Services-Status (grün = OK)
- HTTP → HTTPS Redirects sichtbar
- Middleware-Chain sichtbar
Prometheus Metriken:
- https://traefik.server-erde.web-seo-consulting.eu/metrics
traefik_entrypoint_requests_totaltraefik_entrypoint_request_duration_secondstraefik_router_requests_total
- Dashboard nur über HTTPS erreichbar
- BasicAuth für Dashboard aktiv
- HTTP → HTTPS Redirect funktioniert
- Security Headers gesetzt (HSTS, X-Frame-Options, etc.)
- TLS 1.3 only (TLS 1.2 blockiert)
- Geo-Blocking aktiv (Test mit VPN)
- Rate-Limiting funktioniert
- Let's Encrypt Zertifikate werden erneuert
- Logs werden rotiert
-
.envNICHT in Git committed -
volumes/Traefik.jsonhat Permissions 600
Permissions prüfen:
ls -la volumes/Traefik.json
# Sollte sein: -rw------- (600)
# Falls nicht:
chmod 600 volumes/Traefik.json- Andere Projekte migrieren - Siehe
LABELS-CHECKLIST.md - Dashboard-Passwort ändern - Siehe unten
- Geo-Blocking anpassen - Optional
- Backup einrichten - Für
volumes/Traefik.json
Neues Passwort generieren:
# Mit htpasswd (Apache Utils)
htpasswd -nbB traefik-admin "DEIN_NEUES_PASSWORT"
# Oder mit Docker:
docker run --rm httpd:alpine htpasswd -nbB traefik-admin "DEIN_NEUES_PASSWORT"Output kopieren und in configs/traefik-dynamic.yaml einfügen:
dashboard-auth:
basicAuth:
users:
- "traefik-admin:$2y$05$..." # Hier dein neuer HashTraefik neu starten:
docker compose restart traefikBei Problemen:
- Logs prüfen:
docker compose logs traefik - Config validieren:
docker compose config - Traefik Debug-Mode: In
traefik.yamlsetzen:level: DEBUG