Hier zeige ich euch, wie ihr die Dokumentenverwaltung paperless-ngx mittels Docker und Traefik auf eurem Server installiert.
Datum | Änderungen |
---|---|
15.05.2022 | Erstellung dieser Anleitung. |
01.07.2022 | Kleine Anpassungen |
09.08.2022 | Anpassung für Docker Compose v2, Kapitel 5.1 hinzugefügt |
31.05.2023 | Anpassung an neue Traefik Anleitung |
06.05.2024 | Gotenberg und Tika hinzugefügt. Danke an @retoineichen |
14.08.2024 | Docker Compose angepasst. Versionen aktualisiert. Danke an @k4zuy4 |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik v2 + 3 – Reverse-Proxy mit CrowdSec im Stack einrichten
1. Verzeichnis erstellen
Zuerst erstellen wir uns ein passendes Verzeichnis.
mkdir -p /opt/containers/paperless-ngx
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.
4. paperless-ngx starten
Nun könnt ihr paperless-ngx starten. Gebt dazu folgendes ein:
docker compose -f /opt/containers/paperless-ngx/docker-compose.yml up -d
Der erste Start dauert etwas länger, da dann noch alles eingerichtet werden muss.
Wenn ihr dann auf eure Webseite “paperless.euredomain.de” geht, solltet ihr folgendes sehen:
5. Benutzer anlegen
Als nächstes legen wir unseren ersten Benutzer (Super User) an. Dazu gebt ihr folgendes in eurer Konsole ein:
cd /opt/containers/paperless-ngx docker compose run --rm paperless-web createsuperuser
Nun seht ihr folgenden Dialog:
5.1 Fehler beheben
Solltet ihr diese Fehlermeldung bekommen, dann ist dieses Kapitel für euch interessant.
Der Container wird laut docker-compose.env mit dem Benutzer (ID) 1000 gestartet. Wenn ihr noch keinen Benutzer auf eurem Server angelegt habt, dann müsst ihr dies nun tun. Gebt dazu einfach folgendes ein:
adduser <Nutzername> Zum Beispiel adduser christian
Anschließend müsst ihr die Docker Container beenden und alle Ordner im den Verzeichnis löschen:
docker compose -f /opt/containers/paperless-ngx/docker-compose.yml down rm -R /opt/containers/paperless-ngx/consume rm -R /opt/containers/paperless-ngx/data rm -R /opt/containers/paperless-ngx/export rm -R /opt/containers/paperless-ngx/media rm -R /opt/containers/paperless-ngx/pgdata rm -R /opt/containers/paperless-ngx/redisdata
Nun könnt ihr euren Container neu starten. Jetzt sollten die Container neu erstellt werden und der Benutzer 1000 sollte die Rechte daran haben. Ihr könnt die Berechtigungen zusätzlich noch anpassen:
docker compose -f /opt/containers/paperless-ngx/docker-compose.yml up -d chown -R 1000:1000 /opt/containers/paperless-ngx/consume
6. Login
Nun könnt ihr euch mit dem eben erstellten “Super User” anmelden. Dazu geht ihr auf eure Webseite “paperless.euredomain.de” und logt euch ein.
Anschließend solltet ihr folgendes sehen:
7. Quellen
https://github.com/paperless-ngx/paperless-ngx
https://paperless-ngx.readthedocs.io/en/latest/setup.html#install-paperless-from-docker-hub
Schöne Anleitung. Danke. Kann ich Paperless irgendwie in Nextcloud einbinden, bzw anders herum, dass meine Dokumente in Paperless eingepflegt werden?
Die Paperless Installation kann leider keine .eml Dateien verarbeiten:
“Test2.eml: Error occurred while consuming document Test2.eml: Error while converting email to PDF: Client error ‘400 Bad Request’ for url ‘http://gotenberg:3000/forms/chromium/convert/html’
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400”
Hat jm. eine Lösung?
Danke für die Anleitung. Läuft seit vielen Monaten perfekt durch.
Gerade eine Dokumentenverwaltung kann viele sensible Daten enthalten, die besonders geschützt werden müssen. Ich habe bei mir Authelia laufen und damit eine Zweifaktor-Authentifizierung davor gesetzt. Leider muss ich mich dann erst per Authelia einloggen und danach kommt dann zusätzlich der Paperless Login. Das ist doppelt gemoppelt und nicht benutzerfreundlich. Es ist möglich, irgendwelche Header weiterzuleiten, um die Authentifizierung an Paperless weiter zu geben. Ich habe habe auch einige Anleitungen gefunden, z. B. hier auf deutsch: https://mobux.de/paperless-ngx-authelia . Die sind aber immer für nginx und nicht für traefik. Leider kenne ich mich mit der Materie nicht gut genug aus, um das für meine Zwecke anzupassen.
Hat da von euch jemand Erfahrung und kann mir helfen? Das müsste doch eigentlich auch in eurem Interesse sein, oder sichert ihr Paperless nicht zuätzlich ab? Ich würde mich sehr freuen, wenn da jemand eine Lösung hat oder (gern auch mit mir zusammen) erarbeiten kann.
Vielen Dank im Voraus 🙂
Bernd
Vielen Dank für die Anleitung.
Die externe Erreichbarkeit ist für mein Anwendungsprofil sehr praktisch, um über mein Smartphone und die App Paperless Share direkt in das Archiv zu pumpen.
Vor zwei Monaten habe ich einen Neustart gemacht mit einem geänderten Heimserver mit AMD-CPU und 16GB RAM. Darauf läuft OMV und Portainer-EE.
Nach einem größeren Import von Literatur und Rechnungen konnte das Training nicht mehr abgeschlossen werden. In den Logs wurde “WARNING memory overcommit…” als Fehler dokumentiert.
Die von mir gefundenen Lösungsvorschläge habe ich umgesetzt und seitdem läuft es stabil. Glaube ich 😉
Memory overcommit in sysctl.conf aktiviert
vm.overcommit_memory = 1
paperless-redis um die Zeile
command: [“redis-server”, “–appendonly”, “no”, “–maxmemory”, “500mb”, “–maxmemory-policy”, “allkeys-lru”]
erweitert.
Grüße
Dennis
Hallo zusammen,
ich habe den Fehler bekommen, dass mein “Origin” nicht richtig wäre. Folgender Fix hat geholfen:
services:
…
paperless-web:
…
environment:
PAPERLESS_URL: ‘https://paperless.meinedomain.de’
…
im Environment vom Service paperless-web einfügen (und meinedomain.de entsprechend anpasssen). Leider ging dies nicht mehr über das .env File, sondern musste direkt im docker-compose.yml stehen.
Fehler sah so aus im Log:
[2024-07-13 08:47:12,201] [WARNING] [django.security.csrf] Forbidden (Origin checking failed – https://paperless.meinedomain.de does not match any trusted origins.): /accounts/login/
Grüße
Yowa
Wenn Interesse besteht, kann ich hier auch noch beschreiben, wie man Paperless so einrichtet, dass er automatisch Dokumente von Ordner x synchronisiert. Sehr praktisch, wenn die gescannten Dokumente ohnehin schon automatisch irgendwo hingelegt werden
Mit der Anleitung ist das DMS rasch aufgesetzt, vielen Dank!
Gemäss https://github.com/paperless-ngx/paperless-ngx/blob/main/docker/compose/docker-compose.postgres-tika.yml läuft die Vorgabe von Paperless NGX selbst schon mit Redis 7 und Postgresql 15.
Zudem macht es Sinn, gemäss dieser docker-compose-Datei auch das Einlesen von Office-Dokumenten gemäss https://docs.paperless-ngx.com/configuration/#tika zu ermöglichen, was mit dem Einfügen der folgenden Passagen bestens klappt:
gotenberg:
image: docker.io/gotenberg/gotenberg:7.10
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
– “gotenberg”
– “–chromium-disable-javascript=true”
– “–chromium-allow-list=file:///tmp/.*”
networks:
– default
tika:
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
networks:
– default
-> Einfügen am Schluss vor:
networks:
proxy:
external: true
Viel Spass beim Ordnung-Machen in euren Dokumenten!
Hallo, danke für die Anleitung.
Leider werden Dokumente die ich Hochlade immer nur in die “Warteschlange” geschoben.
Z.b. beim Hochladen über den Browser steht dann unter der Datei: “Datei hochgeladen, warte…”
Woran kann das liegen?
Großartig – ich stehe vor dem Problem, dass ich nur ein “Bad Gateway” zurückbekomme – allerdings kommt dieser vom CrowdSec … und ich finde nicht wieso …
Es wäre echt super, wenn es zusammen mit Nextcloud laufen würde. Sobald man Paperless installiert hat, dann funktioniert mein Server nicht mehr.
Hallo. Habe Nextcloud bei als Docker laufen. Wollte auch Paperless auf meinem PI installieren, habe es auch installiert. Danach ging meine Nextcloud nicht mehr.
Ich würde gerne einen SMB Shared Ordner einfügen. Welchen Pfad muss ich dafür anpassen? Den consums Pfad oder media?
Hi,
super Anleitung. Was muss ich machen, damit Paperless nur aus dem Netzwerk erreichbar ist, also per IP?
Hallo, was muss ich ändern, wenn ich das System nur lokal und ohne Domain nutzen möchte?
Aus der Anleitung:
Teillösungen:
https://www.himpler.com/blog/lokale-domains-mit-traefik-und-pi-hole/
https://gnulinux.ch/traefik-als-lokaler-reverse-proxy
VG
Thilo
Hallöchen,
in Schritt 5 beim Erstellen des Users stoße ich immer auf folgendes Problem.
ERRORS:
?: PAPERLESS_CONSUMPTION_DIR is not writeable
HINT: Set the permissions of
drwxr-xr-x /usr/src/paperless/consume
to be writeable by the user running the Paperless services
Perfekt funktioniert. Danke
Hallo,
ja das mit dem eigenen Passwort war falsch und die “2x” habe ich auch korrigiert 😉
Viele Grüße
Christian
Seltsam, mit dem paperless Passwort geht. Aber wenn ich das Passwort ändere habe ich den Fehler den auch Ronald hat.
Der Tipp von Martin389 die Zeile POSTGRES_DB:paperless auzukommentieren klappt bei mir nicht.
Vielleicht kann ich Christian das noch einmal ansehen. Oder habt ihr noch eine Idee?
Hallo Ronald,
ich stand ebenfalls vor dem Problem.
Kommentiere die Zeile “POSTGRES_DB: paperless” aus.