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
This commit is contained in:
+170
@@ -0,0 +1,170 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user