Webserver startet nicht mehr nach Änderung einer Umgebundvariable

soooo…ich hab jetzt mein paperless neu aufgesetzt und “nur” 1800 Dateien neu eingepflegt. :roll_eyes:

paperless läuft soweit wieder, aber ich hab dennoch noch zwei „kleine“ Probleme.

  1. Problem:
    der consume ordner funktioniert nicht. d.h. wenn ich dort ne Datei ablege, dann wird diese nicht erkannt.
    zumal ich auch ne ganz komische Struktur habe. Im Hauptverzeichnis habe ich die Ordner “consume”, “data”, “export”, “Media” und “redis” manuell angelegt. Danach habe ich das Yamlscript ausgeführt und jetzt taucht ein Teil (consume, data, export und media) davon wieder unter “paperless-Webserver” wieder auf. Die vorher angelegten Ordner im Hauptverzeicht sind alle leer. Kann/darf ich die löschen ?
    Logischerweise müsste paperless dann die Ordner unterhalb des “paperless-webservers” verwenden. Somit also auch das consume Verzeichnis. Macht er aber nicht. :frowning:
  2. Problem:Ich möchte jetzt ein Backup machen, welches auch (später) automatisch funktionieren soll.
    Die Befehlszeile: “sudo docker compose exec webserver document_exporter ../export” liefert mir
    ”yaml: line 41: did not find expected key”
    Das Yaml-File hab ich ja schon vorher hier gepostet.
    paperless hab ich im portainer installiert und hab den Befehl im laufenden Betrieb eingegeben.
    Weiterhin auch noch die Frage: Wenn ich ein env.-File habe und dort die Parameter auch vorkommen, kann es da auch zu Problemen führen ?
    und…wo finde ich das „aktive“ yaml-File. Das sollte doch im Verzeichnis von paperless liegen,oder?

So…jetzt hab ich natürlich Panik, daß wenn ich was ändere meine Konfig oder paperless komplett über den Jordan springt.
Ein Backup vorher wäre schon schön.
Bringt eine Kopie des kompletten Verzeichnisses auch was oder stimmen dann irgendwelche Abhänigkeiten nicht mehr ?

Fragen über Fragen…

und gleich Danke für eure Hilfe und Antworten.

Hi,

Welche Ordner paperless verwendet sieht man ganz deutlich in der docker-compose

Hast du die Ordner data, media usw. im „paperless“ Ordner angelegt kannst du sie löschen, die werden nicht benötigt.

Musst mal hier im Forum nach export suchen, kann sein dass der Sudo Befehl auf deinem System nicht funktioniert.

Das ist ok, sollte funktionieren wenn der export Befehl für dein System passt.

Würde ich nicht machen wenn ich eine Stack verwende.
In deiner docker-compose ist kein Eintrag drin dass eine .env Datei beachtet werden soll.
Schreib alles unter „environment“ rein und gut is!
Bei größeren Änderungen den Stack stoppen, den Stack bearbeiten, starten und deployen

Nicht wenn du Portainer verwendest, die Änderungen bearbeitest du im Stack, es wird eine docker-compose in einem Unterordner von Portainer gespeichert.

Kannst du machen, vorzugsweise als Snapshot oder wenn keine Dokumente consumiert werden.
Regelmässiger Export ist trotzdem nützlich, z.B für Datenbank upgrade

Paperless ist schon robust wenn du nicht manuell in die Ordnerstruktur, die Datenbank oder in den gespeicherten Dokumenten pfuscht.
Du kannst schon andere Ordner verwenden, dazu immer Paperless und alle dazugehörigen container stoppen, die Ordnerstruktur anpassen, im Stack die neue Ordnerstruktur einstellen und den Stack neu starten und deployen.

wow…danke für die Antwort!

ok…was habe ich jetzt gemacht:

  1. Ich hab mir mal den paperless-Ordner via Dateiexplorer in ein anderes Verzeichnis kopiert. nur mal zur Sicherheit;-)
  2. nicht benötigte Verzeichnisse habe ich gelöscht (wie du beschrieben hast)
  3. nachfolgendes yaml-Script hab ich auch nochmals (zur Sicherheit) als docker-compose.yml im Hauptverzeichnis paperless abgelegt, da ja darauf (anscheinend) der Exporter drauf zurückgreift.
  4. die Variablen hab ich in den portainer im Stack unter Editor eingefügt und noch a bisserl was modifiziert.
    sieht dann so aus:
services:
  broker:
    image: docker.io/library/redis:8
    restart: unless-stopped
    volumes:
      - /home/nfs/public/paperless/paperless-broker/redis:/data
  db:
    image: docker.io/library/postgres:18
    restart: unless-stopped
    volumes:
      - /home/nfs/public/paperless/paperless-db/db:/var/lib/postgresql
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:2.19.1
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - 8010:8000
    volumes:
      - /home/nfs/public/paperless/paperless-webserver/data:/usr/src/paperless/data
      - /home/nfs/public/paperless/paperless-webserver/media:/usr/src/paperless/media
      - /home/nfs/public/paperless/paperless-webserver/export:/usr/src/paperless/export
      - /home/nfs/public/paperless/paperless-webserver/consume:/usr/src/paperless/consume
    #env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_SECRET_KEY: *muss man nicht wissen *
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: *muss man nicht wissen *
      PAPERLESS_OCR_LANGUAGE: deu
      USERMAP_UID: 1000
      USERMAP_GID: 100
      PAPERLESS_URL: https://*muss man nicht wissen *
      #PAPERLESS_FILENAME_FORMAT: {correspondent}/{created_year}/{document_type}/{created}-{titel)}
      PAPERLESS_CSRF_TRUSTED_ORIGINS: https://*muss man nicht wissen *:443
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
  gotenberg:
    image: docker.io/gotenberg/gotenberg
    restart: unless-stopped
    #The gotenberg chromium route is used to convert .eml files. We do not
    #want to allow external content like tracking pixels or even javascript.
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"
  tika:
    image: docker.io/apache/tika:latest
    restart: unless-stopped
#volumes:
#  data:
#  media:
#  pgdata:
#  redis:

einmal neu deployed…läuft soweit. Es wurden keine Fehler angezeigt und alle Daten sind auch noch da. (Puhhhh…Glück gehabt :wink: )
Dennoch sind nach wie vor meine Probleme da: im consume wird keine Datei erkannt und beim export Befehlt kommt jetzt:" service „webserver“ is not running" … :joy:
Ich habe aber sowohl im lokalen Netz und auch von ausserhalb Zugriff. Warum soll da der Webserver nicht laufen ??? :thinking:
meinen PI hab ich auch schon mal neu gestartet…keine Veränderung

Ich hab hier bei consume ne Vermutungen:
Könnte es sein, daß hier ein Berechtigungsproblem vorliegt ? Was ich mal irgendwo gelesen habe ist, daß paperless nen eigenen Benutzer nur für consume hat. Stimmt das ?
Sollte aber kein extra Benutzer existieren, dann frage ich mich, warum das hier nicht geht. Alle unter paperless-webserver Verzeichnisse haben selbe Eigentümer und Gruppen berechtigung. Also egal ob z.b. media, data, export oder eben consume. Und da ja hier z.b. unter media die pdf´s abgelegt werden, sollte ja auch der consume-Ordner funktionieren, oder?
Verhalten von paperless ist: es passiert nix. paperless merkt nicht mal, daß da ne Datei liegt und auf Verarbeitung wartet.

Klingt in der Tat nach einem Rechte-Problem.

Erstelle dir einfach nen seperaten User und gib ihm mit chown und chgrp sowie chmod 775 die Rechte.

Entweder per Shell oder UI bzw. Wenn du n webUI willst z.b. Webmin.

Dann sollte dein Problem behoben sein wenn du die env anpasst.

Normalerweise meldet sich paperless schon bei der Installation wenn keine lese und Schreibrechte für den consume Ordner vorhanden sind.
Das Problem ist ja nicht ganz unbekannt.

Extra Benutzter ist auch nicht zwangsläufig erforderlich, erhöht ein klein wenig die Sicherheit dass nicht jeder in einem Haushalt oder auch Firma Zugriff auf die Ordner hat.

Die beiden envs hast du kontrolliert oder nur aus einer Vorlage übernommen?
image

Hier musst du noch Doppelklammern verwenden, Beispiel:

PAPERLESS_FILENAME_FORMAT: '{{created_year}}/{{correspondent}}/{{document_type}}/{{title}}'

ja…habe ich so aus der Vorlage.
wobei ich sagen muss es verwirrt mich etwas.
Ich hab paperless in einem portainer auf nem PI installiert. Die eigentlichen Verzeichnisse liegen, wie aus der yaml-Datei ersichtlich auf nem NAS, welches ich mittels NFS im Pi eingebunden habe.
so…
gebe ich, „ID“ ein dann erscheint mirauf dem PI uid=1000(pit) gid=1000(pit) Gruppen=1000(pit) soweit ok.
aber auf einem Synology NAS bin ich auf einmal „1026“ oder „pit“.
Deshalb auch meine Vermutung, daß da was nicht passt mit den Rechten.
Muss auch gleich dazu sagen, daß ich nicht ganz so fit bin im Linux. :wink:

im Hauptverzeichnis sieht es so aus:
drwxrwxrwx 1 1026 users 166 7. Nov 06:58 .
drwxrwxrwx 1 root root 256 7. Nov 07:01 ..
-rw–w–w- 1 1026 users 1914 6. Nov 13:28 docker-compose.env
-rw------- 1 1026 users 2212 7. Nov 07:24 docker-compose.yml
drwxr-xr-x 1 root root 10 23. Okt 14:12 paperless-broker
drwxr-xr-x 1 root root 4 23. Okt 14:12 paperless-db
drwxr-xr-x 1 root root 44 4. Nov 12:49 paperless-webserver

und unter Webserver so:
drwxr-xr-x 1 root root 44 4. Nov 12:49 .
drwxrwxrwx 1 1026 users 166 7. Nov 06:58 ..
drwxr-xr-x 1 pit users 12 7. Nov 07:56 consume
drwxr-xr-x 1 pit users 170 7. Nov 08:07 data
drwxr-xr-x 1 pit users 0 23. Okt 14:18 export
drwxr-xr-x 1 pit users 38 7. Nov 07:56 media

kann man dann folgendes sagen: 1000=pit=1026 ???
1000 kommt vom pi und
1026 kommt von der Synology.

wenn ich jetzt das Yaml file vergleiche, dann müsste ich doch USERMAP_ID: 1000 und USERMAP_GID: 1000 oder USERMAP_ID: 1026 und USERMAP_GID: 1000 ???

Willkommen im Club :sweat_smile:

Warum läuft Paperless nicht auf der Synology? Ist die zu langsam? Zu wenig Arbeitsspeicher? Docker wird nicht unterstützt?

Na super !!!
Not gegen Elend ! :wink:
Die Synology ist ne 415 zu langsam und zu wenig Arbeitsspeicher.

Dann würde ich das mal so in den
env einstellen und den Stack neu deployen

neueste Info:
Wenn ich mit 1000 und 100 deploye, dann passiert folgendes:
Die eingestellen pdf´s auf dem consume auf der Synology haben den user 1026.
Diese werden dann in den User und Gruppe „paperless“ umgenannt.
Und dann klapp es auch mit dem consume-Verzeichnis.
Dies passiert leider nur immer beim deployen. also beim starten des containers.
hier der Auszug vom log:

Waiting for Redis...
Connected to Redis broker.
[init-redis-wait] Redis ready
changed ownership of '/usr/src/paperless/consume/2025 05 15 Mietvertrag 1.pdf' from 1026:users to paperless:paperless
changed ownership of '/usr/src/paperless/consume/2025 05 15 Mietvertrag 2.pdf' from 1026:users to paperless:paperless
changed ownership of '/usr/src/paperless/consume/2025 08 01 Mietvertrag 3.pdf' from 1026:users to paperless:paperless
changed ownership of '/tmp/paperless' from root:root to paperless:paperless
Connected to PostgreSQL
[init-db-wait] Database is ready
[init-migrations] Apply database migrations...
Operations to perform:
  Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount
Running migrations:
  No migrations to apply.

muss ich jetzt mit chown das consume-Verzeichnis nach peperless:paperless umschreiben ?

consume:
ich denke ich habe ne Lösung !
ich hab mir einfach die Variable

  PAPERLESS_CONSUMER_POLLING: 1

ins yaml-file geschrieben. Jetzt klappt zumindest der consume ordner. :wink:

bleibt also nur noch die export-geschichte.
Hat keiner ne Idee ?

Dein Weg als Linux-Einsteiger scheint mir da der falsche zu sein für den Anfang.

Ich verstehe aber das Ziel dahinter und wenn ich Zeit habe muss ich mir das mal mit meiner 412+ angucken.

Die Rechte mussen durchgängig sein. Wenn bei a 1000 ist aber bei b 1026 kann das nix werden.

Lass den Stack doch einfach mal local laufen zum Testen ob deine Probleme weg sind.

Vmtl. Wirst du die User auch remote anlegen müssen damit das mit den Zugriff läuft.

Was Porttainer angeht kann ich dir nicht helfen.

Ich hab alles nur über docker am laufen und nutze aus Faulheit für Änderungen dockge.

Ich bin mir sicher wenn du die IDs samt user und Gruppe synchron erstellst wird es funktionieren.

Musst dann nur auch den Ordner die entsprechenden rechte setzen.

so…inzwischen fünktioniert alles so wie es soll.
Genau erklären kann ich es zwar nicht, aber es geht.
Was hab ich alles gemacht…
Ja…die Rechte waren auch ein Punkt da drinnen.
Den via NFS eingebunde Share „paperless“ hab ich als Besitzer und Gruppe auf 1026:users belassen.
die drei Unterordner (broker, db und Webserver) habe ich zu root:root gemacht. Wiederum die Unterordner z.B. beim Webserver consume, data, export und media habe die Rechte 1026:users.
Fragt mich nicht warum, aber es funktioniert.

Thema Export:
Über Putty erstmal ne Verbindung aufgebaut.
dann habe ich erstmal auf der Kommandozeile folgend Befehl probiert:
sudo docker exec -it paperless-ngx-webserver-1 bash -c "document_exporter -z ../export/"
und siehe da…es funktionierte.

Ich hab mir dann noch ne Datei angelegt, damit ich den Export in nem crontab automatisch ausführen lassen konnte.
Gerne kann ich die Anlage des script hier auch noch ausführen bzw. posten, wenn gewünscht.

Ich wollte eigentlich nur ne Rückmeldung abgeben, für Leute die auch am Verzweifeln sind. :wink:
Hoffe ich konnte mit meiner Frage auch einen Beitrag leisten.

Vielen Dank nochmals für die Unterstützung.