404 Fehler beim öffnen eines Dokumentes

Hallo,

ich habe meine paperless Installation auf einen QNAO NAS migriert.
Auf dem NAS habe ich paperless erfolgreich als Docker Container installiert.
Die Verzeichnisse export, consume und media habe ich dabei auf meine HDD und die Verzeichnisse redis, db und data auf die SSD schreiben lasse.

Läuft zunächst.
Lade ich nun ein Dokument in paperless hoch, sieht alles nach einem Erfolg aus. Ich kann die preview öffnen und das Dokument herunterladen. Aber ich kann es nicht öffnen, um Tags, Korrespondent etc. zu bearbeiten. Nach wenigen Sekunden erhalte ich einen 404 Fehlermeldung.
Auch kann ich das Dokument zunächst nicht im Archiv oder Media Verzeichnis finden. Nach gefühlt ein paar Stunden, taucht es dann in beiden Verzeichnissen auf, aber der Fehler ist nicht weg.

Habs grade nochmal mit einem Dokument getestet. Das Log gibt mir auch kein Anzeichen dafür, dass irgendwas nicht stimmen könnte.

[2025-02-10 15:52:08,804] [WARNING] [ocrmypdf._metadata] Some input metadata could not be copied because it is not permitted in PDF/A. You may wish to examine the output PDF's XMP metadata.

[2025-02-10 15:52:09,506] [INFO] [ocrmypdf._pipeline] Image optimization ratio: 1.00 savings: 0.1%

[2025-02-10 15:52:09,506] [INFO] [ocrmypdf._pipeline] Total file size ratio: 1.00 savings: -0.3%

[2025-02-10 15:52:09,516] [INFO] [ocrmypdf._pipelines._common] Output file is a PDF/A-2B (as expected)

[2025-02-10 15:52:10,878] [DEBUG] [paperless.parsing.tesseract] Incomplete sidecar file: discarding.

[2025-02-10 15:52:11,998] [INFO] [paperless.parsing.tesseract] pdftotext exited 0

[2025-02-10 15:52:12,006] [DEBUG] [paperless.consumer] Generating thumbnail for Gira Steuergerät Video.pdf...

[2025-02-10 15:52:12,009] [DEBUG] [paperless.parsing] Execute: convert -density 300 -scale 500x5000> -alpha remove -strip -auto-orient -define pdf:use-cropbox=true /tmp/paperless/paperless-tqydyrug/archive.pdf[0] /tmp/paperless/paperless-tqydyrug/convert.webp

[2025-02-10 15:52:12,466] [INFO] [paperless.parsing] convert exited 0

[2025-02-10 15:52:15,965] [DEBUG] [paperless.consumer] Saving record to database

[2025-02-10 15:52:15,966] [DEBUG] [paperless.consumer] Creation date from st_mtime: 2024-08-23 19:21:26.168649+02:00

[2025-02-10 15:52:16,665] [INFO] [paperless.handlers] Assigning correspondent Einkäufe/Ausgaben to 2024-08-23 Gira Steuergerät Video

[2025-02-10 15:52:16,730] [INFO] [paperless.handlers] Assigning document type Sonstiges to 2024-08-23 Einkäufe/Ausgaben Gira Steuergerät Video

[2025-02-10 15:52:17,059] [INFO] [paperless.matching] Document did not match Workflow: Kontoauszug

[2025-02-10 15:52:17,060] [DEBUG] [paperless.matching] ('Document doc type Sonstiges does not match Kontoauszug',)

[2025-02-10 15:52:17,069] [INFO] [paperless.matching] Document did not match Workflow: Versicherungsschein ben. Felder

[2025-02-10 15:52:17,070] [DEBUG] [paperless.matching] ('Document doc type Sonstiges does not match Versicherungsschein',)

[2025-02-10 15:52:17,103] [DEBUG] [paperless.consumer] Deleting file /tmp/paperless/paperless-ngxopsfempn/Gira Steuergerät Video.pdf

[2025-02-10 15:52:17,105] [DEBUG] [paperless.parsing.tesseract] Deleting directory /tmp/paperless/paperless-tqydyrug

[2025-02-10 15:52:17,106] [INFO] [paperless.consumer] Document 2024-08-23 Einkäufe/Ausgaben Gira Steuergerät Video consumption finished

[2025-02-10 15:52:17,112] [INFO] [paperless.tasks] ConsumeTaskPlugin completed with: Success. New document id 3561 created

Auch wenn hier die meisten ein Synology NAS haben, hat vielleicht jemand eine Idee, woher dieses Problem stammen kann.

Meine compose.yaml sieht übrigens so aus, falls es jemanden interessiert.

networks:
  paperless-net:
    external: false

services:

  broker:
    container_name: paperless-redis
    image: redis:7
    networks:
      - paperless-net
    volumes:
      - /share/CACHEDEV1_DATA/Container/paperless-ngx/redis:/redis
    restart: unless-stopped

  db:
    container_name: paperless-db
    image: postgres:16
    networks:
      - paperless-net
    restart: unless-stopped
    volumes:
      - /share/CACHEDEV1_DATA/Container/paperless-ngx/db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: xxx

  webserver:
    container_name: paperless
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    networks:
      - paperless-net
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - 8000:8000 #Webport von Paperless
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /share/CACHEDEV1_DATA/Container/paperless-ngx/data:/usr/src/paperless/data
      - /share/CACHEDEV2_DATA/Paperless/media:/usr/src/paperless/media
      - /share/CACHEDEV2_DATA/Paperless/export:/usr/src/paperless/export #den Ordner "export" von Paperless auf den Ordner export mappen
      - /share/CACHEDEV2_DATA/Paperless/consume:/usr/src/paperless/consume #den Ordner "consume" von Paperless auf den Ordner import mappen
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBPASS: paperless
      USERMAP_UID: 1000 
      USERMAP_GID: 100
      PAPERLESS_OCR_LANGUAGES: eng deu
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true, "continue_on_soft_render_error": true}'
      PAPERLESS_FILENAME_FORMAT: "{{correspondent}}/{{created_year}}/{{created}} {{title}}"
      PAPERLESS_CONSUMER_RECURSIVE: 1
      PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS: true
      PAPERLESS_FILENAME_DATE_ORDER: YMD
      PAPERLESS_IGNORE_DATES: 27.12.2018,23.09.1981,07.12.1981
      PAPERLESS_ADMIN_USER: paperless
      PAPERLESS_ADMIN_PASSWORD: xxx
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
  
  db-backup:
    container_name: paperless-db-backup 
    image: postgres:16
    volumes:
      - /share/CACHEDEV1_DATA/Container/paperless-ngx/db-backup:/dump 
      - /etc/localtime:/etc/localtime:ro 
    environment: 
      PGHOST: db 
      PGDATABASE: paperless 
      PGUSER: paperless 
      PGPASSWORD: xxx
      BACKUP_NUM_KEEP: 10 
      BACKUP_FREQUENCY: 7d # Alle 7 Tage Backup auf die Backup-DB kopieren, kann man anpassen
    entrypoint: | 
      bash -c 'bash -s <<EOF 
      trap "break;exit" SIGHUP SIGINT SIGTERM 
      sleep 2m 
      while /bin/true; do
        pg_dump -Fc > /dump/dump_\`date +%d-%m-%Y"_"%H_%M_%S\`.psql 
        (ls -t /dump/dump*.psql|head -n $$BACKUP_NUM_KEEP;ls /dump/dump*.psql)|sort|uniq -u|xargs rm -- {} 
        sleep $$BACKUP_FREQUENCY 
      done 
      EOF' 
    networks:
      - paperless-net

  gotenberg:
    container_name: paperless-gotenberg
    image: gotenberg/gotenberg:latest
    restart: unless-stopped
    environment:
      CHROMIUM_DISABLE_ROUTES: 1
    networks:
      - paperless-net

  tika:
    container_name: paperless-tika
    image: apache/tika:latest
    restart: unless-stopped
    networks:
      - paperless-net

Hi,

Kontrolliere mal:
USERMAP_UID: 1000
USERMAP_GID: 100

Hast du das nur abgetippt oder entsprechend deinem User auf der QNAP kontrolliert und angepasst?

VG

Bewusst gesetzt, nein. Tatsächlich von der alten Installation übernommen.
Trotzdem passen die Einträge zu meinem Admin-Account, den ich für die Installation verwendet habe oder, wenn ich im Docker bin zu dem Superuser von paperless.
Ich weiß grade nicht, welcher Eintrag dort erwartet wird.

[nas-admin@NAS /]$ id nas-admin
uid=1000(nas-admin) gid=100(everyone) groups=100(everyone),0(administrators)

Gehe ich in den Container, sehe ich den definierten Benutzer paperless mit der ID.

[nas-admin@NAS paperless-ngx]$ docker exec -it paperless /bin/bash
root@a4399cbcb752:/usr/src/paperless/src# id paperless
uid=1000(paperless) gid=100(users) groups=100(users)

Edit:

Ich habe das Problem scheinbar gefunden und lösen können. Es lag vermutlich an Berechtigungen, die auf dem media-Verzeichnis nicht richtig gesetzt waren. Ich bin hingegangen und habe r/w Rechte auch für die Gruppe vergeben.
Danach hat alles funktioniert wie ich es erwartet habe.

immer wieder die Berechtigungen…

Hat schon einen Grund warum ich bei meinen Volumes immer :rw angehängt habe.
image

Ja, klingt sinnvoll. Wenn das dieses Problem löst, ist der kleine Zusatz echt gut.
Keine Ahnung, warum das in so vielen HowTos nicht beschrieben wird.

Bin grade froh, dass alles läuft. Deswegen werde ich es nicht nochmal testen :wink: