# 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