Paperless-NGX & QNAP: Datensicherung

Erfahre, wie du Paperless-NGX auf einem QNAP NAS sicherst und deine Dokumente effizient schützt. Schritt-für-Schritt-Anleitung für einfache Datensicherung!
   

Wie ihr wisst, nutze ich für meine Dokumentenverwaltung Paperless-NGX auf meinem QNAP NAS.

Ich habe mich leider bis heute nicht aufraffen können, eine saubere Backup-Strategie für meine im Paperless-NGX gesicherten Dokumente zu basteln - an diesem regnerischen August-Sonntag habe ich endlich meinen inneren Schweinehund überwunden und möchte euch das Ergebnis präsentieren.

Natürlich müsst ihr eine lauffähige Paperless-NGX-Instanz auf eurem QNAP haben - wie das geht, habe ich euch schon gezeigt. Die dort gezeigte docker-compose-Datei passen wir ein wenig an und fügen den folgenden Block am Ende ein:

scheduler:
  container_name: paperless-backup
  image: mcuadros/ofelia:latest
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /share/CACHEDEV1_DATA/Container/ofelia/ofelia.ini:/etc/ofelia/config.ini
  depends_on:
    - webserver
  restart: unless-stopped

Die komplette docker-compose-Datei findet ihr auf Github.

Als Ersatz des klassischen Cron-Daemons nutzen wir in diesem Fall den Scheduler Ofelia, der perfekt für Container-Umgebungen geeignet ist.

Natürlich müsst ihr wie immer den hervorgehobenen Pfad anpassen (nur den vorderen Teil). Der Pfad zum Docker-Socket sollte stimmen.

Wir legen die Datei /share/CACHEDEV1_DATA/Container/ofelia/ofelia.ini mit folgendem Inhalt an:

[job-exec "Paperless Backup"]
schedule = 0 0 22 * * *
container = paperless
command = document_exporter ../export -zf --no-progress-bar

[job-exec "Clean up"]
schedule = 0 45 22 * * *
container = paperless
command = find /usr/src/paperless/export -mtime +30 -delete

Die Syntax ist größtenteils selbsterklärend, dennoch möchte ich kurz darauf eingehen.

Parameter Bedeutung
job-exec legt fest, dass der Befehl in einem laufenden Docker-Container ausgeführt werden soll
schedule legt fest, wann der Befehl ausgeführt wird (Go Cron Syntax)
container legt fest, in welchem Container der Befehl ausgeführt wird
command der auszuführende Befehl

In diesem Beispiel wird der Job Paperless-Backup also einmal täglich um 22 Uhr ausgeführt, der Job Clean Up täglich um 22:45 Uhr. Letzterer sucht und entfernt im Export-Ordner alle Dateien, die älter als 30 Tage sind.

Ihr solltet natürlich auch hier euren Verstand einschalten und nicht einfach abtippen, was ich euch hier zeige. Es ist immer wichtig, dass ihr wisst, was hier genau passiert und alles an eure Bedürfnisse anpasst.

Das täglich erstellte Archiv kann dann ganz einfach mit den üblichen Sicherungsfunktionen eures QNAP verarbeitet werden.