From 7c374f2bc2eee964aaa41a95261f09dbff50809e Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 7 Sep 2026 12:18:57 +0200 Subject: [PATCH] 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 --- docs/MIGRATION.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/MIGRATION.md diff --git a/docs/MIGRATION.md b/docs/MIGRATION.md new file mode 100644 index 0000000..4c2ac9a --- /dev/null +++ b/docs/MIGRATION.md @@ -0,0 +1,54 @@ +# 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_.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://: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_.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://:8080` aufrufen.