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

183 lines
5.1 KiB
Markdown

# 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):
```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-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:
```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-Klaus 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!