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

171 lines
3.4 KiB
Markdown

# 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`