Meine Paperless-NGX Installation

Paperless-NGX vereinfacht den Umgang mit ‚Papierkram‘ enorm. Kurz gesagt scannt ihr eure Dokumente ein, schiebt sie in einen Ordner von Paperless-NGX und die Software erledigt den Rest. Mehr Informationen findet ihr auf der offiziellen Projekt-Seite.

Auf meinem Proxmox-Server läuft eine VM mit einem anderen Dokumentenmanagement-Sytem. Diese VM verfügt über genügend Ressourcen, um auch noch Paperless-NGX auszuführen. Ich hatte einige Schwierigkeiten, die vorgesehenen Speicherpfade auf mein NAS umzubiegen. Letztendlich war es so einfach. Daher hier mein Vorgehen, um es Menschen mit dem gleichen Vorhaben zu erleichtern.

Unter Debian reichten mir folgende zwei Zeilen, um Docker zu installieren.

sudo apt install docker
sudo apt install docker-compose

Danach installierte ich mir noch zum Verwalten von Docker-Containern Portainer.

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Das war einfach – wenn man weiß, wonach man suchen muß.

Jetzt könnt ihr euch über die Weboberfläche von Portainer mit dem Usernamen admin anmelden: https://192.168.xxx.xxx:9443

Nun legt ihr unter Stacks einen neuen Stack an und gebt ihm einen erklärenden Namen (z. Bsp. paperless-ngx). Im Web editor gebt ihr folgendes ein und paßt die Speicherorte eurer Daten entsprechend an. Den Port musste ich bei meiner Installation auf 8010 ändern, da der ursprünglich vorgesehene Port schon genutzt wurde.

version: "3.4"
services:
# Integration von Office-Dokumente
  # tika:
     # image: ghcr.io/paperless-ngx/tika
     # container_name: tika
     # ports:
     # - "9998:9998"
     # restart: always
  # gotenberg:
     # image: gotenberg/gotenberg:7.4
     # restart: always
     # container_name: gotenberg
     # ports:
     # - "3044:3000"
     # - "3000:3000"
     # command:
     # - "gotenberg"
     # - "--chromium-disable-routes=true"
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data

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

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8010:8000"
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
        - /mnt/NAS-paperless-data:/usr/src/paperless/data
        - /mnt/NAS-paperless-media:/usr/src/paperless/media
        - /mnt/NAS-paperless-export:/usr/src/paperless/export
        - /mnt/NAS-paperless-consume:/usr/src/paperless/consume
      
      # - data:/usr/src/paperless/data
      # - media:/usr/src/paperless/media
      # - ./export:/usr/src/paperless/export
      # - ./consume:/usr/src/paperless/consume
     
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_ADMIN_USER: EUER_USER
      PAPERLESS_ADMIN_PASSWORD: EUER_PASSWORT
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_OCR_CLEAN: clean
      # PAPERLESS_TIKA_ENABLED: 1
      # PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000/forms/libreoffice/convert#
      # PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_ENABLE_UPDATE_CHECK: true
      PAPERLESS_CONSUMER_POLLING: 10
      PAPERLESS_OCR_IMAGE_DPI: 300
      PAPERLESS_FILENAME_FORMAT: "{created_year}/{created_month}/{correspondent}/{title}"
      PAPERLESS_FILENAME_DATE_ORDER: YMD
      PAPERLESS_CONSUMER_DELETE_DUPLICATES: true
      # PAPERLESS_FILENAME_FORMAT: "{correspondent}/{created_year}/{created}-{correspondent}-{document_type}-{title}"
      # PAPERLESS_IGNORE_DATES: "yyyy-mm-dd
            
# 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: 100
# 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
# 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.


volumes:
  data:
  media:
  pgdata:
  redisdata:

Etwas weiter unten auf der Seite findet ihr den Schalter ‚Deploy the stack‘. Nachdem ihr diesen betätigt und einen Augenblick gewartet habt, könnt ihr unter Containers nachsehen, ob alle Paperless-Instanzen laufen. Unter der Adresse http://192.168.xxx.xxx:8010 könnt ihr nun euer Paperless-NGX öffnen. Die Anmeldedaten habt ihr im Stack unter PAPERLESS_ADMIN_USER und PAPERLESS_ADMIN_PASSWORD festgelegt.

Die Pfade unter volumes entsprechen den mount-Points, welche ich vorher auf meinem Server angelegt habe.

Euch viel Freude mit Paperless-NGX und den Entwicklern meinen Dank.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert