Files

2.5 KiB

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