# 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 ```bash cd /mnt/user/appdata/ mkdir wrestledesk && cd wrestledesk git clone http://192.168.101.42:3023/PlayMan/WrestleDesk.git . ``` ### 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 # Optional: PostgreSQL für bessere Performance # DATABASE_URL=postgresql://wrestledesk:dein-passwort@db:5432/wrestledesk ``` ### 3. Docker Container starten ```bash 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 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: - **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/ ``` ### Container stoppen ```bash docker-compose down ``` ## Fehlerbehebung ### Port 80 oder 443 ist belegt Wenn nginx nicht startet: ```bash # 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" ```bash # 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`