Skip to content

v1.1.0

Choose a tag to compare

@ArnaudFeld ArnaudFeld released this 29 Sep 20:16
· 9 commits to main since this release

Backup-Skript für Paperless-ngx, Version 1.1.0. Vollständige Liste aller Änderungen in CHANGELOG.md.

Was sich geändert hat

Backup-Modell. Vorher hat jedes Cloud-Ziel ein eigenes Archiv erzeugt. Borg zählt Archive, nicht Tage, 14 tägliche Archive bedeuteten bei drei Zielen also rund fünf Tage statt zwei Wochen. Jetzt entsteht ein Archiv pro Lauf, das danach in alle Ziele hochgeladen wird.

Upload-Schutz. rclone sync löscht im Ziel alles, was lokal fehlt. Ein nicht eingehängtes Repository hätte so die Cloud leergeräumt. Vor jedem Sync prüft jetzt ein Preflight, ob config, Archive und Datensegmente vorhanden sind, zusätzlich begrenzt RCLONE_MAX_DELETE (Standard 500) die Löschungen.

Konfiguration wird nicht mehr ausgeführt. Die Datei /etc/paperless-backup.conf wurde per source als Shellcode mit root-Rechten geladen. Sie wird jetzt zeilenweise als Text gelesen, jeder Schlüssel muss auf einer Whitelist stehen, jeder Wert wird vor der Zuweisung geprüft.

Prüfungen vor dem Backup. Freier Platz (BACKUP_MIN_FREE_MB, Standard 4096 MB), laufende Container, Passphrase-Datei (kein Symlink, root, Mode 600) und die Borg-Version werden vor dem eigentlichen Backup geprüft.

systemd. Die Units hatten kein TimeoutStartSec, damit galt der Standard von 90 Sekunden und ein laufendes Backup wurde mitten im borg create beendet. Jetzt TimeoutStartSec=infinity, ergänzt um UMask=0077, ProtectSystem=full und PrivateTmp. Locks liegen in /run/pabo (0700) statt im für alle schreibbaren /var/lock.

Restore. Download in ein eigenes Verzeichnis, borg check vor dem Extrahieren, Archivname wird gegen die Liste geprüft, Paperless-Container wird gestoppt, psql läuft mit -v ON_ERROR_STOP=1 – ein teilweise eingespielter Dump wird nicht mehr als Erfolg gemeldet.

Update von 1.0.5

cd /opt/pabo && git pull
sudo bash pabo.sh    # → 1) setup → 2) Scripts und Timer neu generieren
sudo pabo.sh        # → 5) config-check

Zwei neue Konfigurationsschlüssel bekommen automatisch Standardwerte: RCLONE_MAX_DELETE=500 und BACKUP_MIN_FREE_MB=4096.

Zu beachten: Die Konfigurationsprüfung ist strenger als früher. Pfade mit Leerzeichen, .. oder doppelten Schrägstrichen sowie ein Bot-Token ohne <id>:<token>-Form brechen den Lauf ab. Von Hand ergänzte Schlüssel, die nicht auf der Whitelist stehen, müssen entfernt werden – config-check benennt sie.