# 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 ```bash 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 ```bash cp .env.example .env nano .env # Oder dein bevorzugter Editor ``` **Wichtige Werte in .env ändern:** ```env # Backend SECRET_KEY=dein-sehr-langer-zufälliger-schlüssel-mindestens-50-zeichen DATABASE_URL=sqlite:///db.sqlite3 ``` **Tipp für SECRET_KEY:** ```bash openssl rand -base64 50 ``` ### 3. Docker Container starten ```bash 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 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` **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: - **https://rce.playman.top** ## Wartung ### Updates durchführen ```bash cd /mnt/user/appdata/wrestledesk git pull origin feature/pwa # Oder main docker-compose down docker-compose up -d --build ``` ### Logs ansehen ```bash # Alle Services docker-compose logs -f # Nur Frontend docker-compose logs -f frontend # Nur Backend docker-compose logs -f backend ``` ### Backup ```bash # 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 ```bash 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: ```bash 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: ```bash docker-compose exec backend env | grep CORS # Sollte zeigen: CORS_ALLOWED_ORIGINS=https://rce.playman.top ``` ### Container starten nicht ```bash # 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`