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

Guten Tag in die Runde.

Ich muss mich ganz kurz mal vorstellen.
Seit paar Monaten bin ich stolzer Besitzer einer DS224+
Primär, da mich meine alte MEDION NAS nach doch erst 20 Jahren verlassen hat. :)
(hätte schon nach 5 Jahren gehofft dass sie bald hinüber ist)
Die Medion hat eher als Datengrab gedient.
Nun, da meine Frau schon 2x Opfer einer defekten SD Karte im Smartphone wurde,
habe ich mich entschieden mit der Synology und PHOTOS das ganze zuhause zu speichern.

Nun ergeben sich immer mehr Möglichkeiten und somit bin ich auf paperless ngx gestoßen.

Bevor ich die Anleitung hier von @Monacum gefunden habe, habe ich schon eine andere über Youtube
ausprobiert. Diese hat zwar funktioniert aber leider habe ich bei der Installation irgendwas mit den Rechten oder den Usern
falsch verstanden bzw. falsch gemacht...
Paperless hat meine consume Ordner nicht erreichen können und somit auch nicht abfragen können.

Da ich das ganze via Container Manager gemach habe, dachte ich mir ich lösche einfach alles und versuche die Installation hier mit dieser Anleitung.

Nun habe ich ein Problem... mein postgres stellt sich quer.

Ich bekomme es nicht zum laufen, da ich die Meldung im Protokoll bekommt, dass der
/var/lib/postgres/data nicht leer ist und somit der postgres nicht starten kann.

Kann mir jemand sagen wie ich das ganze wieder hinbekomme?
Mein Problem ist, dass Container Manager / Docker für mich komplettes neuland sind.
Ich habe keine Ahnung wie ich in die Dateistruktur der Container gelangen kann um den Ordner zu löschen oder zu leeren.

Ich hoffe mir kann hier jemand helfen.

postgres war laut der anderen Anleitung "latest" zu verwenden, laut dem obigen
  • docker-compose.yml
soll aber version 15 genutzt werden. Kann hier auch ein Problem liegen?

Danke für eure Hilfe.
Scanner und dutzende Aktenordner liegen schon da, dass mein Büro mal etwas schlanker wird.

grüße Tobi
 
Ich denke, dass latest falsch ist. Du musst die Postgres Version festlegen:

db:
image: postgres:15.4
 
Ich habe bei allen Einträgen :latest stehen.
Tika
Redis
Gotenberg
Paperless


Arbeite allerdings nicht mit postgress.
 
Ich denke, dass latest falsch ist. Du musst die Postgres Version festlegen:

db:
image: postgres:15.4
Danke, ich habe das schon 2-3mal versucht, einmal wie in der Anleitung mit der 15, nochmal mit 16, dann nochmal mit 15...
es geht nicht, immer kommt die Meldung
/var/lib/postgres/data is not empty folder
und dann "hängt" sich beim postgres was auf und es ist nur schwer diese Instanz wieder zu stoppen dass ich sie löschen kann.
Wo speichert postgres diese Daten ab?
Ich finde keinen /var/lib/postgres/data Ordner.
Ist der innerhalb des containers?
Das ist ja ein Variablen Ordner, wird dieser bei z.B. einen Neustart gelöscht? oder neu angelegt?

Kann ich in der docker-compose.yml den Ordner
/var/lib/postgres/data umbenennen, dass er einen anderen nutzt, der leer ist?
was macht hier Sinn? Macht da überhaupt Sinn oder sollte man die Ursache bekämpfen?

Tobi
 
Zeig erstmal was du genau eingerichtet hast. Die Ordner sind immer innerhalb vom Container. Ich würde dir dringend raten bevor du paperless durch eine Anleitung installierst, befasse dich erstmal mit Docker. Oder was machst du wenn mal Probleme auftreten? Oder wenn du nicht weißt was du tust und dir alles zerschießt..
Und wegen deinem Problem noch mal. Wenn du den Ordner gamappt hast, dann liegt er außerhalb vom Container und den musst du löschen. Wenn du nichts angegeben hast, dann ist alles nur im Container und beim Löschen ist er natürlich auch weg. Daher poste mehr informationen wie du es eingerichtet hast und eigene dir wenigstens die Grundlagen von Docker an
 
postgres war laut der anderen Anleitung "latest" zu verwenden, laut dem obigen
  • docker-compose.yml
soll aber version 15 genutzt werden. Kann hier auch ein Problem liegen?
Prinzipiell kann mit postgres:latest gearbeitet werden, genau wie mit jeder anderen definierten Version von postgres. Das Problem hierbei ist nicht die Installation oder die Verwendung als solche, sondern zukünftige Updates von paperless-ngx.
Kommt es hier zu einem Versionssprung (Upgrade) von postgres (also beispielweise von 17.x auf 18.x), so wird die Datenbank inkompatibel und kann nicht mehr gelesen werden. Daher ist es entweder üblich, postgres nicht als latest einzubinden, sondern als konkrete Version, die dann auch immer beibehalten wird, oder aber mindestens vor jedem Update die Datenbank zu exportieren, so daß bei einem postgres Update/Upgrade die Daten in die neue Version importiert werden können.
 
  • Like
Reaktionen: deltapapa
Die erste Frage wäre jetzt, mit welcher Version von Postgres Paperless damals eingerichtet worden ist. Wenn das Version 14 war, dann funktioniert es natürlich nicht, wenn du das jetzt mit Version 15 oder Version 16 probierst. Ganz so, wie Stationary es schon geschrieben hat.

Die Fehlermeldung klingt für mich danach, als ob ein Update der Datenbank stattgefunden hat. Und für dieses Update muss der Ordner leer sein. Sprich, die Datenbank muss anschließend manuell wieder importiert werden und dann kann man auch Paperless danach wieder starten. Ich habe dazu hier auch eine Anleitung geschrieben. Wenn man einmal dahinter gekommen ist, wie das mit den Daten funktioniert, dann ist ein Update der Datenbank kein Hexenwerk. Man muss sich aber ein bisschen mit Docker und allem drum und dran beschäftigen wollen, sonst ist das schwierig. Dann lieber MariaDB verwenden, die hat dieses Problem bei den Major-Releases nicht.

Die Frage aller Fragen, bevor du jetzt irgendetwas machst, ist, hast du ein Backup?
 
Danke schon mal für Eure Antworten,

Ich versuche jetzt mal der Reihe nach ab zu arbeiten.

Ich bin aktuell nach @Monacum s Anleitung vorgegangen und habe dieses
docker-compose.yml genutzt.

Code:
version: "3.6"
services:
  broker:
    container_name: redis
    image: redis:latest
    restart: unless-stopped
    volumes:
      - ../redis:/data

  db:
    container_name: postgres
    image: postgres:16
    restart: unless-stopped
    volumes:
      - ../pgdata:/var/lib/postgresql/data
      - /volume1/docker/paperlessngx/exportpostgres:/var/lib/postgresql/data/backup
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    container_name: paperlessngx
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - 34343:8000
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ../data:/usr/src/paperless/data
      - ../media:/usr/src/paperless/media
      - ../export:/usr/src/paperless/export
      - ../consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      USERMAP_UID: 1024
      USERMAP_GID: 100
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_ADMIN_USER: paperless
      PAPERLESS_ADMIN_PASSWORD: 
      PAPERLESS_OCR_LANGUAGE: deu+eng

volumes:
  data:
  media:
  pgdata:
  redisdata:

Vor jedem versuch habe ich die Ordner
Code:
/volume1/docker/paperlessngx
welche ich davor angelegt habe wieder komplett geleert. (date, media, consue, export,.....)

Zur nächsten Frage, da ich bisher in der "alten" Instanz nur 1 Dokument gescannt habe
stellt sich für mich die Frage nicht ob ich BackUp habe.

ganz am anfang habe ich postgres mit :latest eingebunden.
Aber wie schon gesagt, war mit der Anleitung irgendwie der Wurm drin.

Also alles neu und andere Hilfe suchen. Somit bin ich hier gelandet.
Ich habe es bereits mit postgres 15 und 16 versucht aber beides funktioniert nicht.

Deshalb und da ich komplett neu Anfangen möchte habe ich auch gefragt, ob und wie ich die Ordner
ausfindig machen kann um diese zu löschen.

Danke nochmal für den Link, (auf der Seite war ich schon mal aber dachte, es betrifft mich nicht)
jedoch werde ich mir das jetzt mal durchlesen und testen.

Danke auch noch fürs Video!

Falls jemanden was auffällt in der .yml oder in meinen Text. Gerne her mit euren Infos.

Danke schon im voraus.

Tobi
 
Da ich weder monacums Anleitung kenne und auch nicht weiß, wie du dein docker-compose.yml nun ausgeführt hast, stellt sich für mich auch die Problematik dar mit den Pfaden die du verwendest.

YAML:
volumes:
      - ../pgdata:/var/lib/postgresql/data

Grundlegend, hast du den Container über den Containermanager erstellt oder über ein Script mittels Aufgabenplaner?
Hast du Zugriff per ssh?

Liegt der Ordner pgdata wirklich eine Ebene tiefer als die docker-compose.yml?
Ansonsten würde ich an deiner Stelle ggf. mit absoluten Pfaden wie /volume1/docker/paperlessngx/pgdata arbeiten.
Vorher natürlich die Ordner, welche benötigt werden, dort auch schon anlegen.

  • /volume1/docker/test/redis
  • /volume1/docker/test/exportpostgres
  • /volume1/docker/test/data
  • /volume1/docker/test/media
  • /volume1/docker/test/export
  • /volume1/docker/test/consume
Ich habe es einfach mal bei mir unter /volume1/docker/test erstellt und die folgende von mir angepasste docker-compose.yml genutzt.
pgdata lasse ich als unbind volume erstellen!

1736521801199.png
YAML:
services:
  broker:
    container_name: paperless-redis
    image: redis:latest
    restart: unless-stopped
    volumes:
      - ./redis:/data

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

  webserver:
    container_name: paperlessngx
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - 34343:8000
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
  
environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      USERMAP_UID: 1024
      USERMAP_GID: 100
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_ADMIN_USER: paperless
      PAPERLESS_ADMIN_PASSWORD:
      PAPERLESS_OCR_LANGUAGE: deu+eng

volumes:
  data:
  media:
  pgdata:
  redisdata:

1736521912410.png

1736522038508.png
 
Zuletzt bearbeitet:
Guten Abend,

ja die Pfade waren richtig. sind eine Ebene darunter.
ebenso habe ich es nochmal versucht und nochmal scheiterte es.
Bei irgendwas ist da der Wurm drin.

Nun hab ich die Tipps der letzten Schreiber hier nochmal aufgearbeitet und habe mich dann
für mariaDB entschieden. Aber da ich sowieso alles neu machen konnte hab ich auch gleich mal geschaut was
das tika und gotenberg ist.
Hat seinen Charme und man ist nicht nur auf PDF festgenagelt.

Nun läuft es und ich bin schon fleißig am einscannen... :-)

Danke für eure Hilfe!

Tobi
 
Moin,
ich selber habe sehr gute Erfahrung mit der Anleitung von Marius und Portainer gemacht (https://mariushosting.com/how-to-install-paperless-ngx-on-your-synology-nas/). Wenn du dich damit beschäftigst, lernst du auch eine ganze Menge über Docker / Container. Wenn du keine Dokumente drinnen hast, hilft es wirklich viel zu probieren und immer wieder von vorne anzufangen, bis es läuft.
Ich selber nutze mehrere PNGX Instanzen, um immer mal wieder etwas neues auszuprobieren, export, import, DB Update etc. Und tatsächlich, hatte ich in meiner produktiven Instanz auch Latest bei der DB drinnen stehen, und beim letzten Update ging dann nichts mehr. Zum Glück mache ich jeden Abend einen Export, somit konnte ich alles Platt machen, Neue PNGS Instanz aufgesetzt mit der neusten DB, Backup importieren und weiter.

Mit MariaDB werde ich die Tage auch mal rumspielen, evtl. steht dann ein wechseln an.

Viel Spaß noch weiterhin,
deltapapa
 
Ich selbst habe es auch mit einer MariaDB am Laufen. Ergibt Sinn, wenn man mehrere Instanzen mit einer MySQL-DB nutzt.
 
  • Like
Reaktionen: Tuxnet und deltapapa
Hallo zusammen,

aktuell nutze ich noch die Version 2.11.6. Kann ich über Portainer einen einfachen Recreate direkt auf Version (:latest [wäre 2.14.3]) durchführen, oder ist es sinnvoll/besser erst von Version 2.11.6. --> 2.12 --> 2.13 --> und ann auf :latest zu gehen?
 
Guck dir den Changeblog an. Wenn es keine breaking Changes gibt, dann kannst du direkt auf latest gehen.
 
Nach Rückfrage auf "github" kann ein Update von 2.11.6 direkt auf 2.14.3 durchgeführt werden. Keine "breaking changes" :)
 
Hi!
Wenn ich in meiner docker-compose, USERMAP_UID und USERMAP_GID auf einen speziellen User "paperless" gesetzt habe, kann man dann irgendwie rausfinden, wie alle Berechtigungen der Ordner im Paperless-Dockerverzeichnis sind? Ich habe blöderweise chown über mein gesamtes Docker Verzeichnis gebügelt und nun startet Paperless nicht mehr. Außerdem kann ich nun nicht mehr prüfen, wie die Rechte vorher waren.
Ich erhalte (aus der PostGRES DB heraus) den Fehler "FATAL: could not open file "global/pg_filenode.map": Permission denied". Bin richtig verzweifelt gerade.
 
Mein Problem aus #1318 wurde hier gelöst: https://www.synology-forum.de/threads/paperless-ngx-rechte-zerschossen.137277/

DANKE!

Als nächstes Thema werde ich mir aber mal anschauen, wie eine vernünftige Backup Routine für Paperless aussieht. Schön und gut, dass alles im Hyper Backup ist, aber auch wie man die Datenbank export bzw. wieder einliest und Co. Da gibts ja hier genug Material :)
 
Moin, ich habe ein Problem beim Installieren. Bin nach diesem Video vorgegangen.

Beim Starten von Paperless habe ich folgenden Log:
Code:
paperlessngx-paperless-ngx-1
date    stream    content
2025/01/29 17:35:04    stdout    Waiting 5s
2025/01/29 17:35:04    stdout    Error: Timeout connecting to server.
2025/01/29 17:35:04    stdout    Redis ping #0 failed.
2025/01/29 17:32:56    stdout    Waiting for Redis...
2025/01/29 17:32:55    stdout    Connected to PostgreSQL
2025/01/29 17:32:52    stdout    Waiting for PostgreSQL to start...
2025/01/29 17:32:52    stdout    Adjusting permissions of paperless files. This may take a while.
2025/01/29 17:32:52    stdout    Creating directory scratch directory /tmp/paperless
2025/01/29 17:32:52    stdout    Paperless-ngx docker container starting...
2025/01/29 17:27:56    stdout    Waiting 5s
2025/01/29 17:27:56    stdout    Error: Timeout connecting to server.
2025/01/29 17:27:56    stdout    Redis ping #0 failed.
2025/01/29 17:25:48    stdout    Waiting for Redis...
2025/01/29 17:25:47    stdout    Connected to PostgreSQL
2025/01/29 17:25:44    stdout    Waiting for PostgreSQL to start...
2025/01/29 17:25:44    stdout    Adjusting permissions of paperless files. This may take a while.
2025/01/29 17:25:44    stdout    Creating directory scratch directory /tmp/paperless
2025/01/29 17:25:44    stdout    Paperless-ngx docker container starting...

In Redis habe ich diesen Log:
Code:
redis-1
date    stream    content
2025/01/29 17:22:21    stdout    1:M 29 Jan 2025 16:22:21.232 # Possible SECURITY ATTACK detected. It looks like somebody is sending POST or Host: commands to Redis. This is likely due to an attacker attempting to use Cross Protocol Scripting to compromise your Redis instance. Connection from 192.168.178.53:53459 aborted.

Ich weiß aber nicht, wieso Paperless nicht auf Redis zugreifen darf. Habe die Firewall mal deaktiviert, aber das schafft keine Abhilfe.
Kann mir wer helfen?
 
 

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