4.7 KiB
4.7 KiB
Docker Deployment Guide für Unraid
Diese Anleitung beschreibt die Deployment von WrestleDesk auf einem Unraid-Server mit Docker Compose. Nginx Proxy Manager läuft bereits zentral.
Voraussetzungen
- Unraid Server mit Docker Compose Plugin
- Domain (z.B. rce.playman.top) mit DNS A-Record auf Unraid-IP
- Nginx Proxy Manager läuft bereits (Port 81 für Admin-UI)
Schnellstart
1. Repository klonen
cd /mnt/user/appdata/
mkdir wrestledesk && cd wrestledesk
git clone http://192.168.101.42:3023/PlayMan/WrestleDesk.git .
git checkout feature/pwa # Wichtig: PWA Branch verwenden
2. Umgebungsvariablen konfigurieren
cp .env.example .env
nano .env # Oder dein bevorzugter Editor
Wichtige Werte in .env ändern:
# Backend
SECRET_KEY=dein-sehr-langer-zufälliger-schlüssel-mindestens-50-zeichen
DATABASE_URL=sqlite:///db.sqlite3
Tipp für SECRET_KEY:
openssl rand -base64 50
3. Docker Container starten
docker-compose up -d --build
Das erste Bauen kann 5-10 Minuten dauern.
4. Im Nginx Proxy Manager konfigurieren
- Öffne deinen Nginx Proxy Manager (normalerweise
http://deine-unraid-ip:81) - Proxy Hosts → Add Proxy Host
Einstellungen für Frontend:
- Domain Names:
rce.playman.top - Scheme:
http - Forward Hostname / IP:
deine-unraid-ip - Forward Port:
3000 - Block Common Exploits: ✅ Aktivieren
Einstellungen für Backend (API):
- Domain Names:
rce.playman.top - Scheme:
http - Forward Hostname / IP:
deine-unraid-ip - Forward Port:
8000 - Advanced Tab → Custom Locations:
- Location:
/api/v1 - Forward Hostname:
deine-unraid-ip - Forward Port:
8000
- Location:
SSL Tab:
- SSL Certificate:
Request a new SSL Certificate - Force SSL: ✅ Aktivieren
- HTTP/2 Support: ✅ Aktivieren
- Save
5. DNS einrichten
In deinem Domain-Provider:
- Type: A
- Name: rce (oder @ für Root)
- Value: Deine Unraid Server IP
- TTL: 300
6. Fertig!
Nach wenigen Minuten sollte WrestleDesk erreichbar sein unter:
Wartung
Updates durchführen
cd /mnt/user/appdata/wrestledesk
git pull origin feature/pwa # Oder main
docker-compose down
docker-compose up -d --build
Logs ansehen
# Alle Services
docker-compose logs -f
# Nur Frontend
docker-compose logs -f frontend
# Nur Backend
docker-compose logs -f backend
Backup
# Datenbank + Media Backup erstellen
cd /mnt/user/appdata/wrestledesk
tar czf backup-$(date +%Y%m%d).tar.gz backend/db.sqlite3 backend/media/
# Backup zu Unraid Array verschieben
mv backup-*.tar.gz /mnt/user/backups/wrestledesk/
Container stoppen
docker-compose down
Port-Belegung
| Service | Port | Beschreibung |
|---|---|---|
| Frontend | 3000 | Next.js App |
| Backend | 8000 | Django API |
Wichtig: Diese Ports müssen von außen NICHT erreichbar sein - nur über Nginx Proxy Manager!
Fehlerbehebung
Frontend zeigt "Backend not reachable"
Prüfe ob die API-URL korrekt ist:
docker-compose exec frontend env | grep API_URL
# Sollte zeigen: NEXT_PUBLIC_API_URL=https://rce.playman.top/api/v1
CORS Fehler im Browser
Backend .env prüfen:
docker-compose exec backend env | grep CORS
# Sollte zeigen: CORS_ALLOWED_ORIGINS=https://rce.playman.top
Container starten nicht
# Prüfen was den Port blockiert
netstat -tlnp | grep -E '(:3000|:8000)'
# Oder: Container logs prüfen
docker-compose logs --tail 50
SSL Zertifikat wird nicht erstellt
- Prüfe ob Port 80 und 443 von außen erreichbar sind
- Prüfe DNS A-Record (sollte auf Unraid-IP zeigen)
- Warte 24h nach DNS-Änderungen
- Versuche "Renew" im Nginx Proxy Manager
Sicherheitshinweise
- Ändere das Nginx Proxy Manager Passwort nach dem ersten Login
- Verwende ein starkes SECRET_KEY in .env (min. 50 Zeichen)
- Aktiviere "Block Common Exploits" im Nginx Proxy Manager
- Halte Docker Images aktuell:
docker-compose pull && docker-compose up -d - Backup regelmäßig durchführen
Architektur
Internet
↓
Nginx Proxy Manager (auf Unraid, zentral)
↓ (Reverse Proxy)
┌──────────────┐ ┌──────────────┐
│ Frontend │←──→│ Backend │
│ Port 3000 │ │ Port 8000 │
└──────────────┘ └──────────────┘
Support
Bei Problemen:
- Logs prüfen:
docker-compose logs - Container Status:
docker-compose ps - Netzwerk prüfen:
docker network ls