Hi!
Ich weiß gar nicht, wie ich mein Problem beschreiben soll. Daher fange ich einfach mal an...
Ich habe im Docker Compose File von Paperless-ngx einen alternativen Speicherpfad für den Consume-Ordner und für die Original PDFs angegeben...
- /volume2/Dokumente/Posteingang:/usr/src/paperless/consume:rw
- /volume2/Dokumente:/usr/src/paperless/media/documents/originals:rw
... was soweit auch alles funktioniert hat. Da mir der Ordner /Dokumente aber nicht gefallen hat, habe ich einen neuen gemeinsamen Ordner mit dem Namen /Aktenarchiv erstellt, den Paperless-ngx Stack entsprechend aktualisiert und neu geladen. Seit dem läuft meine Prozessorlast permanent auf ca. 30 %. Ein Blick in das Paperless-ngx Protokoll gibt mir zu verstehen, das laufend "Permission denied" Fehler auftreten. Das sieht dann so aus...
File "/usr/local/lib/python3.12/site-packages/inotify_simple.py", line 110, in add_watch
return _libc_call(_libc.inotify_add_watch, self.fileno(), fsencode(path), mask)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/inotify_simple.py", line 39, in _libc_call
raise OSError(errno, os.strerror(errno))
PermissionError: [Errno 13] Permission denied
/etc/timezone is deprecated on Debian, and no longer reliable. Ignoring.
[2025-07-25 15:45:32,265] [INFO] [paperless.management.consumer] Using inotify to watch directory for changes: /usr/src/paperless/consume
Traceback (most recent call last):
File "/usr/src/paperless/src/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 251, in handle
self.handle_inotify(directory, recursive, is_testing=options["testing"])
File "/usr/src/paperless/src/documents/management/commands/document_consumer.py", line 297, in handle_inotify
inotify.add_watch_recursive(directory, inotify_flags)
File "/usr/local/lib/python3.12/site-packages/inotifyrecursive/inotifyrecursive.py", line 116, in add_watch_recursive
return self.__add_watch_recursive(path, mask, filter, name, -1, False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/inotifyrecursive/inotifyrecursive.py", line 79, in __add_watch_recursive
wd = inotify_simple.INotify.add_watch(self, path, mask | flags.IGNORED | flags.CREATE | flags.MOVED_FROM | flags.MOVED_TO)
Display More
Okay dachte ich mir, ab auf die Konsole. Dort stellte ich mit Erstaunen fest, das alle gemeinsamen Ordner dem Benutzer root gehören, nur der Ordner /Aktenarchiv gehörte meinem Benutzer, den ich mit UID und GID im Stack angegeben hatte.
Ich habe dann im Stack sowohl die UID und die GID auf 0 (für root) gesetzt. Ebenfalls habe ich den gemeinsamen Ordner /Aktenarchiv auf den Benutzer root umgeschrieben. Danach funktionierte Paperless-ngx wieder ganz normal und die Prozessorlast ging auf ca. 3 % zurück
Jetzt bin ich total verwirrt. Warum sind alle gemeinsamen Ordner dem Benutzer root zugeteilt und nicht meinem Admin-Benutzer? Und warum muss ich Paperless als UID und GID root mitgeben, damit das alles funktioniert. Auch stellt sich mir grade die Frage, ob ich generell irgendwelche Einstellungen bezüglich Benutzer, Benutzergruppen und Rechte konfligieren müsste.
Vielleicht kann mir hier jemand unter die Arme greifen und mir erklären, was genau da ab geht. Ich versteh's jedenfalls nicht.
Tommes
Ah... oh...da fällt mir auf...
Kann bzw. darf man überhaupt einen gemeinsamen Ordner direkt als Ziel-Volume angeben? Vermutlich nicht. Nachdem ich das Ziel-Volumen in einen Unterordner verschoben hatte, funktioniert Paperless wieder ganz normal und ohne Fehlermeldungen im Protokoll. So sieht das jetzt bei mir aus...