Danke Frage hat sich schon erledigt, mußte den Container neu starten.
Paperless-NGX Installationsanleitung in der Container Station
- vore76
- Unerledigt
-
-
Guten Abend,
ich bin seit gestern Besitzer einer TS-246. Betreibe diese momentan mit 32GB RAM, einer 500GB NVME und 2x4TB HDDS im RAID1.
Paperless hatte ich bereits unter Proxmox laufen. Mein Plan ist ein Umzug auf das NAS.
Vielen Dank für die Anleitung. Sie hat mir den Start sehr erleichtert.
Paperless läuft. Media, Export und Consume liegen im Freigabeordner "Paperless" auf dem RAID1, die anderen Ordner auf der SSD.
Über die Weboberfläche kann ich Dokumente zu Paperless hinzufügen. Allerdings kann ich keine Dokumente im Consume-Ordner ablegen. Dazu fehlen mir die Berechtigungen. Im ControlPanel des NAS habe ich R/W für den Benutzer erlaubt.
Muss ich noch irgendwo anders Berechtigungen für die Verzeichnisse setzen?
Ich möchte zum einen meinen Scanner befähigen, die Dokumente per SMB direkt in den Consume Ordner zu speichern. Zum anderen möchte ich meinen Export der nun alten Paperless Instanz im Export-Verzeichnis ablegen, um diesen dort wieder importieren zu können.Vielen Dank für die Hilfe!
PS
So sieht meine yaml Datei aus
Code
Alles anzeigenversion: '3.6' 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 consume mappen environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBPASS: xxx 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}' 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/Paperless/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 -
Im ControlPanel des NAS habe ich R/W für den Benutzer erlaubt.
Ich gehe davon aus, dass du damit die Freigabeberechtigung meinst.
Dann könnte evtl. die Berechtigung des Ordners selbst auf der Dateiebene nur für den admin gesetzt sein.
Dazu einmal über die Konsole (SSH) oder einem FTP-Porgramm (SFTP) an das NAS anmelden und dort die Berechtigungen kontrollieren.
-
Danke für das Feedback.
Ich habe einen neuen Freigabeordner direkt auf dem Consume Verzeichnis erstellt. Nutze ich dieses, um von meinem Windows-Rechner aus zuzugreifen, funktioniert es und ich kann ein Dokument ablegen.
Nutze ich den Freigabeordner, der auf das darüberliegende Verzeichnis Paperless zeigt und navigiere dann in das Consume Verzeichnis, klappt es nicht.
Was die Berechtigungen angeht, bin ich noch nicht so richtig im Thema. Hier fehlt mir Wissen.
Ich nutze WinSCP um per SSH zuzugreifen. Dort sehe ich einen Unterschied in den Berechtigungen zwischen Paperless und consume.
Was ich nun allerdings genau tun muss, damit der Freigabeorder Paperless funktioniert, weiß ich ehrlich gesagt nicht.
"nas-admin" ist der von mir manuell angelegte Admin-Account des NAS. "admin"
pasted-from-clipboard.png pasted-from-clipboard.png
Edit:
OK, ich habs "irgendwie" hingebogen.
Habe den "admin" Account aktiviert und mich mit diesem per WinSCP am NAS angemeldet. Dann habe ich die Berechtigungen geändert und nun scheint es fürs erste zu klappen.
Guten Morgen,
ich benötige nochmal Hilfe.
Paperless läuft. Ich habe mein Backup erfolgreich eingespielt und Dokumente im Conusme-Verzeichnis werden verarbeitet.
In der Weboberfläche von Paperless erhalte ich aber einen 404 Fehler, wenn ich ein Dokument bearbeiten möchte. Es wird kurz die Seite angezeigt, dann kommt der Fehler. Das passiert sowohl bei den aus dem Backup wiederhergestellten Dokumenten als auch bei neu hinzugefügten Dokumenten.
Die Preview im Browser funktioniert und auch das herunterladen des Dokuments funktioniert.
Ich kann das Dokument weder unter "\Paperless\media\documents\originals\" noch unter "\Paperless\media\documents\archive\" finden.
Mich irritiert generell, dass obwohl ich die gesamte Installation von Paperless mit meinem selbst erstellten Admin-Account (nas-admin) vorgenommen habe, trotzdem der default-adim (admin) bei vielen Verzeichnissen als Eigentümer hinterlegt ist. Ist das normal und richtig?
Und direkt noch eine Frage:
Muss ich Schritt 5 der Anleitung (superuser anlegen) durchführen, wenn ich in meiner compose.yaml bereits die Definition eines Admin-Accounts hinterlegt habe?
-
Hallo,
ich habe mich nun dem ganzen auch versucht. Leider scheitert es an Dingen bei denen ich nicht weiter weiß. Vielleicht kann mir ja da jemand zur Hand gehen. Ich danke schon mal dafür.
Code
Alles anzeigenPaperless-ngx docker container starting... Installing languages... Package tesseract-ocr-eng already installed! Package tesseract-ocr-deu already installed! Creating directory scratch directory /tmp/paperless Adjusting permissions of paperless files. This may take a while. Waiting for PostgreSQL to start... Connected to PostgreSQL Waiting for Redis... Connected to Redis broker. Apply database migrations... Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 279, in ensure_connection self.connect() File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 256, in connect self.connection = self.get_new_connection(conn_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py", line 332, in get_new_connection connection = self.Database.connect(**conn_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/psycopg/connection.py", line 98, in connect attempts = conninfo_attempts(params) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/psycopg/_conninfo_attempts.py", line 50, in conninfo_attempts raise e.OperationalError(str(last_exc)) psycopg.OperationalError: [Errno -2] Name or service not known self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 413, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 459, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 107, in wrapper res = handle_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/core/management/commands/migrate.py", line 118, in handle executor = MigrationExecutor(connection, self.migration_progress_callback) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 58, in __init__ self.build_graph() File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 235, in build_graph self.applied_migrations = recorder.applied_migrations() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 89, in applied_migrations if self.has_table(): ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 63, in has_table with self.connection.cursor() as cursor: ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 320, in cursor return self._cursor() ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 296, in _cursor self.ensure_connection() File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 278, in ensure_connection with self.wrap_database_errors: ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 279, in ensure_connection self.connect() File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 256, in connect self.connection = self.get_new_connection(conn_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py", line 332, in get_new_connection connection = self.Database.connect(**conn_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/psycopg/connection.py", line 98, in connect attempts = conninfo_attempts(params) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/psycopg/_conninfo_attempts.py", line 50, in conninfo_attempts raise e.OperationalError(str(last_exc)) django.db.utils.OperationalError: [Errno -2] Name or service not knownund
Code
Alles anzeigenThe files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "en_US.utf8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /var/lib/postgresql/data ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... Etc/UTC creating configuration files ... ok 2025-02-10 14:05:35.490 UTC [38] FATAL: could not write to file "pg_wal/xlogtemp.38": No space left on device child process exited with exit code 1 initdb: removing contents of data directory "/var/lib/postgresql/data" running bootstrap script ... The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "en_US.utf8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". -
Ich würde an dieser Stelle zuerst nachsehen.
-
Danke, jedoch hatte ich zuvor alles platt gemacht. Knapp 4tb sind frei.
-
Hast du an der docker_compose.yml evtl. eigene Anpassungen an den Pfadnamen vorgenommen?
Hast du Zugriff auf die Konsole (SSH)?
Wenn ja, dann schau einmal mit df, welches Device/Laufwerk vollgelaufen ist.
-
Hallo Zusammen!
..... Daher habe ich mit entschlossen meine Infos in ein kleines Tutorial zu verbasteln, damit es anderen Nutzer in Zukunft etwas leichter fällt, Paperless-NGX zu installieren.....
Danke für die tolle Anleitung. Damit habe selbst ich es hinbekommen paperless-ngx zu laufen zu bringen und testweise mal 2 Dokumente einzulesen. Jetzt geh ich aber erst mal schlafen, ausprobiert wird Morgen.
-
Hast du an der docker_compose.yml evtl. eigene Anpassungen an den Pfadnamen vorgenommen?
Danke, hier war der Hase begraben. Nun gehts.
-
Das ist möglich, die Erweiterung könnte so aussehen:
In welche Datei muss ich das rein schreiben ?
-
Dazu gibt es mehrere Möglichkeiten auch davon abhängig, wie du die Paperless-Datenbank sicherst.
Du könntest in dem Containerordner von Paperless zB /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx/ eine Datei remove_paperless_backup.sh erstellen und dort den Code einfügen.
Dazu dann einen Eintrag in die Crontab einfügen: 0 2 * * * /share/CACHEDEV1_DATA/Container/container-station-data/application/paperless-ngx/remove_paperless_backup.sh, damit das Script jeden Tag um 2 Uhr auszuführen.
Dabei musst du sicherstellen, dass die Datei ausführbar ist, entweder einfach über WinSCP oder über die Konsole chmod 755 remove_paperless_backup.sh
-
Nach dem Neustart meines QNAPs ist mir aufgefallen, dass der paperless-db-backup Docker nicht gestartet ist.
Ich habe das gleiche Problem ausser dass paperless-dbBackup von selbst startet und läuft. Outbox bleibt leer. Pfade habe ich zig mal kontrolliert geht trotzdem nicht.
-
Outbox bleibt leer.
Hast du einmal das Backup von der Konsole gestartet?
Ich hatte in dieser Woche auch den Fall, dass das Backup nicht erstellt wurde.
Bei der manuellen Ausführung des Backups ist mir eine Fehlermeldung aufgefallen, das ein Dokument noch an einem altem Ordner im Paperless-Medienordner erwartet wurde, wobei das Dokument durch meine Änderung von Paperless an einen anderen Speicherort verschoben wurde.
Nachdem ich das Dokument an den ursprünglichen Ordner aus der Fehlermeldung kopiert hatte, lief das Backup wieder komplett durch.
Evtl. ist dies bei dir auch der Fall.
-
Nch einem Update von Paperless funktionieren auch die Sicherungen und erscheinen in Outbox.
Ich musste aber die Zeile mit Version: '3.6' löschen dass es keine Warnung mehr gibt. Ist dies wichtig?
-
einfach löschen diese Versions-Zeile. Wird nicht mehr gebraucht.
-
Hallo, kann ich paperless-ngx auch so ändern, dass ein Zugriff über https möglich ist? Es gibt ein youtubevideo, welches erklärt, wie das bei synology klappt.
-
Hallo zusammen,
ich möchte gerne von ECO DMS auf paperless-ngx umstellen. Zuvor möchte ich jedoch die paperless-ngx Funktionen durchtesten. Die Installation hat dank dieser tollen Anleitung auch prima funktioniert. Vielen Dank dafür.
Einen Fehler bekomme ich jedoch beim Umwandeln von E-Mails.
Code2021 445454811818454540167761674.eml: Error occurred while consuming document 2021 445454811818454540167761674.eml: Error while converting email to PDF: Client error '404 Not Found' for url 'http://gotenberg:3000/forms/chromium/convert/html' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404Dieser Fehler wurde bereits im laufe dieses Threads bereits behandelt, jedoch komme ich leider nicht zur Lösung. Vielleicht hat irgendjemand eine Idee bzw. Tipp für mich.
QNAP 473e
Anbei meine YAML:
Code
Alles anzeigenversion: '3.6' networks: paperless-net: external: false services: broker: container_name: paperless-redis image: redis:7 networks: - paperless-net volumes: - /share/CACHEDEV1_DATA/Paperless-Docs/redis:/redis restart: unless-stopped db: container_name: paperless-db image: postgres:16 networks: - paperless-net restart: unless-stopped volumes: - /share/CACHEDEV1_DATA/Paperless-Docs/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/data:/usr/src/paperless/data - /share/CACHEDEV1_DATA/Container/paperless/media:/usr/src/paperless/media - /share/CACHEDEV1_DATA/Container/paperless/export:/usr/src/paperless/export #den Ordner "export" von Paperless auf den Ordner Outbox unter Paperless-Docs/Outbox mappen - /share/CACHEDEV1_DATA/Container/paperless/import:/usr/src/paperless/consume #den Ordner "consume" von Paperless auf den Ordner Inbox unter Paperless-Docs/Inbox mappen environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBPASS: dkoptc@1976 PAPERLESS_ADMIN_USER: admin PAPERLESS_ADMIN_PASSWORD: XXX PAPERLESS_ADMIN_MAIL: root@localhost USERMAP_UID: 1000 USERMAP_GID: 100 PAPERLESS_OCR_LANGUAGES: eng deu PAPERLESS_TIME_ZONE: Europe/Berlin PAPERLESS_OCR_LANGUAGE: deu PAPERLESS_FILENAME_FORMAT: "{created_year}/{document_type}/{title}" 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/Paperless-Docs/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:8.0.1 command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-disable-routes=true" - "--chromium-allow-list=file:///tmp/.*" - "--api-timeout=200s" - "--libreoffice-auto-start=true" - "--libreoffice-restart-after=0" 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-netVielen Dank vorab und viele Grüße
Inst
-
Hallo,
ich kann machen was ich möchte, ein Backup mit exporter bekomme ich einfach nicht hin. Es tut sich nichts obwohl Pfade stimmen
Reicht es nicht die ganzen paperless Ordner zu sichern. Die dump wird täglich angelegt.So lange es keine neue Datenbankversion gibt ist es ja wohl einfach. Zurückspielen und fertig. Was genau fange ich mit dem dump an? Wie spiele ich diese zurück? Ist diese dann ausreichend bei Versionswechel falls man zurückspielt?
-