Hallo Zusammen!
Ich habe mir vor ein paar Wochen Paperless-NGX installiert und es war recht aufwendig, alle Informationen hier im Forum und auf externen Webseiten zu finden und anzupassen.
Daher habe ich mit entschlossen meine Infos in ein kleines Tutorial zu verbasteln, damit es anderen Nutzer in Zukunft etwas leichter fällt, Paperless-NGX zu installieren.
Besonderen Dank geht an Azrael783 auf dessen Docker Compose der Installationsprozess basiert. Ich habe die Compose Datei mit aktuelleren Versionen bzw. den latest-Versionen geändert (da wo es in meinen Augen Sinn macht).
WICHTIG:
Ich übernehme keine Verantwortung für eventuellen Datenverlust. Vor der Installation auf jeden Fall noch ein Backup erstellen! Die installation erfoglt auf eigene Verantwortung. Der Installationablauf wurde mehrfach getestet, es kann aber je nach Konfiguration keine Funktionsgarantie gegeben werden.
Ich werde hier nur freiwilligen Support leisten, wenn Paperless-NGX mit dieser Anleitung installiert wurde, dies sorgt dafür, dass einige Fehler gar nicht erst entstehen.
Zudem erleichtert es enorm die Arbeit, da keine falschen oder mangelhaften Installationen korrigiert werden müssen.
Diese Anleitung installiert den Datenordner für Paperless unter /share/CACHEDEV1_DATA. Soll die Installation in einem anderen /share/CACHEDEVx_DATA erfolgen, muss in der docker-compose.yml der Speicherpfad entsprechend angepasst werden. In diesem Fall kann ich aber keinen Support geben.
Los gehts..
Voraussetzung zur Installation
- Für diese Anleitung muss mindestens Container Station 3.0.5.623 oder höher installiert sein
- SSH-Logion Zugang auf der QNAP eingeschaltet -> https://docs.qnap.com/operatin…nfigurieren-928DF42B.html
- Erfahrung im Umgang mit SSH und vi
- Grundkenntnisse zur Ordnerstruktur unter /share/CACHEDEVx_DATA
Schritt 1:
- Die Zip-Datei docker-compose.zip runterladen und an einer Stelle auf PC/Laptop speichern. Die "docker-compose.yml" in einem Texteditor (kein Word oder ähnliches) öffnen und bearbeiten.
- An den Stellen "HIER EIN PASSWORT EINTRAGEN" ein beliebiges Passwort eintragen (ich habe überall das gleiche PW genutzt, da nur im privaten Umfeld genutzt). Danach die Datei speichern und schließen.
Schritt 2:
Die Container Station öffnen und den Menüpunkt "Anwendungen" (1) öffnen. Auf die Schaltfäche "Erstellen" (2) klicken.
Schritt 3:
- Im Fenster "Anwendung erstellen" im ersten Schritt die geändert docker-compose.yml über die Schaltfläche "Hochladen" (1) auswählen und laden.
- Über die Schaltfläche "Validieren" (2) die docker-compose.yml prüfen lassen.
- Den "Anwendungsnamen" (2) auf "paperless-ngx" setzen.
Schritt 4:
- Den Menüpunkt "Erweiterte Einstellung" öffnen.
- CPU-Limt (1) auf 1 (oder je nach Hardware auch auf einen anderen Wert) einstellen. In der Regel sollte eine CPU reichen.
- Arbeitsspeicherlimit (2) einstellen (je nach Hardware).
- Arbeitsspeicherreservierung (3) wird automatisch eingestellt.
- Die Installation mit "Erstellen" (4) starten. Der Vorgang dauert jetzt je nach Hardware etwas.
Anwendung wird installiert:
Unter "Protokolle" kann die Installation verfolgt werden.
Am Ende müssen alle Container aktiv sein.
Schritt 5:
- Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
- In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx - Den Container-Namen prüfen (Container ganz oben, sollte "paperless" sein) mit:
docker psDocker-PS.png - In die Kommandozeile vom Container einloggen (Containernamen korrekt wählen, siehe oben) mit: docker exec -it paperless /bin/bash
- Im Container dann einen neuen Superuser anlegen mit: python3 manage.py createsuperuser
- username: admin
- passwort: beliebig, nach Wunsch. Das Passwort wird mindestens für die erste Anmeldung am Webinterface benötigt (ggf. auch bei jeden Anmeldung).
- Mit "exit" den Container wieder verlassen.
Schritt 6:
- Paperless testen, dazu die IP des NAS mit dem Webserverport angeben: http://<IP NAS>:8000
- Mit dem gewählten Superuser aus Schritt 5 einloggen.
- Die Grundinstallation ist angeschlossen.
Schritt 7:
Dieser Schritt ist optional, aber empfohlen.
In diesem Schritt wird ein regelmäßiger Export aller Dokumente sowie aller Einstellungen erstellt.
Der Export wird am Ende gezippt und kann regelmäßig z.B. über HBS 3 (Hybrid Backup Sync) gesichert werden.
Der Export selbst wird vom "document_exporter" (Bestandteil von Paperless) ausgeführt, der über einen Shell-Befehl regelmäßig von Cron ausgeführt wird.
Über den "document_importer" kann ein Backup wieder in Paperless importiert werden.
Der Export erfolgt in den Ordner /share/CACHEDEV1_DATA/Paperless-Docs/Outbox . Der Import erfolgt ebenfalls über /share/CACHEDEV1_DATA/Paperless-Docs/Outbox
- Die Datei "export.sh" aus der Zip-Datei (Anhang zu diesem Post) in den Container-Ordner kopieren (am einfachsten via Drag&Drop in der FileStation) in den Pfad:
/share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx
Copy_Export.png - Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
- In den Pfad /etc/config/ wechseln.
- Die Datei "crontab" mit VI öffnen: vi crontab (Kurzanleitung zu VI hier: http://org.netbase.org/vi.html)
- Zum Ende der Datei springen und einen Eintrag ergänzen (mit i) und am Ende mit :wq speichern und wieder verlassen.
30 1 * * 1,3,6 sh /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx/export.sh > /dev/null 2>&1
Der Befehl triggert das Script für den Export jeweils Montags, Mittwochs und Samstags um 01:30
Andere Zeiten können mit diesem Tool erzeugt werden: https://crontab.guru/ Dazu die Zeit-Einträge vor dem "sh" anpassen Erklärung zur Crontab (die Befehle (crontab -u -e usw.) am Ende des Artikels können in QTS nicht genutzt werden!): https://www.guru99.com/de/cron…-linux-with-examples.html - Die Crontab speichern und VI beenden.
- Cron Daemon neu starten mit: crontab /etc/config/crontab && /etc/init.d/crond.sh restart
- SSH ausloggen, der Export sollte jetzt aktiv sein. Ggf. muss QTS einmal neu gestartet werden, damit der Eintrag in der Crontab aktiv wird.
Updates
Paperless meldet sich irgendwann unten links mit Infos zu neuen Funktionen. Dann kann die Installation geupdatet werden.
Wichtig: vor dem Update immer noch mal ein aktuelles Backup durchführen! Dazu kann das Script "export.sh" von "Hand" getriggert werden (Punkt 3.)
- Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
- In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx - Ein Backup starten mit sh export.sh
- Die Container stoppen mit docker compose down
- Die Container updaten mit docker compose pull
- Und alles wieder starten mit docker compose up -d
- Das Udpate ist abgeschlossen und alles sollte wieder hochfahren.
Daten aus Backup wiederherstellen
Wenn doch einmal etwas schief gelaufen ist, können alle Einstellungen und auch Dokumente recht einfach wieder hergestellt werden. Dazu wird der "document_importer" vom Paperless genutzt. Wichtig ist, hier dass genauso wie bei dem Backup, der zu importierende Datensatz im Ordner "Export" liegt und NICHT ge-zippt ist (sonst vorher ent-zippen).
- Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
- In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx - Den Import starten mit docker compose -f /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx/docker-compose.yml exec -T webserver document_importer ../export
- Der Import wird gestartet und danach sollte es wieder vorhanden sein (Dokumente und Einstellungen).
Anhang:
Mod.: Gewünschte Änderungen eingepflegt und Anhang durch neue Datei ersetzt