28222d634d
- Add role field to UserProfile (superadmin/admin/trainer) - Add role-based permission classes - Create UserManagementViewSet with CRUD and password change - Add API types and components for user management - Create users management page in settings - Only superadmins can manage users
3.4 KiB
3.4 KiB
Docker Deployment Guide
Diese Anleitung beschreibt die Deployment von WrestleDesk auf einem Unraid-Server mit Docker Compose und Nginx Proxy Manager.
Voraussetzungen
- Unraid Server mit Docker Compose Plugin
- Domain (z.B. rce.playman.top) mit DNS A-Record auf Unraid-IP
- Ports 80, 443 und 81 freigegeben
Schnellstart
1. Repository klonen
cd /mnt/user/appdata/
mkdir wrestledesk && cd wrestledesk
git clone http://192.168.101.42:3023/PlayMan/WrestleDesk.git .
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
# Optional: PostgreSQL für bessere Performance
# DATABASE_URL=postgresql://wrestledesk:dein-passwort@db:5432/wrestledesk
3. Docker Container starten
docker-compose up -d --build
Das erste Bauen kann 5-10 Minuten dauern.
4. Nginx Proxy Manager konfigurieren
- Öffne
http://deine-unraid-ip:81 - Login:
admin@example.com/changeme(ändern!) - Proxy Hosts → Add Proxy Host
Einstellungen:
- Domain Names:
rce.playman.top - Scheme:
http - Forward Hostname / IP:
frontend - Forward Port:
3000 - Block Common Exploits: ✅ Aktivieren
SSL Tab:
- SSL Certificate:
Request a new SSL Certificate - Force SSL: ✅ Aktivieren
- Agree to Terms: ✅ 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/
Container stoppen
docker-compose down
Fehlerbehebung
Port 80 oder 443 ist belegt
Wenn nginx nicht startet:
# Prüfen was den Port blockiert
netstat -tlnp | grep :80
# Oder: Anderen Container stoppen
docker stop name-des-blockierenden-containers
Let's Encrypt fehlschlägt
- Prüfe ob Port 80 von außen erreichbar ist
- Prüfe DNS A-Record
- Warte 24h nach DNS-Änderungen
Frontend zeigt "Connection refused"
# Prüfen ob Backend läuft
docker-compose ps
# Backend neu starten
docker-compose restart backend
Architektur
Internet
↓
Nginx Proxy Manager (Port 443)
↓
Frontend (Next.js) ←→ Backend (Django)
↓ ↓
Port 3000 Port 8000
Sicherheitshinweise
- Ändere das Nginx Proxy Manager Passwort nach dem ersten Login
- Verwende ein starkes SECRET_KEY in .env
- Aktiviere "Block Common Exploits" in Nginx Proxy Manager
- Halte Docker Images aktuell:
docker-compose pull && docker-compose up -d
Support
Bei Problemen:
- Logs prüfen:
docker-compose logs - Container Status:
docker-compose ps - Netzwerk prüfen:
docker network ls