Paperless-NGX Installationsanleitung in der Container Station

  • Hallo,

    wie im Beitrag beschrieben, habe ich in der crontab den Eintrag zum automatischen Export hinzugefügt.

    Der Export als .zip funktioniert auch - entsprechende Dateien werden in der Outbox abgelegt.

    Allerdings werden alle bereits abgelegten Dateien behalten und keine automatisch gelöscht.


    Manuell löschen kann ich die "alten" Dateien problemlos...

    Wo könnte der Fehler liegen?

    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
  • Naja, der export.sh macht ja nichts anderes als eine ZIP Datei in einen Ordner zu werfen.
    Ich selber behalte nur immer eine Datei, da diese später mit rclone in die Cloud gesendet wird.
    Ohne Garantie, dass dies auch auf einem NAS geht (Bei mir läufts auf Debian 13).
    Pfade müssen angepasst werden.... Export_DIR, APP_DIR, document exporter

    Noch etwas schöner, dass 7 Versionen behalten werden, mehr oder weniger bei Bedarf.

  • Hallo zusammen,

    Ich habe eine Frage in die Runde. Hat jemand eine zweite Paperless-ngx Instanz auf dem gleichen NAS angelegt?

    Ich würde mir gerne eine Test-Instanz anlegen, aber natürlich vermeiden, dass ich Probleme mit meiner Hauptinstanz bekomme.

    Auf YouTube bin ich auf dieses Video gestoßen (Link). Hier wird erklärt was zu beachten ist, wenn man eine zweite Instanz anlegen möchte. Ich bin mir aber nicht sicher, ob das so auch auf die Konfiguration bei QNAP zutrifft.

    Ich gehe davon aus, dass ich einen neuen Port in der .yml festlegen muss. Aktuell verwende ich den Port 8000, dann könnte ich ja jetzt den 8100 nehmen.

    Dann muss ich vermutlich auch ein neues Verzeichnis in der File Station anlegen, also z.B. „Paperless-ngx-Test“. In diesem muss ich dann die Ordner wieder anlegen und das alles natürlich in der .yml anpassen.

    Ist das alles was ich machen muss? In dem Video wird noch etwas anderes beschrieben mit .env Dateien. Allerdings handelt es sich bei ihm auch um ein Synology NAS.

    Hat das schon mal jemand gemacht und kann mir weiterhelfen?

    Danke schon mal.

  • Noch etwas schöner, dass 7 Versionen behalten werden, mehr oder weniger bei Bedarf.

    Hallo NightStalk3r
    das mit den 7 Versionen klapp so wunderbar...
    hier der für QNAP angepasst Code:

    Danke nochmal!

  • Hi!

    Welche Berechtigungen braucht denn das DB-Verzeichnis?

    Das Problem ist das: ich habe heute in QNAP auf die neuen ACL umgestellt. Seitdem geht der Containerdienst nicht mehr richtig.

    Wenn ich Paperless starte, steht in den Datenbanklogs das:

    Code
    PostgreSQL Database directory appears to contain a database; Skipping initialization
    2026-03-26 16:02:32.796 UTC [1] FATAL:  could not open lock file "postmaster.pid": Permission denied

    Ich habe dann mal die Fileberechtigungen angeschaut. Die stehen nach jedem Start auf einem nicht existenten Account:


    pasted-from-clipboard.png

    Auch wenn ich den ändere, steht er nach dem nächsten Containerstart wieder so.

    Hat jemand eine Idee, was das Problem sein könnte?


    EDIT: nur die Datenbank startet nicht, alles andere geht.

    2 Mal editiert, zuletzt von SHtN ()

  • Ein Hinweis an alle, die das Update auf Paperless NGX 3.0 gefahren haben und nun feststellen, dass der Webserver nicht mehr startet: Es gab Breaking Changes.

    Ich erlaube mir hier mal den Migrationsguide zu verlinken: https://docs.paperless-ngx.com/migration-v3/

    Insbesondere wird die Environment-Variable "PAPERLESS_SECRET_KEY" ab Version 3.0 zwingend benötigt, sonst startet der Server nicht.

    Außerdem sollen wohl noch Umstellungen wegen der Datenbank notwendig sein (lustigerweise ist es bei mir auch ohne gestartet:

    Code
    # v2 (PostgreSQL inferred from PAPERLESS_DBHOST)
    PAPERLESS_DBHOST: postgres
    
    # v3 (engine must be explicit)
    PAPERLESS_DBENGINE: postgresql
    PAPERLESS_DBHOST: postgres
  • Wie man den PAPERLESS_SECRET_KEY aus der alten Version übernimmt wird aber nirgendwo erwähnt.
    Das Ganze ist wohl alles nicht so einfach. Ich bleib erst mal bei der 2er Version. Ich brauche keine KI.


  • Zumindest ich hatte in der Vorversion überhaupt keinen Secret Key. Ich habe einfach die Environment Variable in meinem Compose hinzugefügt und über einen Online Generator einen neuen Key erzeugt.

  • Code
    # v3 (engine must be explicit)
    PAPERLESS_DBENGINE: postgresql
    PAPERLESS_DBHOST: postgres

    In der .yml aus #317 verweist im Service "Webserver" die env "paperless dbhost: db" auf den Service "db:"

    Muss da noch etwas, die Sektion db in Services umbenannt werden?

    ----

    Wo wird der Befehl zur Erzeugung des Secret-Key eingegeben?


    gruß, zero K


    Bei mir muss PAPERLESS_DBHOST: db lauten bzw auf den Service weisen.

    Wenn ich PAPERLESSS_DBHOST: postgres eintrage startet die Datenbank nicht.


    Der in der Paperless-Doku genannte Befehl zur Erzeugung des Secret-Key funktioniert bei mir ssh admin@nasip.port nicht.

    An einer separaten Workstation, mit einer neueren, der neueren Python-Version 3.13.14 habe ich die Zeichenkette erhalten.

    Diese habe ich dann im yaml eingetragen.

    Einmal editiert, zuletzt von zero K () aus folgendem Grund: eine neue Erkenntnis

  • Ist vielleicht einfacher, wenn ich mein aktuelles auf V3 angepasstes Compose einstelle und die ergänzten Stellen befinden sich in Zeile 57 und 81:

    Gegebenenfalls müssen noch bestimmte OCR Variablen raus, die habe ich aber nie gesetzt.

    Die Variable PAPERLESS_DBHOST bleibt unverändert (bei uns beiden auf "db"). Auf der Dokumentationsseite für die V3 Migration lautet der Wert für den DBHost wahrscheinlich nur deswegen "postgres", weil der Datenbankcontainer in deren Mustercompose wahrscheinlich nicht "db" sondern "postgres" heißt. Entsprechend musst du an der Stelle nichts ändern.

    Es kommt nur noch eine weitere Variable PAPERLESS_DBENGINE mit dem Wert "postgresql" hinzu.

    Einen Befehl zur Erzeugung eines Secret Keys in dem Sinne habe ich nicht genutzt. Ich habe lediglich die Variable eingefügt und sie mit einer hinreichend langen Zufallszeichenfolge ausgestattet (entweder du knallst deinen Kopf ein paar Mal auf die Tastatur um Zufallseingaben zu erzeugen oder du entscheidest dich für die weniger kopfschmerzenträchtige Variante und verwendest zum Beispiel so was: https://randomkeygen.com/secret-key  :saint: ).

  • Wg. meines recht hohen Haaransatzes bevorzugte ich die Konsole. :)

    Ich nutzte den Befehl aus der Migrations-Hilfe hinter Deinem Link weiter oben.

    Code
    python3 -c "import secrets; print(secrets.token_urlsafe(64))"

    May be, dass im neuen QTS hero 6 die Python3 Version nicht passt.

    Im Python3 eines maximal eine Woche alten openSuse Tumbleweed hat der Befehl sofort funktioniert.


    Danke

    Gruß zero K

  • Herr_der_Klingen:

    Hat sich auch der Port des Webservers verändert?

    Code
      webserver:
    ....
        ports:
          - 8020:8000 #Webport von Paperless

    in meiner (ok, recht alten) .yml ist es noch 8000:8000 ?(

    EDIT: Ich vermute mal das du diese Einstellung getätigt hast weil du Port 8000 schon anderweitig verwendest...

    Einmal editiert, zuletzt von LoboNr1 ()

  • Herr_der_Klingen:


    Was mir noch aufgefallen ist an deiner .yaml ist das du die Postgress Version 18 geändert hast

    Code
    image: postgres:18

    Muss man das manuell vorm Update machen?

  • Das Postgres Update ist optional und hat nichts mit V3 zu tun. Ich hatte über meine diversen Container zwischen Postgres 14 und 18 gefühlt jede Hauptversion irgendwo laufen. Das habe ich jetzt soweit wie möglich alles auf halbwegs aktuelle Versionen angehoben (zumal die sehr alten Postgres teilweise schon aus dem Support fallen). Wenn du das auch machen willst, geht das am einfachsten über die Document_Exporter Funktion (alles sichern, Datenbank löschen und dann in die neue Datenbank die Sicherung zurückspielen).