Files
WrestleDesk/DEPLOYMENT.md
T
Andrej Spielmann 28222d634d feat: implement user management system
- 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
2026-03-26 16:42:08 +01:00

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

  1. Öffne http://deine-unraid-ip:81
  2. Login: admin@example.com / changeme (ändern!)
  3. Proxy HostsAdd 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

  1. Ändere das Nginx Proxy Manager Passwort nach dem ersten Login
  2. Verwende ein starkes SECRET_KEY in .env
  3. Aktiviere "Block Common Exploits" in Nginx Proxy Manager
  4. Halte Docker Images aktuell: docker-compose pull && docker-compose up -d

Support

Bei Problemen:

  1. Logs prüfen: docker-compose logs
  2. Container Status: docker-compose ps
  3. Netzwerk prüfen: docker network ls