Paperless-NGX: Backup auf ein NAS
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 wg-quick@wg0.service
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 wg-quick@wg0.service
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.