Paperless-ngx nach consume/media Anpassung kein Aufruf der Loginseite

hYtas

Cadet 2nd Year
Registriert
Feb. 2022
Beiträge
23
Hi,

ich hoffe, dass ihr mir helfen könnt, bisher gab es leider niemanden.

Ich nutze privat paperless-ngx auf einer Ubuntu VM mit Consume & Media (NFS) auf einer Diskstation. Funktioniert perfekt.
Zum Testen habe ich es in der Firma installiert, ebenfalls in einer Ubuntu VM.

Standard paperless-ngx Installation. Consume und Media liegen auf einem Windows Server und sind per SMB in der VM eingebunden.
Lege ich PDFs unter S/paperless/consume ab, landen die auch in mnt/paperless/consume.
Soweit so gut. Ändere ich nun aber in der docker-compose.yml die beiden Pfade consume und media auf /mnt/paperless/consume und /mnt/paperless/media lässt sich nach dem docker-compose up -d die Loginseite nicht mehr aufrufen.

Laut Konsole laufen alle 3 Punkte (nach dem xxxxx up -d), scannt man das Netz auf Port 80 läuft kein Webserver. Ändere ich consume und media auf /home/paperless/xxxx zurück, läuft es wieder.

Es hat bestimmt mit den Rechten zu tun, daher hatte ich zum testen /mnt/paperless mit chmod -R 777 /mnt/paperless für alle freigegeben. Hat aber keine Besserung gebracht.

Hat jemand eine Idee woran es scheitert?
 
Moin! Zeig doch mal bitte deine compose.yml, vor allem die Mappings der volumes. Was sagt der output von docker compose logs?
 
  • Gefällt mir
Reaktionen: redjack1000
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data

db:
image: docker.io/library/postgres:16
restart: unless-stopped
volumes:
- /home/paperless/paperless-ngx/database:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless

webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- "8000:8000"
volumes:
- /home/paperless/paperless-ngx/data:/usr/src/paperless/data
- /mnt/paperless/media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- /mnt/paperless/consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db

volumes:
redisdata:

Ok, das Log sagt schon das consume und media nicht beschreibbar sind, aber unter usr und nicht mnt:

webserver-1 | 2024-07-31T14:03:22.715228708Z Running migrations:
webserver-1 | 2024-07-31T14:03:22.715252408Z No migrations to apply.
webserver-1 | 2024-07-31T14:03:23.336914920Z Running Django checks
webserver-1 | 2024-07-31T14:03:28.371008649Z SystemCheckError: System check identified some issues:
webserver-1 | 2024-07-31T14:03:28.371121950Z
webserver-1 | 2024-07-31T14:03:28.371136951Z ERRORS:
webserver-1 | 2024-07-31T14:03:28.371147951Z ?: PAPERLESS_CONSUMPTION_DIR is not writeable
webserver-1 | 2024-07-31T14:03:28.371162651Z HINT: Set the permissions of
webserver-1 | 2024-07-31T14:03:28.371180351Z drwxr-xr-x root root /usr/src/paperless/consume
webserver-1 | 2024-07-31T14:03:28.371196451Z to be writeable by the user running the Paperless services
webserver-1 | 2024-07-31T14:03:28.371213851Z ?: PAPERLESS_MEDIA_ROOT is not writeable
webserver-1 | 2024-07-31T14:03:28.371230351Z HINT: Set the permissions of
webserver-1 | 2024-07-31T14:03:28.371240951Z drwxr-xr-x root root /usr/src/paperless/media
webserver-1 | 2024-07-31T14:03:28.371251352Z to be writeable by the user running the Paperless services
webserver-1 | 2024-07-31T14:03:28.371262252Z
webserver-1 | 2024-07-31T14:03:28.371272952Z System check identified 2 issues (0 silenced).
webserver-1 | 2024-07-31T14:03:29.899765400Z Paperless-ngx docker container starting...
webserver-1 | 2024-07-31T14:03:29.924802622Z Creating directory scratch directory /tmp/paperless
webserver-1 | 2024-07-31T14:03:29.929677665Z Adjusting permissions of paperless files. This may take a while.
webserver-1 | 2024-07-31T14:03:30.001081698Z Waiting for PostgreSQL to start...
webserver-1 | 2024-07-31T14:03:31.069744170Z Waiting for Redis...
webserver-1 | 2024-07-31T14:03:31.084142498Z Connected to Redis broker.


Unter usr/src/ gibt es kein paperless folder oder ist das ein "verstecktes" folder für docker?
 
Das /usr/src/paperless/consume bezieht sich auf den Pfad im Docker Container, also in deiner lokalen Umgebung dann /mnt/paperless/consume. Wie sind denn da die Rechte gesetzt?
 
drwxr-xr-x 2 root root 0 Jul 29 13:25 consume
drwxr-xr-x 2 root root 0 Jul 25 11:51 media

Ich hatte es mal anstatt root zum User paperless geändert, brachte aber keine Änderung.
 
Das mit dem User paperless sollte nicht funktionieren, da der Docker Contrainer standardmäßig als root läuft. Ist das die vollständige Config da oben? In der Config müsstest du ja dann eigentlich die UID und GID des paperless Nutzers angeben.

Für den webserver sieht zB bei mir so aus:


Code:
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8010:8000"
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - /opt/paperless/export:/usr/src/paperless/export
      - /opt/paperless/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
# The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the
# consumption directory.
      USERMAP_UID: 969
      USERMAP_GID: 968
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_OCR_CLEAN: clean-final

Mit USERMAP_UID und USERMAP_GID wird auf die User- und Gruppen-ID der loken Systemnutzer gemappt, unter dem paperless-ngs laufen soll und dieser ist bei mir dann auch "Besitzer" von /opt/paperless.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: lumpi2k
Ja die ist komplett. Meine Config zuhause sieht 1:1 genau so aus und dort geht es.
Ich denke die UID und GID steht dort nur drin, wenn du nicht Standard 1000 hast?

Könnte es sein, das der root User nicht auf 1000 steht sondern auf einer anderen Zahl?
 
Bei mir stehen die UID und GID in einer .env - vielleicht bei dir auch? Zusätzlich könntest du deine NFS Rechte-Settings überprüfen. Ich habe ein ähnliches setup, allerdings meine Paperless-Ordner per SMB gemountet. In der /etc/fstab habe ich daher dieselbe UID und GID angegeben.
 
In der Firma habe ich keine ID bei fstab eingetragen, nur User und Passwort vom smb Share. Die Daten legt er ja auch richtig aus dem smb Share in /mnt/paperless ab. Nur hat er keinen Zugriff auf das Verzeichnis.

In der compose.env sind keine IDs hinterlegt.

Kann es an den Befehl liegen, wie man das Share einbindet? Hast du mal deinen Befehl für mich?
 
Wird das Samba Share vielleicht nur mit Lese-Rechten eingebunden?

Und was du noch versuchen könntest, mal USERMAP_UID und USERMAP_GID auf 0 setzten, das ist eigentlich root. Ich habe zB TinyMediaManager im Docker laufen und da kann, warum auch immer, auf eine Samba Freigabe nur schreibend zugegriffen werden, wenn UID/GID auf 0 stehen.

Auch kannst du eine Samba-Freigabe direkt in der Compose-Datei angeben und musst die nicht vorher erst per fstab mounten zB:


Code:
volumes:
  freigabe:
    driver_opts:
      type: cifs
      o: "username=name,password=geheimespasswort,iocharset=utf8"
      device: "//192.168.0.11/Freigabe"
 
  • Gefällt mir
Reaktionen: lumpi2k
Ich habs mal nachgestellt:

services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data

db:
image: docker.io/library/postgres:16
restart: unless-stopped
volumes:
- /home/paperless/paperless-ngx/database:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless

webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- "8000:8000"
volumes:
- /home/paperless/paperless-ngx/data:/usr/src/paperless/data
- /opt/paperless/media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- /opt/paperless/consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db

volumes:
redisdata:
freigabe:
driver_opts:
type: cifs
o: "username=paperless,password=superless,iocharset=utf8"
device: "//192.168.160.14/paperless"

Die Ordner unter opt habe ich angelegt. Paperless startet nun aber zieht sich keine Daten. Wie verknüpft er nun opt/paperless mit dem smb share?
 
Einfach den Namen des Volumes (in dem Beispiel ist das "freigabe") in der volumes Sektion des webserver angeben zB:

volumes:
- /home/paperless/paperless-ngx/data:/usr/src/paperless/data
- /opt/paperless/media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- freigabe:/usr/src/paperless/consume
 
Irgendwie stehe ich auf dem Schlauch. Vorher hatte ich es mit:

//192.168.160.14/Firma/paperless/consume /mnt/paperless/consume cifs username=paperless,password=superless,iocharset=utf8

gemacht. Da weise ich ja direkt ein Share dem mnt zu. Die PDFs hat er sich geholt.
In der .env hatte ich PAPERLESS_CONSUMER_POLLING=10 eingetragen.

Laut dem Protokoll merkt er nichts von der Änderung:
[INFO] [paperless.management.consumer] Polling directory for changes: /usr/src/paperless/consume

Code:
rvices:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:16
    restart: unless-stopped
    volumes:
      - /home/paperless/paperless-ngx/database:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8000:8000"
    volumes:
      - /home/paperless/paperless-ngx/data:/usr/src/paperless/data
      - /Firma/paperless/media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - /Firma/paperless/consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db

volumes:
  redisdata:
  freigabe:
      driver_opts:
          type: cifs
          o: "username=paperless,password=superless,iocharset=utf8"
          device: "//192.168.160.14/Firma/paperless"

Normal ist das kein Thema, aber irgendwie bin da aktuell zu doof zu :D
 
Ich habs hinbekommen...

Habe unter fstab einfach:
Code:
//IPVOMNAS/Unterordner  /mnt/smb  cifs vers=3.0,username=USER,password=PASSWORD,uid=1000,gid=104,iocharset=utf8,file_mode=0777,dir_mode=0777,nounix  0  0
Eingetragen.
Für Consume und Media nun holt er sich die Daten in paperless und es funktioniert.

Was eine schwere Geburt. Danke für eure Hilfe und Tipps :)
 
  • Gefällt mir
Reaktionen: digdib
Zurück
Oben