Paperless-ngx Paperless-ngx – DMS via Docker auf dem NAS

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Grundsätzlic wird auch die Datenbank gesichert, wenn sie gemappt wurde, aber zusätzlich einen Dump der Datenbank zu haben, schadet nicht.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.152
Punkte für Reaktionen
740
Punkte
154
Hast du dir den Thread schonmal angeschaut? Die alte Datenbank wird erstmal gar nicht angefasst, sondern nur exportiert.

Zum Testen hab ich das damals über eine zweite Instanz von Paperless gemacht und erst nach erfolgreichem Test den produktiven Container umgestellt. Und selbst dann wird das Datenbank-Verzeichnis des PostgreSQL-Containers nicht angefasst.
 

renfiela

Benutzer
Mitglied seit
27. Dez 2023
Beiträge
14
Punkte für Reaktionen
6
Punkte
53
@renfiela

Kannst du deine andern docker-compose auch noch Posten ?
( Redis & Tikka & Gotenberg ) MariaDB wird ja von der DS wie ich sehe bereit gestellt.

Nun viel kommt da bei der ursprünglichen docker-compose.yml nicht mehr hinzu, bis auf die beiden Abhängigkeiten und die beiden zusätzlichen Container:

Bash:
version: "3.4"
services:
  broker:
    container_name: Paperless_Broker
    image: docker.io/library/redis:latest
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperlessngx/redis:/data # bitte an deine Bedürfnisse anpassen

  webserver:
    container_name: Paperless
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - broker
      - gotenberg
      - tika
    ports:
      - "8010:8000"
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /volume1/docker/paperlessngx/data:/usr/src/paperless/data # bitte an deine Bedürfnisse anpassen
      - /volume1/docker/paperlessngx/media:/usr/src/paperless/media # bitte an deine Bedürfnisse anpassen
      - /volume1/docker/paperlessngx/export:/usr/src/paperless/export # bitte an deine Bedürfnisse anpassen
      - /volume1/docker/paperlessngx/scripts:/scripts # bitte an deine Bedürfnisse anpassen
      - /volume1/Eltern/DocIn:/usr/src/paperless/consume # bitte an deine Bedürfnisse anpassen
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBENGINE: mariadb
      PAPERLESS_DBHOST: 192.168.2.57 # deine IP des Synology
      PAPERLESS_DBNAME: tester # bitte an deine Bedürfnisse anpassen
      PAPERLESS_DBUSER: tester # bitte an deine Bedürfnisse anpassen
      PAPERLESS_DBPASS: Tester_12345 # bitte an deine Bedürfnisse anpassen
      PAPERLESS_DBPORT: 3306
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      
  gotenberg:
    container_name: Paperless_Gotenberg
    image: docker.io/gotenberg/gotenberg:latest
    restart: unless-stopped

    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

  tika:
    container_name: Paperless_Tika
    image: ghcr.io/paperless-ngx/tika:latest
    restart: unless-stopped

volumes:
  data:
  media:
  pgdata:
  redisdata:
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224

Paperless-ngx v2.4.0

Repository: paperless-ngx/paperless-ngx · Tag: v2.4.0 · Commit: f02e8e0 · Released by: github-actions[bot]

paperless-ngx 2.4.0​

Features​

Bug Fixes​

 

Pixelschubser

Benutzer
Mitglied seit
11. Jul 2011
Beiträge
90
Punkte für Reaktionen
6
Punkte
14
Probleme mit Paperless-ngx „consume“ Ordner bzw mappen auf Freigegebenes Verzeichnis.

Ich versuche mich gerade mit paperless-ngx unter Docker. Ich habe mich weitgehend an die Anleitung von mariushosting.com gehalten.

Es läuft auch bei mir soweit. Einzig ich möchte nicht den Pfad
A) - /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
verwenden sondern
B) - /volume1/Scanner/DMS:/usr/src/paperless/consume:rw
(was macht eigentlich das ":rw" am Ende der Zeile? In vielen anderen Beispielen gibt es das nicht)

Zu Zeile B), Ich habe ein Verzeichnis "/volume1/Scanner", in dem mein Scanner auch brav alle Dokumente ablegt. Dort habe ich ein Unterverzeichnis "/DMS" angelegt aus dem sich paperless dann alles abholen soll. Der Grund ist das die Dokumente in "/volume1/Scanner" immer erst noch ansehen, drehen ect.. will um sie dann nach "/DMS" schieben).

Also, alles funktioniert mit Zeile A) im yaml file. Also dem "/usr/src/paperless/consume" Verzeichnis im Container. Änder ich die Zeile auf Version B) läuft die Erstellung durch aber nach einer Weile springt der Status vom Projekt von grüne auf orange. Hier sieht man das er durchgelaufen ist, aber nach etwa 30 Sekunden auf orange geht.

1705693066369.png

Hier sieht man das nur der Container PaperlessNGX nicht will.
1705693126836.png

Wenn man in das Protokoll sieht, steht da auch das er meckert das er nicht in das "../consume" Verzeichnis schreiben kann.
1705693192074.png

Wenn ich mir das Verzeichnis ansehe
1705693205965.png

war hier alles auf „Kein Zugriff“ gestanden. Testweise habe ich mal verdächtige Systembenutzer auf RW gestellt. Aber nichts hilft.
1705693237355.png

Das verwirrende ist das ich schon mal eine erste Variante ohne tika und gotenburg probiert hatte (auch von mariushosting.com). Und bei der Variante, hat es funktioniert. Ich konnte die Zeile im yaml ändern und er lief. Holte sich also die Scans brav ab. Und das ganze ohne das ich an den Rechten geschraubt habe.

Hat einer einen Tipp wo ich weiter suchen kann?
Welcher User ist der Systembenutzer ist der Dockeruser?
 

Anhänge

  • 1705693088678.png
    1705693088678.png
    42,9 KB · Aufrufe: 3

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Mit welcher User ID (UID) in der Konfiguration gemäß Marius hast du das denn installiert? Der Benutzer muss die entsprechenden Rechte (rw: Read/Write) haben.
 

Dog6574

Benutzer
Mitglied seit
15. Sep 2014
Beiträge
181
Punkte für Reaktionen
1
Punkte
18
Die Dokumente kannst Du auch in Paperless direkt drehen...die werden dann immer so aufgerufen
 

Pixelschubser

Benutzer
Mitglied seit
11. Jul 2011
Beiträge
90
Punkte für Reaktionen
6
Punkte
14
Ich hatte vergessen mein yaml zu posten. Hier kommt es:
Es entspricht dem von Marius mit meinen Anpassungen.

---------------------------------------------------------------------------------------------------
version: "3.9"
services:
redis:
image: redis:7
command:
- /bin/sh
- -c
- redis-server --requirepass redispass
container_name: PaperlessNGX-REDIS
hostname: paper-redis
mem_limit: 512m
mem_reservation: 256m
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
user: 1026:100
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/paperless1/redis:/data:rw
environment:
TZ: Europe/Berlin
restart: on-failure:5
db:
image: postgres:16
container_name: PaperlessNGX-DB
hostname: paper-db
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume1/docker/paperless1/db:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperlessuser
POSTGRES_PASSWORD: paperlesspass
restart: on-failure:5
gotenberg:
image: gotenberg/gotenberg:latest
container_name: PaperlessNGX-GOTENBERG
hostname: gotenberg
security_opt:
- no-new-privileges:true
user: 1026:100
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-disable-routes=true"
- "--chromium-allow-list=file:///tmp/.*"
restart: on-failure:5
tika:
image: ghcr.io/paperless-ngx/tika:latest
container_name: PaperlessNGX-TIKA
hostname: tika
security_opt:
- no-new-privileges:true
user: 1026:100
restart: on-failure:5
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: PaperlessNGX
hostname: paperless-ngx
mem_limit: 6g
cpu_shares: 1024
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
ports:
- 13080:8000
volumes:
- /volume1/docker/paperless1/data:/usr/src/paperless/data:rw
- /volume1/docker/paperless1/media:/usr/src/paperless/media:rw
- /volume1/docker/paperless1/export:/usr/src/paperless/export:rw
- /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
- /volume1/Scanner/DMS:/usr/src/paperless/consume:rw
# - /volume1/docker/paperless1/trash:/usr/src/paperless/trash:rw
environment:
PAPERLESS_REDIS: redis://:redispass@paper-redis:6379
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: paper-db
PAPERLESS_DBNAME: paperless
PAPERLESS_DBUSER: paperlessuser
PAPERLESS_DBPASS: paperlesspass
PAPERLESS_TRASH_DIR: ../trash
# PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{document_type}/{title}'
PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
PAPERLESS_TASK_WORKERS: 1
USERMAP_UID: 1026
USERMAP_GID: 100
PAPERLESS_TIME_ZONE: Europe/Berlin
PAPERLESS_ADMIN_USER: admin
PAPERLESS_ADMIN_PASSWORD: 123456
# PAPERLESS_URL: https://paperlessngx.yourname.synology.me
# PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperlessngx.yourname.synology.me
PAPERLESS_OCR_LANGUAGE: deu+eng
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
restart: on-failure:5
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
tika:
condition: service_started
gotenberg:
condition: service_started
--------------------------------------------------------------------------------------------------

Ich hatte meine ID vorher ermittelt:
uid=1026(ANGEMELDETERUSERNAME) gid=100(users) groups=100(users),101(administrators),1023(http),65536(video)
Meine ID war also 1026 und die hatte ich ins yaml eingetragen. Das ist der User mit dem ich Adminitriere.


--
@Dog6574
Ja aber auch einzelne Seiten? Ich habe mir auch StrirlingPDF installiert und mit dem kann man recht nett Seiten entfernen, drehen usw. Auch einzelne PDF`s mergen oder splitten ...
Deswegen der Gedanke das Verzeichniss /Scanner für die Scans oder Bilder zu nutzen um Sie aufzuarbeiten falls nötig. Kann sein das wenn sich ein Ablauf heruskjristaliert im Laufe der Zeit das man dann das ...consume direkt auf /Scanner stellt und alles paperless überläßt. Im Moment dachte ich halt das es so besser sei.
 
Zuletzt bearbeitet:

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
Guten Morgen,
Bei mir ist es auch orange, läuft aber soweit alles.

Halte das mal im Auge
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
@Pixelschubser
Ich wollte gerade mal deinen Stack testen,
leider befindet sich da ein fehle drin,…. ich kann ihn nicht erstellen.
da ist wohl ein fehler beim kopieren passiert

There is an error in the yaml syntax: YAMLSemanticError: Implicit map keys need to be followed by map values
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
@Pixelschubser poste das bitte mal mit der exakten Formatierung unter Verwendung der Code-Funktion hier im Forum. Man kann die yaml-Dateien im Internet in einem Validator überprüfen, zum Beispiel auf yamlchecker.com.

SCR-20240120-hzqh.png
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
Was ist das denn,
zwei Ordner verweisen auf das identische Verzeichnis

- /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
- /volume1/Scanner/DMS:/usr/src/paperless/consume:rw
 
  • Like
Reaktionen: Monacum

renfiela

Benutzer
Mitglied seit
27. Dez 2023
Beiträge
14
Punkte für Reaktionen
6
Punkte
53
Natürlich gibt es beim Posten einer yaml ohne Codeeinrückung Fehler. So kann das nicht klappen.
Den User und die Gruppe hast du ausgelesen 1026:100?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Ja, hatte er oben geschrieben, ist sein Admin-Account.

@Pixelschubser wenn du die obere Zeile auskommentierst, die auf den consume-Folder im Container verweist, funktioniert es dann?
 

Pixelschubser

Benutzer
Mitglied seit
11. Jul 2011
Beiträge
90
Punkte für Reaktionen
6
Punkte
14
@Monacum
Cool, kannte den YAML Cheker nicht und habe beim code posten wohl gepennt (war definitiv zu spät:)
Also YAML Cheker sagt Valid.

Ich kommentiere immer eine der beiden Zeilen aus, je nach dem was ich teste. Wenn ich es so mache:
# - /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
- /volume1/Scanner/DMS:/usr/src/paperless/consume:rw

klappt es nicht (orange).
Wenn ich es so mache:
- /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
# - /volume1/Scanner/DMS:/usr/src/paperless/consume:rw

klappt es.

@Tuxnet
Ich denke das du Ihn nicht erstellen kannst liegt daran das ich plain Text gepostet habe (sry).
Das muss irgendwie vom Text kopieren kommen. Die Auskommentrierung ist vor der Zeile für /volume1/Scanner/DSM (sieh oben).


YAML:
version: "3.9"
services:
  redis:
    image: redis:7
    command:
      - /bin/sh
      - -c
      - redis-server --requirepass redispass
    container_name: PaperlessNGX-REDIS
    hostname: paper-redis
    mem_limit: 512m
    mem_reservation: 256m
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    read_only: true
    user: 1026:100
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    volumes:
      - /volume1/docker/paperless1/redis:/data:rw
    environment:
      TZ: Europe/Berlin
    restart: on-failure:5

  db:
    image: postgres:16
    container_name: PaperlessNGX-DB
    hostname: paper-db
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"]
      timeout: 45s
      interval: 10s
      retries: 10
    volumes:
      - /volume1/docker/paperless1/db:/var/lib/postgresql/data:rw
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperlessuser
      POSTGRES_PASSWORD: paperlesspass
    restart: on-failure:5

  gotenberg:
    image: gotenberg/gotenberg:latest
    container_name: PaperlessNGX-GOTENBERG
    hostname: gotenberg
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-disable-routes=true"
      - "--chromium-allow-list=file:///tmp/.*"
    restart: on-failure:5

  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    container_name: PaperlessNGX-TIKA
    hostname: tika
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    restart: on-failure:5

  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: PaperlessNGX
    hostname: paperless-ngx
    mem_limit: 6g
    cpu_shares: 1024
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    ports:
      - 13080:8000
    volumes:
      - /volume1/docker/paperless1/data:/usr/src/paperless/data:rw
      - /volume1/docker/paperless1/media:/usr/src/paperless/media:rw
      - /volume1/docker/paperless1/export:/usr/src/paperless/export:rw
      - /volume1/docker/paperless1/consume:/usr/src/paperless/consume:rw
#      - /volume1/Scanner/DMS:/usr/src/paperless/consume:rw
      - /volume1/docker/paperless1/trash:/usr/src/paperless/trash:rw
    environment:
      PAPERLESS_REDIS: redis://:redispass@paper-redis:6379
      PAPERLESS_DBENGINE: postgresql
      PAPERLESS_DBHOST: paper-db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperlessuser
      PAPERLESS_DBPASS: paperlesspass
      PAPERLESS_TRASH_DIR: ../trash
#      PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{document_type}/{title}'
      PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
      PAPERLESS_TASK_WORKERS: 1
      USERMAP_UID: 1026
      USERMAP_GID: 100
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: 123456
#      PAPERLESS_URL: https://paperlessngx.yourname.synology.me
#      PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperlessngx.yourname.synology.me
      PAPERLESS_OCR_LANGUAGE: deu+eng
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
    restart: on-failure:5
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_healthy
      tika:
        condition: service_started
      gotenberg:
        condition: service_started
 
Zuletzt bearbeitet:

Pixelschubser

Benutzer
Mitglied seit
11. Jul 2011
Beiträge
90
Punkte für Reaktionen
6
Punkte
14
Guten Morgen,
Bei mir ist es auch orange, läuft aber soweit alles.

Halte das mal im Auge
Das klappt bei mir nicht. Wenn ich ihn über den Browser anspreche kriege ich einfach ein Timeout. Ist das bei dir der eigentliche ngx container? Bei mir ist es nur der eigentliche ngx container, die anderen lauen.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Pass mal die Berechtigungen für den Ordner direkt an, also nicht über die Systemeinstellungen, sondern in der File Station (Rechtsklick auf den Ordner, dann „Eigenschaften“ auswählen, Reiter „Berechtigungen“). Vielleicht sind da andere Rechte gesetzt, warum auch immer.

Dass die anderen Container ohne Probleme laufen, ist normal, Broker und Datenbank können ja in ihre Verzeichnisse lesen und schreiben. Die werden mit dem Startbefehl gestartet, und wenn sie dann keinen Fehler aufweisen, laufen sie auch so lange weiter, bis man ihnen etwas anderes sagt. 😉
 

Pixelschubser

Benutzer
Mitglied seit
11. Jul 2011
Beiträge
90
Punkte für Reaktionen
6
Punkte
14
Ich hab mal nachgeshen. Also Filestation auf den Ordner Scanner/DMS und dort die Eigenschaften angesehen:
1705794104307.png
Der Hausmeister ist der Owner des Ordners. Das ist mein Admin, also der der auch eingelogt wenn ich die GUID abgefragt habe =1026.
Dann auf >Berechtigungen:
1705794222605.png

Alle haben hier aktuell Lese- und Schreibrechte. Das liegt daran das ich in einfach mal über Systemsteuerung>Freigegebene Ordern--Scanner/DMS allen Systembenutzern Lese- und Schreibrechte gegeben habe:
1705795077923.png

Ich wollte dann, fals es klappt, einem nach dem anderen die Rechte wieder wegnehmen um herauszufinden wer den eigentlich der Container-"User" ist.

Aber hat alles nichts geholfen, die Fehlermeldung bleibt die gleiche wie im obigen Post gezeigt. Er kann nicht in das Verzeichnis schreiben.
 

Anhänge

  • 1705794470152.png
    1705794470152.png
    117,1 KB · Aufrufe: 0

renfiela

Benutzer
Mitglied seit
27. Dez 2023
Beiträge
14
Punkte für Reaktionen
6
Punkte
53
Nun gut, dein Hausmeister wird aber nicht den Docker-Container ausführen.
Eher wahrscheinlich wird es root sein und der hat eben andere uid und guid.

Prüf doch einmal, ob du mittels ssh als root (sudo -i) in den Ordner schreiben und dort auch wieder löschen kannst.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Wenn er beim Start des Containers die ID des Hausmeisters mitgibt, führt der doch den Container aus oder liege ich da falsch?

Auf der anderen Seite: Mein Paperless-ngx läuft komplett ohne GID/UID, aber ich nutze auch nicht die Anleitung von Marius in Verbindung mit Watchtower.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat