Paperless-NGX: Backup auf ein NAS

Tutorials

Seit längerem organisiere ich meine Dokumente mit Hilfe von Paperless-NGX – natürlich ist neben der Organisation die Sicherung der organisierten Dateien fast noch viel wichtiger…

Neben einer Sicherung durch Borgmatic auf mehrere Remote-Ziele, habe ich mich dazu entschlossen, auch eine Sicherung auf das NAS im Homeoffice zu konfigurieren.

Voraussetzungen

Die Voraussetzungen für das kleine Backupprojekt sind recht einfach:

  • installierte und konfigurierte Paperless-NGX-Instanz
  • bestehende Wireguard-Verbindung zum Heimnetzwerk (hier: wg0)
  • bestehende SMB-Freigabe auf dem NAS

automatischer Mount der SMB-Freigabe

Zuerst legen wir einen Ordner für die SMB-Freigabe auf unserem Server an: mkdir /mnt/backup.

Nun können wir ein neues Service-File anlegen, das unbedingt den Namen der Freigabe haben muss – in unserem Fall ist das /etc/systemd/system/mnt-backup.mount:

[Unit]
Description=mount backup share
After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.device

[Mount]
What=//IP-ADRESSE/backup/Paperless-NGX
Where=/mnt/backup
Options=username=USERNAME,password=PASSWORD,uid=1000,gid=1000,rw
Type=cifs

[Install]
WantedBy=multi-user.target

Wichtig sind hier die Zeilen After=network.target [email protected] und Requires=sys-devices-virtual-net-wg0.device, denn diese sorgen dafür, dass der Mount erst nach Aufbau der Wireguard-Verbindung verbunden wird – vorher ist unser NAS natürlich nicht erreichbar und das Einbinden würde fehlschlagen.

Anzupassen ist die IP-Adresse, der Benutzername und das Passwort der SMB-Freigabe. uid und gid muss ebenfalls eventuell angepasst werden.

Backup-Skript

Zur Sicherung der Inhalte unserer Paperless-NGX-Instanz nutze ich folgendes, sehr einfaches, Skript – abgelegt unter /usr/local/bin/backup-paperless.sh.

#!/bin/bash

TODAY=$(date '+%Y-%m-%d')

cd /home/paperless/paperless-ngx
/usr/bin/docker compose exec -T webserver document_exporter ../export -c -nt -na -z --delete --no-progress-bar

if [[ -f /home/paperless/paperless-ngx/export/export-$TODAY.zip ]]
then
  cp -ar /home/paperless/paperless-ngx/export/export-$TODAY.zip /mnt/backup/
  # rm /home/paperless/paperless-ngx/export/export-$TODAY.zip
  # find /mnt/backup -type f -mtime +31 -delete
else
  mail -s "!!! Backup of DMS failed !!!" MEINE-MAILADRESSE <<< "I am sorry to inform you that the backup of the DMS did not work."
fi

Hier müssen natürlich die Pfade eventuell angepasst werden… die markierten Zeilen sind auskommentiert, da sie Dateien löschen – diese sind mit Vorsicht zu genießen und man sollte wissen, was man tut.

Die Zeile beginnend mit rm löscht die gerade kopierte Sicherungsdatei, die Zeile beginnend mit find löscht alle Dateien, die älter als 31 Tage sind, vom NAS.

Fazit

Durch diese kleine Bastelei habe ich noch eine zusätzliche, rudimentäre Sicherung meiner Dokumente im Homeoffice auf dem NAS, die 31 Tage in die Vergangenheit reicht.

Das hier sollte auf keinen Fall die einzige Sicherung eurer Paperless-NGX-Instanz sein, sie ist aber ein einfacher Anfang.

Schreibe einen Kommentar