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.
Neueste Kommentare