5.1 KiB
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:
- Admin-User erstellen (beim ersten Zugriff)
- Docker Environment auswählen: "Local"
- 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!