Upgrades & Backups
Kurz gesagt: So sicherst du deine Postgres-Datenbank vor Upgrades und spielst neue Eigen-Mesh-Releases sicher auf einem selbst gehosteten Deployment ein.
Für wen das relevant ist
- Operatoren, die Self-hosted-Docker-Deployments in Produktion betreiben
- Contributor, die Wartungsfenster für Key-Rotationen planen
Backups
Eigen Mesh speichert allen dauerhaften Zustand in PostgreSQL (relationale Daten, pgvector-Embeddings, Apache-AGE-Graph). Sichere das Datenbank-Volume, bevor du Upgrades oder Key-Rotationen durchführst.
Docker Compose
# Schreibzugriffe stoppen (optional, für einen konsistenten Snapshot)
docker compose stop app
# Dump aus dem laufenden db-Container
docker compose exec db pg_dump -U eigen -Fc eigen > eigen-backup-$(date +%Y%m%d).dump
docker compose start app
Wiederherstellen:
docker compose exec -T db pg_restore -U eigen -d eigen --clean --if-exists < eigen-backup-YYYYMMDD.dump
Was gesichert werden sollte
| Asset | Ort |
|---|---|
| Datenbank | Postgres-Volume (pgdata in Compose) |
| Secrets | .env oder Hosting-Dashboard (sicher offline aufbewahren) |
| Eigene Compose-Overrides | Dein Fork oder deine Deployment-Notizen |
Upgraden
- Sichere die Datenbank (siehe oben).
- Ziehe das neueste Release oder den neuesten Commit aus dem eigen-Repository.
- Prüfe die Release Notes auf breaking Änderungen bei Env-Variablen oder Migrationen.
- Neu bauen und starten:
docker compose up -d --build - Schema anwenden, falls das Release Migrationen enthält:
docker compose exec app npx drizzle-kit push --force docker compose exec app node scripts/apply-rls.mjs - Prüfe
/api/healthund führe einen Test-Capture durch.
Änderungen an Umgebungsvariablen
| Änderung | Risiko | Vorgehen |
|---|---|---|
Domain-Änderung bei ORIGIN |
OAuth-Callbacks brechen | Callback-URLs der OAuth-App aktualisieren; neu deployen |
Rotation von TENANT_MASTER_KEY |
Entschlüsselungsfehler | Re-Encryption-Migration — Tenant-Envelope-Verschlüsselung |
| Wechsel des LLM-Gateways | Capture/Search schlagen fehl, bis Keys gültig sind | Variablen aktualisieren; vor der Ankündigung einen Test-Capture durchführen |
Änderung von POSTGRES_PASSWORD |
App kann sich nicht verbinden | DATABASE_URL, DATABASE_ADMIN_URL und die Postgres-Rollenpasswörter gemeinsam aktualisieren |
Konsolidierungs-Cron
Prüfe nach Upgrades, ob der pg_cron-Zeitplan weiterhin auf CONSOLIDATION_INTERNAL_URL zeigt. Wenn sich Containername oder Netzwerk der App geändert haben, aktualisiere die Env-Variablen und führe das Cron-Bootstrap aus dem eigen-Repository erneut aus.