# Portainer Integration mit Traefik - Rezepte ## 🐳 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): ```bash # Komplettes Setup mit Portainer ./deploy-traefik.sh ``` ### 2. **Nur Portainer hinzufügen**: ```bash # Zu bestehendem Setup hinzufügen docker-compose -f docker-compose.traefik.yml up portainer -d ``` ### 3. **Separates Portainer** (falls gewünscht): ```bash # 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): ```yaml # 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**: ```yaml # Nur Read-Only falls gewünscht: volumes: - /var/run/docker.sock:/var/run/docker.sock:ro ``` ## 🛠️ Portainer Features für Rezepte ### 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: ```bash # 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**: ```yaml # 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 als Stack**: ```yaml # In Portainer: "Stacks" → "Add Stack" # Repository: Git-Integration möglich # Environment: .env.production automatisch ``` ### 2. **Multi-Environment**: ```yaml # 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**: ```bash ./start-local-network.sh # Lokale Entwicklung ``` ### 2. **Staging/Production**: ```bash ./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!