73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
# Paperless Restore Test Plan
|
|
|
|
## Ziel
|
|
|
|
Nachweisen, dass ein Paperless-Backup in einer isolierten Testumgebung wieder startbar ist und sowohl Dokumentenpfade als auch PostgreSQL-Dump sauber zusammenlaufen.
|
|
|
|
## Quelle
|
|
|
|
- Backup-Quelle: Borg / Share-Backup
|
|
- fachlich relevante Dateipfade:
|
|
- `/mnt/user/appdata/paperless-ngx/data`
|
|
- `/mnt/user/documents/paperless`
|
|
- `/mnt/user/documents/paperless/export`
|
|
- `/mnt/user/documents/scans_inbox`
|
|
- fachlich relevanter Dump:
|
|
- `/mnt/user/backups/borg/dumps/latest/postgresql17-paperless.dump`
|
|
|
|
## Test-Ziel
|
|
|
|
- Restore-Lab: `/mnt/user/backups/restore-lab/paperless`
|
|
- Testdatenpfade:
|
|
- `/mnt/user/backups/restore-lab/paperless/data`
|
|
- `/mnt/user/backups/restore-lab/paperless/media`
|
|
- `/mnt/user/backups/restore-lab/paperless/export`
|
|
- `/mnt/user/backups/restore-lab/paperless/consume`
|
|
- `/mnt/user/backups/restore-lab/paperless/postgres`
|
|
- Testcontainer:
|
|
- `restoretest-paperless`
|
|
- `restoretest-paperless-postgres`
|
|
- `restoretest-paperless-redis`
|
|
- Testport Web: `127.0.0.1:18120:8000`
|
|
- Report-Ziel: `/mnt/user/backups/restore-reports/paperless-YYYY-MM-DD.md`
|
|
|
|
## Schutzregeln
|
|
|
|
- produktive Pfade nie beschreiben
|
|
- produktive Domain `paperless.kaleschke.info` nicht fuer die Testinstanz uebernehmen
|
|
- keine Traefik-Labels fuer die Testinstanz
|
|
- keine produktive PostgreSQL- oder Redis-Instanz fuer den Test verwenden
|
|
- Testcontainer nur gegen Restore-Lab-Daten und isolierte Test-Backends starten
|
|
|
|
## Geplanter Ablauf
|
|
|
|
1. Restore-Ziel unter `/mnt/user/backups/restore-lab/paperless` vorbereiten
|
|
2. Paperless-Dateipfade aus Borg in das Restore-Lab wiederherstellen
|
|
3. Test-Postgres und Test-Redis mit `ops/restore-tests/paperless-compose.test.yml` starten
|
|
4. `postgresql17-paperless.dump` in Test-Postgres importieren
|
|
5. Testinstanz `restoretest-paperless` starten
|
|
6. lokalen Smoke-Test gegen `http://127.0.0.1:18120` ausfuehren
|
|
7. Report unter `/mnt/user/backups/restore-reports/` schreiben
|
|
8. Testcontainer stoppen und Testumgebung bereinigen
|
|
|
|
## Smoke-Test
|
|
|
|
Minimal erfolgreich:
|
|
|
|
- Test-Postgres startet
|
|
- Dump-Import gelingt
|
|
- Paperless-Web-UI antwortet
|
|
- mindestens ein Dokument liegt im Restore-Lab-Medienpfad
|
|
|
|
Optional spaeter:
|
|
|
|
- Login-Seite gezielt pruefen
|
|
- Dokumentanzahl aus UI oder DB querpruefen
|
|
- OCR-/Task-Worker-Status verifizieren
|
|
|
|
## Noch offen vor dem ersten echten Lauf
|
|
|
|
- exakter Borg-Restore-Befehl fuer alle vier Dateipfade
|
|
- exakter `pg_restore`-Befehl im Test-Postgres
|
|
- wie stark wir `consume` im ersten Lauf ueberhaupt brauchen
|