Files
Rezepte/PORTAINER_TRAEFIK_SETUP.md
2025-09-22 16:35:59 +02:00

5.1 KiB

Portainer Integration mit Traefik - Rezepte Klaus

🐳 Container-Management über Web-Interface

Portainer ist jetzt vollständig in das Traefik-Setup integriert und ermöglicht professionelle Docker-Container-Verwaltung über eine moderne Web-Oberfläche.

🌐 Zugriff

Produktions-URL:

https://portainer.your-domain.com

Erste Anmeldung:

  1. Admin-User erstellen (beim ersten Zugriff)
  2. Docker Environment auswählen: "Local"
  3. Docker Socket ist bereits konfiguriert

🔧 Warum Traefik NICHT entfernen?

Vorteile der Integration:

  • SSL-Termination: Automatische HTTPS-Zertifikate
  • Subdomain-Routing: Saubere URLs für alle Services
  • Zentrales Management: Ein Reverse Proxy für alle Services
  • Load Balancing: Bei Bedarf mehrere Instanzen
  • Service Discovery: Automatische Erkennung neuer Container

🏗️ Architektur-Übersicht:

Internet → Traefik → Services
           ↓
           ├── rezepte.domain.com → Frontend
           ├── phpmyadmin.domain.com → phpMyAdmin  
           ├── portainer.domain.com → Portainer
           └── traefik.domain.com → Traefik Dashboard

🚀 Deployment-Strategien

1. Alle Services zusammen (empfohlen):

# Komplettes Setup mit Portainer
./deploy-traefik.sh

2. Nur Portainer hinzufügen:

# Zu bestehendem Setup hinzufügen
docker-compose -f docker-compose.traefik.yml up portainer -d

3. Separates Portainer (falls gewünscht):

# Erstelle portainer-only.yml
docker run -d -p 9443:9443 --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

🔐 Sicherheit & Best Practices

1. Traefik Basic Auth (Optional):

# In docker-compose.traefik.yml aktivieren:
- "traefik.http.routers.portainer.middlewares=auth"

2. Portainer-eigene Authentifizierung:

  • RBAC: Benutzer-/Gruppenverwaltung
  • Teams: Zugriffskontrolle auf Container-Gruppen
  • OAuth: LDAP/AD-Integration möglich
  • 2FA: Zwei-Faktor-Authentifizierung

3. Docker Socket Sicherheit:

# Nur Read-Only falls gewünscht:
volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

🛠️ Portainer Features für Rezepte-Klaus

Container-Management:

  • Stack-Verwaltung: docker-compose.yml direkt bearbeiten
  • Logs: Live-Logs aller Services anzeigen
  • Resource-Monitoring: CPU/Memory/Network in Echtzeit
  • Volume-Management: Backup/Restore von Datenbanken
  • Network-Übersicht: Traefik-Netzwerk visualisieren

Spezifische Anwendungen:

# Beispiel-Tasks in Portainer:
# 1. MySQL-Backup über phpMyAdmin-Container
# 2. Frontend-Updates via Registry-Pull
# 3. Log-Analyse bei Problemen
# 4. Resource-Limits anpassen
# 5. Health-Check-Status überwachen

📊 Monitoring & Wartung

1. Service-Übersicht in Portainer:

  • Rezepte-Frontend: Status, Resource-Verbrauch
  • Rezepte-Backend: API-Health, Logs
  • MySQL: Datenbankverbindungen, Performance
  • Traefik: Routing-Statistiken, SSL-Status
  • phpMyAdmin: Datenbank-Zugriffe

2. Automatische Updates:

# In Portainer: Webhooks für CI/CD
# Auto-Update bei neuen Registry-Images
watchtower:
  image: containrrr/watchtower
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
  command: --interval 3600 --cleanup

🔄 Stack-Management

1. Rezepte-Klaus als Stack:

# In Portainer: "Stacks" → "Add Stack"
# Repository: Git-Integration möglich
# Environment: .env.production automatisch

2. Multi-Environment:

# Verschiedene Umgebungen verwalten:
# - rezepte-prod (docker-compose.traefik.yml)
# - rezepte-staging (docker-compose.staging.yml)
# - rezepte-dev (docker-compose.local-network.yml)

🚫 Was NICHT zu tun ist

Traefik entfernen:

  • Verlust der SSL-Automatisierung
  • Komplexe Port-Verwaltung
  • Keine einheitlichen Subdomains
  • Manuelle Konfiguration für jeden Service

Portainer vor Traefik:

  • Port-Konflikte (80/443)
  • Kein SSL für Portainer
  • Kein zentrales Routing

📋 Vollständige Service-Übersicht

Nach dem Deployment sind verfügbar:

Service URL Zweck
Rezepte-App https://rezepte.${DOMAIN} Haupt-Anwendung
Portainer https://portainer.${DOMAIN} Container-Management
phpMyAdmin https://phpmyadmin.${DOMAIN} Datenbank-Verwaltung
Traefik https://traefik.${DOMAIN} Proxy-Dashboard

🎯 Empfohlener Workflow

1. Development:

./start-local-network.sh  # Lokale Entwicklung

2. Staging/Production:

./deploy-traefik.sh       # Mit Portainer, SSL, etc.

3. Management:

  • Code-Änderungen: VS Code/Git
  • Container-Management: Portainer Web-UI
  • Datenbank: phpMyAdmin
  • Monitoring: Traefik + Portainer Dashboards

🎯 Fazit: Portainer ergänzt Traefik perfekt und bietet eine moderne Container-Management-Oberfläche, ohne die Vorteile des zentralen Reverse Proxys zu verlieren!