Paperless-ngx: Der Wechsel (Update 2022-06)
- 4 minutes read - 730 wordsDas Projekt Paperless-ng hatte nur einen einzigen Entwickler. Auch auf das Github Repository hatte nur er Zugriff. Das Projekt wurde von ihm hervorragend gepflegt. Bis zum August 2021. Während es vorher alle paar Wochen eine neue Version mit Bugfixes und neuen Features hab, war auf einmal Schluss. Keine Kommentare mehr in den Github Diskussionen. Keine Merges mehr. Keine neuen Versionen.
Die Community machte sich aktiv Sorgen und versuchte eine Kontaktaufnahme über mehrere Kanäle. Leider ohne Erfolg. Das Projekt lag brach. Zunächst war das kein großes Problem. Paperless-ng funktionierte ja erst mal grundsätzlich. Aber es gab immer mehr Wünsche und offene Pullrequests. Einige Verrückte aus der Community fassten also den Entschluss: Ein Fork muss her. Das Projekt muss als gemeinschaftliches Projekt neu gestartet werden. Und so kam es auch.
Anfang März 2022 sollte es so weit sein. Die erste Version von Paperless-ngx wurde veröffentlicht. Viele neue Features, Bugfixes und Aktualisierungen waren mit an Bord.
Meine Freude war groß, dass es tatsächlich mit der Entwicklung und Pflege weiter geht. Immerhin verwalte ich alle meine Dokumente (ca. 5000 Stück) in Paperless-ng. Trotzdem habe ich mich erst mal dazu entschieden, die Füße stillzuhalten und den Issue-Tracker auf Github zu beobachten. Gibt es gravierende Bugs?
Ende April dann der zweite Release: Version 1.7.0. Nach einer weiteren Woche Issues beobachten, nun die Entscheidung zum Wechsel.
Der Wechsel
Die Entwickler haben den Umstieg einfach gemacht. Eine Beschreibung gibt es in der Dokumentation: https://paperless-ngx.readthedocs.io/en/latest/setup.html#migrating-from-paperless-ng
Es muss nur der Pfad zum Image im docker-compose.yml
File getauscht werden:
Von:
image: jonaswinkler/paperless-ng:latest
zu:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
Anschließend ein docker-compose down
und docker-compose up -d
. Und das war es.
Nach etwas Warten sind die neuen Images gezogen. Alles up to date. Und Paperless ist wieder online. Ohne größere Migrationsschmerzen.
Mit dem nächsten Release soll Paperless-ngx auch auf dem Docker Hub veröffentlicht werden.
Die Neuerungen
Neben sehr viele Bugfixes, gibt es auch einige neue interessante Features.
Papierkorb
Ich hatte in der Vergangenheit immer ein wenig Angst vor dem “Löschen”-Button. Unachtsam durch die Gegend geklickt und schon kann ein Dokument verloren sein. Im schlimmsten Fall, ohne dass man es merkt. Denn dann hilft auch ein Backup nichts mehr.
Bisher habe ich mir hier mit einem Backup und Git beholfen. Ich konnte also sehen, dass nur Dateien hinzugekommen sind, und keine gelöscht wurden. Dies ist vielleicht irgendwann mal einen eigenen Blog-Eintrag wert bzw. wird ein entsprechendes Feature gerade auch auf der Paperless-ngx Github Seite diskutiert. Trotzdem war dies erst mal nur ein Workaround.
Mit dem Parameter “PAPERLESS_TRASH_DIR=” ist in Paperless-ngx ein einfacher Papierkorb implementiert worden. Wird ein Dokument gelöscht, wird es nicht wirklich vollständig gelöscht, sondern das Original-Dokument wird in das definierte Trash Verzeichnis verschoben. Der Papierkorb ist nicht über die Weboberfläche zugreifbar. Zu sehen ist dies auch an Fehlermeldungen im Logfile.
Eine Beschreibung des Parameters und der Funktion ist in der Dokumentation zu finden: Link zur Dokumentation
Wichtig: Nach der Konfiguration sollte das Feature unbedingt einmalig getestet werden. Ist der Pfad falsch konfiguriert, werden die Dokumente weiterhin gelöscht und nicht in den Papierkorb verschoben.
Die Konfiguration erfolgt im docker-compose.env
-File:
PAPERLESS_TRASH_DIR=../media/trash
Das Verzeichnis wird jedoch von Paperless-ngx nicht automatisch angelegt. Hierfür muss man sich in den Docker Container bewegen: docker container exec -it paperlessng_webserver_1 /bin/bash
In das korrekte Verzeichnis wechseln: cd ../media/
Verzeichnis anlegen: mkdir trash
Besitzer des Verzeichnis wechseln: chown paperless trash/
Gruppe des Verzeichnisses anpassen: chgrp paperless trash/
Wird dies angegeben, existiert ab sofort im Docker Volume “media” das Trash Verzeichnis.
Wie greift man jetzt auf den Papierkorb zu? Erst mal muss man herausfinden, wo das Docker Volume auf dem Host liegt: docker volume inspect paperlessng_media
Nun kann man in das Verzeichnis navigieren und auf die Dateien zugreifen. Bei mir ist dies: /var/lib/docker/volumes/paperlessng_media/_data
Beispiel:
$ ls -l /var/lib/docker/volumes/paperlessng_media/_data/trash/
total 44
-rw-r--r-- 1 rs rs 41935 May 6 09:32 example_trash.pdf
Es ist also klar, dass das TRASH_DIR ein erster Ansatz für einen Papierkorb bzw. für das Verhindern des versehentlichen Löschens von Dokumenten ist, aber keine wirklich schöne umfangreiche Lösung.
Drag-and-drop
Neu hinzugekommen ist zudem die Möglichkeit, jetzt PDF-Dokument überall in der Weboberfläche per Drag-and-Drop hochzuladen. Ein Video, in dem das Feature zu sehen ist, kann im zugehörigen Pullrequest angesehen werden: Link zum Pullrequest
Weitere Features und Änderungen
Alle weiteren Features und Änderungen sind im Changelog zu finden. Wie man sieht, waren die Entwickler*innen hier wirklich fleißig.
Dank & Feedback
Titel-Photo by Markus Winkler on Unsplash
Ich freue mich über Feedback. Schreibt mir gerne per Mastodon.