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

RS_Tobim

Benutzer
Mitglied seit
08. Jan 2025
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
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
 

Dog6574

Benutzer
Mitglied seit
15. Sep 2014
Beiträge
182
Punkte für Reaktionen
1
Punkte
18
Ich denke, dass latest falsch ist. Du musst die Postgres Version festlegen:

db:
image: postgres:15.4
 

unsicher

Benutzer
Mitglied seit
26. Dez 2009
Beiträge
80
Punkte für Reaktionen
7
Punkte
8
Ich habe bei allen Einträgen :latest stehen.
Tika
Redis
Gotenberg
Paperless


Arbeite allerdings nicht mit postgress.
 

RS_Tobim

Benutzer
Mitglied seit
08. Jan 2025
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
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
 

JohneDoe

Benutzer
Mitglied seit
06. Jan 2025
Beiträge
112
Punkte für Reaktionen
50
Punkte
28
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
 

Stationary

Benutzer
Sehr erfahren
Mitglied seit
13. Feb 2017
Beiträge
4.109
Punkte für Reaktionen
1.411
Punkte
214
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

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.229
Punkte für Reaktionen
1.043
Punkte
224
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?
 

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
2.494
Punkte für Reaktionen
1.163
Punkte
174

RS_Tobim

Benutzer
Mitglied seit
08. Jan 2025
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
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
 

renfiela

Benutzer
Mitglied seit
27. Dez 2023
Beiträge
16
Punkte für Reaktionen
6
Punkte
53
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:

RS_Tobim

Benutzer
Mitglied seit
08. Jan 2025
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
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
 

deltapapa

Benutzer
Mitglied seit
06. Jan 2019
Beiträge
119
Punkte für Reaktionen
8
Punkte
24
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
 

renfiela

Benutzer
Mitglied seit
27. Dez 2023
Beiträge
16
Punkte für Reaktionen
6
Punkte
53
Ich selbst habe es auch mit einer MariaDB am Laufen. Ergibt Sinn, wenn man mehrere Instanzen mit einer MySQL-DB nutzt.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.240
Punkte für Reaktionen
810
Punkte
154
  • Like
Reaktionen: Tuxnet und deltapapa

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
135
Punkte für Reaktionen
10
Punkte
18
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?
 

JohneDoe

Benutzer
Mitglied seit
06. Jan 2025
Beiträge
112
Punkte für Reaktionen
50
Punkte
28
Guck dir den Changeblog an. Wenn es keine breaking Changes gibt, dann kannst du direkt auf latest gehen.
 

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
135
Punkte für Reaktionen
10
Punkte
18
Nach Rückfrage auf "github" kann ein Update von 2.11.6 direkt auf 2.14.3 durchgeführt werden. Keine "breaking changes" :)
 

FizzyMUC

Benutzer
Mitglied seit
09. Feb 2023
Beiträge
216
Punkte für Reaktionen
17
Punkte
18
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.
 

FizzyMUC

Benutzer
Mitglied seit
09. Feb 2023
Beiträge
216
Punkte für Reaktionen
17
Punkte
18
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 :)
 

MooDoo

Benutzer
Mitglied seit
21. Mai 2018
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
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