183 lines
5.1 KiB
Markdown
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! |