Files
DungeonsDragons/docs/MIGRATION.md
T
Thorsten 7c374f2bc2 Add server migration guide
Documents the backup/restore-based steps for moving the app to a new
machine with Docker already installed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 12:18:57 +02:00

55 lines
1.8 KiB
Markdown

# Umzug auf einen anderen Rechner
Anleitung, um den aktuellen Stand (inkl. Datenbank) auf einem anderen Rechner mit bereits laufendem Docker neu aufzusetzen.
## Auf diesem Rechner (Vorbereitung)
Ein aktuelles Backup erstellen:
```bash
bash scripts/backup-db.sh
```
Zwei Dateien musst du selbst rüberkopieren (USB-Stick, Netzwerkfreigabe, scp — was im LAN am einfachsten ist):
- `.env` (Projekt-Root)
- die soeben erstellte `backups/dnd_backup_<timestamp>.dump`
## Auf dem neuen Rechner
```bash
git clone http://172.17.2.68:3001/nova/DungeonsDragons.git
cd DungeonsDragons
```
Dann `.env` in den Repo-Root legen, und die `.dump`-Datei z. B. in einen `backups/`-Unterordner.
### Wichtig — einen Wert in der übertragenen `.env` anpassen
```
FRONTEND_ORIGIN=http://localhost:5173
```
Das ist der Dev-Wert vom ursprünglichen Rechner. Auf dem neuen sollte es die tatsächliche Adresse sein, unter der das Frontend dort erreichbar ist (z. B. `http://<neue-IP>:8080`) — wird für CORS und Passwort-Reset-Links gebraucht.
Alles andere (DB-Zugangsdaten, x.ai-Key, JWT-Secrets) kann unverändert bleiben — gleiche Secrets heißt bestehende Logins bleiben gültig.
### Datenbank zuerst separat hochziehen und befüllen, bevor der Rest startet
```bash
docker compose up -d postgres
# kurz warten, bis er "healthy" ist (docker compose ps)
bash scripts/restore-db.sh backups/dnd_backup_<timestamp>.dump -y
docker compose up -d --build
```
Der Restore bringt Schema und Daten in einem Rutsch mit (kein separates `alembic upgrade` nötig — der Dump enthält den kompletten aktuellen Migrationsstand). Die drei Regelwerk-Textdateien (`backend/rulebooks/`) sind bereits im Git-Repo enthalten, brauchen also keinen Extra-Transfer.
### Check danach
```bash
curl http://localhost:8000/health
```
und Frontend im Browser unter `http://<neuer-Rechner>:8080` aufrufen.