Paperless-NGX Installationsanleitung in der Container Station

  • 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:

    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.
    2. 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.


    Install_Step1.png

    Schritt 3:

    1. Im Fenster "Anwendung erstellen" im ersten Schritt die geändert docker-compose.yml über die Schaltfläche "Hochladen" (1) auswählen und laden.
    2. Über die Schaltfläche "Validieren" (2) die docker-compose.yml prüfen lassen.
    3. Den "Anwendungsnamen" (2) auf "paperless-ngx" setzen.

    Install_Step2.png

    Schritt 4:

    1. Den Menüpunkt "Erweiterte Einstellung" öffnen.
    2. CPU-Limt (1) auf 1 (oder je nach Hardware auch auf einen anderen Wert) einstellen. In der Regel sollte eine CPU reichen.
    3. Arbeitsspeicherlimit (2) einstellen (je nach Hardware).
    4. Arbeitsspeicherreservierung (3) wird automatisch eingestellt.
    5. Die Installation mit "Erstellen" (4) starten. Der Vorgang dauert jetzt je nach Hardware etwas.

    Install_Step3.png


    Anwendung wird installiert:


    Install_Step4.png


    Unter "Protokolle" kann die Installation verfolgt werden.


    Install_Check.png


    Am Ende müssen alle Container aktiv sein.


    Install_Check1.png

    Schritt 5:

    1. Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
    2. In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
      cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx
    3. Den Container-Namen prüfen (Container ganz oben, sollte "paperless" sein) mit:
      docker psDocker-PS.png
    4. In die Kommandozeile vom Container einloggen (Containernamen korrekt wählen, siehe oben) mit: docker exec -it paperless /bin/bash
    5. Im Container dann einen neuen Superuser anlegen mit: python3 manage.py createsuperuser
    6. username: admin
    7. passwort: beliebig, nach Wunsch. Das Passwort wird mindestens für die erste Anmeldung am Webinterface benötigt (ggf. auch bei jeden Anmeldung).
    8. Mit "exit" den Container wieder verlassen.

    Schritt 6:

    1. Paperless testen, dazu die IP des NAS mit dem Webserverport angeben: http://<IP NAS>:8000
    2. Mit dem gewählten Superuser aus Schritt 5 einloggen.
    3. 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


    1. 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
    2. Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
    3. In den Pfad /etc/config/ wechseln.
    4. Die Datei "crontab" mit VI öffnen: vi crontab (Kurzanleitung zu VI hier: http://org.netbase.org/vi.html)
    5. 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
    6. Die Crontab speichern und VI beenden.
    7. Cron Daemon neu starten mit: crontab /etc/config/crontab && /etc/init.d/crond.sh restart
    8. 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.)


    1. Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
    2. In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
      cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx
    3. Ein Backup starten mit sh export.sh
    4. Die Container stoppen mit docker compose down
    5. Die Container updaten mit docker compose pull
    6. Und alles wieder starten mit docker compose up -d
    7. 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).

    1. Über SSH am NAS einloggen und die Abfrage mit "Q" und die zweite Abfrage mit "Y" beantworten.
    2. In den Container-Pfad von Paperless wechseln mit (bei einer Standardinstallation):
      cd /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx
    3. 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
    4. Der Import wird gestartet und danach sollte es wieder vorhanden sein (Dokumente und Einstellungen).


    Anhang:

    docker-compose.zip


    Mod.: Gewünschte Änderungen eingepflegt und Anhang durch neue Datei ersetzt

    66 Mal editiert, zuletzt von vore76 () aus folgendem Grund: Ein Beitrag von vore76 mit diesem Beitrag zusammengefügt.

  • Eine gute Anleitung zum Anlegen der Klassifikationen gibt es hier: https://paperless.codeberg.pag…s/2022-02/paperless-tags/

    Gute Tips zu Paperless-NGX (allerdings nicht für die QNAP Nas): https://www.schreiners-it.de/p…c-container-installieren/


    Eine sehr gute App für IOS ist Paperparrot. Die App kann sich mit einer bestehenden Paperless-NGX installation verbinden und die Datein anzeigen. Uploads sind damit ebenfalls möglich. https://apps.apple.com/de/app/paperparrot/id1663665267


    Die App "QuickScan" kann Fotos (PDF) direkt in Paperless-NGX übertragen https://apps.apple.com/de/app/…er-quickscan/id1513790291


    Eine gute App für Android scheint diese App zu sein: https://paperless.codeberg.pag…/2023-01/paperlessmobile/



    Hmm.. warum kann ich meinen Beitrag ganz oben jetzt nicht mehr editieren? In Schritt 7 fehlt noch ein Neustart vom Cron Daemon nach dem Editieren der Tabelle.. ist mir gerade aufgefallen und wollte es noch ergänzen.


    crontab /etc/config/crontab && /etc/init.d/crond.sh restart

    Einmal editiert, zuletzt von vore76 ()

  • Vielen Dank für die Mühe und detaillierte Anleitung!


    Leider scheitert die Validierung bei mir direkt an einigen Stellen mit dem angegebenen yml-code aus dem Spoiler, ich schätze hier ist u.U. die korrekte Formatierung im Spoiler verloren gegangen. Kannst du diese u.U. nochmal als .yml bereitstellen?


    Installiert habe ich die aktuelle Version der Container Station 3.0.5.623.


    Danke im Voraus & schöne Feiertage

  • Kannst du diese u.U. nochmal als .yml bereitstellen?


    Installiert habe ich die aktuelle Version der Container Station 3.0.5.623.

    Hallo! Ich habe die Dateien noch mal in einer Zip-Datei an den Beitrag angehängt. Einzeln kann ich die Dateien nicht hochladen, da meckert das Forum. Sollte aber so passen.

    Einmal editiert, zuletzt von vore76 ()

  • Mod: Unnötiges Volltext-/Direktzitat entfernt! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen


    Ich kann es nur empfehlen. Ich bin von EcoDMS umgestiegen und bin sehr zufrieden. Vor allem der Webclient war für mich ein Kriterium umzusteigen. Auch das automatische lernen funktioniert nach 3–4 mal trainieren schon recht gut und wird immer besser, wenn mehr Dokumente eingelesen werden. Das Update über Docker funktioniert sehr einfach. Im Zweifelsfall kann man den Export einfach neu einlesen und hat wieder alles lauffähig (hab ich vor 4 Tagen wegen des Updates auf die neue Postgress Datenbank so gemacht).

    Wichtig ist am Anfang, dass die Korrespondenten, Dokumententypen und Tags sinnvoll vergeben werden. Das ist hier sehr gut erklärt: https://paperless.codeberg.pag…s/2022-02/paperless-tags/


    Grüße

  • Mega gut, vielen lieben Dank!


    Paperless-ngx wollte ich im Januar angehen, habe mich aber schon mal belesen wollen. Beim Stöbern, was hier im Forum zwischen den Tagen so abgeht (oder auch nicht), war Dein Thread auf der Startseite vom Forum :D


    Ab an den Rechner, Host-Pfade geändert, gestartet, läuft. Mega (stellt euch vor wie Dieter Bohlen es sagen würde).

  • Ich muss sagen "Super HowTo". Mein erster Versuch und alles scheint up and running. Da ich mich noch nie mit Docker etc. selbst auseinandergesetzt habe, war deine umfangreiche Anleitung eine tolle Hilfe. Mein Brother MFC-J5740W und das TS-253A funktioniert sehr gut zusammen...

    Eine kleine Ergänzung hätte ich noch.

    Crontab sollte nicht direkt über den Vi aufgerufen werden. Vielmehr sollte man mit "crontab -e" editieren. Mit diesem Aufruf wird zwar auch der standardmäßig hinterlegte Editor (meist Vi) genutzt, jedoch auch die korrekte Syntax der Crontab Datei beim Speichern geprüft. Speichern aus dem Vi kann man übrigens auch mit ":x!" Das spart ASCII-Zeichen ^^


    Nochmals Dank und Grüße!

  • Crontab sollte nicht direkt über den Vi aufgerufen werden. Vielmehr sollte man mit "crontab -e" editieren.

    Hallo!

    Da hast Du recht, auf einem "normalen" Linux würde ich das auch so machen. Aber bei Qnap sind Änderungen mit crontab -e anscheinend nicht persistent (laut mehreren Hinweisen im Netz) und werden bei einem Neustart von QTS wieder überschrieben. Daher scheint es nur diesen Weg zu geben. Synology ist da schon weiter und hat einen App "Scheduled Tasks".. wäre mal nen Vorschlag für QNAP.


    3 Mal editiert, zuletzt von vore76 () aus folgendem Grund: Ein Beitrag von vore76 mit diesem Beitrag zusammengefügt.

  • Super Anleitung Volker, vielen Dank!

    Innerhalb einer Stunde war ich mit allem fertig und läuft!


    Eine Frage: Wo wird die Sicherung abgelegt? Habe ich etwas übersehen? Ist es unter CACHEDEV1_DATA/Paperless-Docs?

    Einmal editiert, zuletzt von Payam ()

  • Habe ich etwas übersehen? Ist es unter CACHEDEV1_DATA/Paperless-Docs?

    Hi!

    Korrekt, unter "CACHEDEV1_DATA/Paperless-Docs/Outbox"

  • Hallo vore76, vielen Dank für die MEGA Anleitung, ich habe es mit dieser tollen Beschreibung auch geschafft Paperless auf meine QNAP TS251-B zu installieren.


    Klasse das du das so ausführlich dokumentiert hast.

    Ich hab nur eine Frage, Paperless spukt immer eine Fehlermeldung aus, wenn es darum geht WindowsOffice Dateien (docx; xlsx; doc, xls etc.) im DMS abzulegen.


    Unter Dateiaufgaben als failed steht z.B.

    Code
    Testdokument.docx: Beim Verarbeiten des Dokuments ist ein Fehler aufgetreten. Testdokument.docx: Fehler beim Konvertieren des Dokuments in PDF: Client-Fehler „404 nicht gefunden“ für die URL „http://gotenberg:3000/forms/libreoffice/convert/forms/libreoffice/convert#“ '
     Weitere Informationen finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404


    Ich habe diverse Änderungen versucht, siehe https://github.com/jonaswinkler/paperless-ng/issues/1594

    Leider bringt es bei mir keinen Erfolge die Gotenberg Versionen in der docker-yml Datei anzupassen.


    Tritt der Fehler bei dir auch auf?


    VG DerGrinch76

  • Tritt der Fehler bei dir auch auf?

    Hallo!

    Leider tritt der Fehler auch bei mir auf. Hatte bisher keine Office-Dokumente für das Archiv, daher ist es mir nicht aufgefallen. Es scheint ein generelles Problem sein, ich konnte mit verschiedenen Einstellungen auch keine Besserung feststellen. Leider kann ich keine Lösung anbieten.

    Es gibt da auch schon ein Ticket bei Gotenberg: https://github.com/gotenberg/gotenberg/issues/763

    Vielleicht kommt da die Tage was.


    Gruß

    Vore

  • Hallo vore76,


    vielen Dank für die Rückmeldung. Ich werde den Issue auch mal im Auge behalten.


    Viele Grüße


    DerGrinch76

  • vielen Dank für die Rückmeldung. Ich werde den Issue auch mal im Auge behalten.

    Hab mich noch mal durch die docker-compose gearbeitet (hatte die ja auch nur übernommen). Da sind zwei Einträge drin, die aus meiner Sicht für Gotenberg nicht korrekt sind. Habe eine Anpassung vorgenommen und jetzt klappt es auch mit Gotenberg und Tika.

    Im Anhang die korrigierte Datei (die Passwörter wieder neu eintragen, dann die alten Datei überschreiben und mit docker compose down und

    docker compose up -d neu "aufsetzen".


    Jetzt müsste ich wirklich den ersten Eintrag ganz oben anpassen.. geht aber nicht mehr :(


    Mod.: 1. Beitrag angepasst

    Einmal editiert, zuletzt von vore76 () aus folgendem Grund: Zip-Datei ergänzt um die Script-Datei für das Backup

  • Hi vore76, suuuuuuuuuuuuuuuuper es geht :D , du bist echt der Hammer, vielen vielen Dank.

    Großes Lob das du da so drangeblieben bist.


    Wünsche dir einen schönen Abend. :thumbup:


    VG DerGrinch76

  • Hallo,

    erstmal vielen Dank für die Anleitung, Zeit und Mühe für die Erstellung.

    Ich wollte das ganze nun mal ausprobieren, aber bekomme die container der Anwendung nicht komplett online.


    Bei der Paperless db kommt in der Konsole folgender Fehler (hat wer einen Tip?):


    Code
    fixing permissions on existing directory /var/lib/postgresql/data ... ok
    creating subdirectories ... ok
    selecting dynamic shared memory implementation ... posix
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting default time zone ... Etc/UTC
    creating configuration files ... ok
    2024-01-07 11:51:08.217 UTC [39] FATAL:  could not write to file "pg_wal/xlogtemp.39": No space left on device
    child process exited with exit code 1

    Einmal editiert, zuletzt von UrsR ()

  • Hab es der Anleitung folgend installiert und außer das ich vi nicht auf Anhieb bedienen konnte war bei mir nur eine kleine Herausforderung das ich 3 x CACHEDEVX_DATA habe und der Ordner "Container" auf der 2 und der Paperless-Docs nun auf der 1 liegt. Aber ich weiß warum und es ist nicht wirklich störend...


    Edit: Wobei ich gerade überlege ob es nicht sinn macht "Container" auch auf 1 zu ziehen da das 2 NVMe SSDs im Raid1 sind... Also mehr Performance für Paperless-NGX / die Container... :/