Hier zeige ich euch, wie ihr die Dokumentenverwaltung paperless-ngx mittels Docker und Traefik auf eurem Server installiert.
Update
09.08.2022 | Anpassung für Docker Compose v2, Kapitel 5.1 hinzugefügt |
01.07.2022 | Kleine Anpassungen |
15.05.2022 | Erstellung dieser Anleitung. |
Inhaltsverzeichnis
1. Verzeichnis erstellen
Zuerst erstellen wir uns ein passendes Verzeichnis.
mkdir -p /opt/containers/paperless-ngx
2. Docker Compose Datei erstellen
Nun erstellen wir unsere Docker Compose Datei. In dieser Datei sind bereits die passenden Einstellungen für Traefik enthalten. Wenn ihr noch kein Traefik installiert habt, dann könnt ihr dies mit dieser Anleitung tun.
nano /opt/containers/paperless-ngx/docker-compose.yml
Inhalt:
version: "3.4" services: paperless-redis: image: redis:6.0 restart: unless-stopped container_name: paperless-redis volumes: - ./redisdata:/data networks: - default paperless-db: image: postgres:13 restart: unless-stopped container_name: paperless-db volumes: - ./pgdata:/var/lib/postgresql/data environment: POSTGRES_DB: paperless POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless networks: - default paperless-web: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: unless-stopped container_name: paperless-web depends_on: - paperless-db - paperless-redis ports: - 8000: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://paperless-redis:6379 PAPERLESS_DBHOST: paperless-db labels: - "traefik.enable=true" - "traefik.http.routers.paperless.entrypoints=http" - "traefik.http.routers.paperless.rule=Host(`paperless.euredomain.de`)" - "traefik.http.middlewares.paperless-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.paperless.middlewares=paperless-https-redirect" - "traefik.http.routers.paperless-secure.entrypoints=https" - "traefik.http.routers.paperless-secure.rule=Host(`paperless.euredomain.de`)" - "traefik.http.routers.paperless-secure.tls=true" - "traefik.http.routers.paperless-secure.tls.certresolver=http" - "traefik.http.routers.paperless-secure.service=paperless" - "traefik.http.services.paperless.loadbalancer.server.port=8000" - "traefik.docker.network=proxy" - "traefik.http.routers.paperless-secure.middlewares=secHeaders@file" networks: - proxy - default networks: proxy: external: true
Notwendige Anpassungen:
- Ihr müsst noch den 2x Hostnamen anpassen (paperless.euredomain.de)
Wichtig ist, dass ihr das Postgress Passwort NICHT ändert, da dies so in paperless-ngx standardmäßig hinterlegt ist.
3. env erstellen
Nun erstellen wir noch eine weitere Datei, in welcher wir einige Einstellungen vornehmen können.
Dazu gebt ihr folgendes ein:
nano /opt/containers/paperless-ngx/docker-compose.env
Hier fügt ihr folgendes ein:
# The UID and GID of the user used to run paperless in the container. Set this # to your UID and GID on the host so that you have write access to the # consumption directory. USERMAP_UID=1000 USERMAP_GID=1000 # Additional languages to install for text recognition, separated by a # whitespace. Note that this is # different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the # language used for OCR. # The container installs English, German, Italian, Spanish and French by # default. # See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster # for available languages. #PAPERLESS_OCR_LANGUAGES=tur ces ############################################################################### # Paperless-specific settings # ############################################################################### # All settings defined in the paperless.conf.example can be used here. The # Docker setup does not use the configuration file. # A few commonly adjusted settings are provided below. # This is required if you will be exposing Paperless-ngx on a public domain # (if doing so please consider security measures such as reverse proxy) PAPERLESS_URL=https://paperless.euredomain.de # Adjust this key if you plan to make paperless available publicly. It should # be a very long sequence of random characters. You don't need to remember it. PAPERLESS_SECRET_KEY=change-me # Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC. PAPERLESS_TIME_ZONE=Europe/Berlin # The default language to use for OCR. Set this to the language most of your # documents are written in. PAPERLESS_OCR_LANGUAGE=deu
Notwendige Anpassungen:
- Ihr müsst noch den Hostnamen anpassen (paperless.euredomain.de)
- PAPERLESS_OCR_LANGUAGES: Hier könnt ihr noch weitere Sprachen installieren
- PAPERLESS_URL: Gebt hier die selbe URL an wie in der Docker Compose Datei
- PAPERLESS_SECRET_KEY: Hier legt ihr einen sicheren Schlüssel fest
- PAPERLESS_OCR_LANGUAGE: Wählt hier eure Standard-OCR Sprache aus
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
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.