Files
WrestleDesk/DEPLOYMENT.md
T

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

  1. Öffne deinen Nginx Proxy Manager (normalerweise http://deine-unraid-ip:81)
  2. Proxy HostsAdd 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 TabCustom Locations:
    • Location: /api/v1
    • Forward Hostname: deine-unraid-ip
    • Forward Port: 8000

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

  1. Ändere das Nginx Proxy Manager Passwort nach dem ersten Login
  2. Verwende ein starkes SECRET_KEY in .env (min. 50 Zeichen)
  3. Aktiviere "Block Common Exploits" im Nginx Proxy Manager
  4. Halte Docker Images aktuell: docker-compose pull && docker-compose up -d
  5. Backup regelmäßig durchführen

Architektur

Internet
    ↓
Nginx Proxy Manager (auf Unraid, zentral)
    ↓ (Reverse Proxy)
┌──────────────┐     ┌──────────────┐
│   Frontend   │←──→│    Backend   │
│   Port 3000  │     │   Port 8000  │
└──────────────┘     └──────────────┘

Support

Bei Problemen:

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