Paperless-NGX

paperless-ng

Dokumentenmanagement

Voraussetzung

  • Proxmox
  • LXC Ubuntu 22.04-3 Installation
  • Docker
  • Docker-Compose
  • Portainer

Inhaltsverzeichnis

Was ist Paperless?

Paperless soll einen möglichst papierlosen Alltag/Büro ermöglichen, in dem z. B. Rechnungen, Dokumente, Handbücher, Anleitungen, Quittungen, Kassenzettel usw. nicht nur archiviert, sondern auch durchsuchbar gemacht werden. Verarbeitet werden können die Formate PDF, TXT, PNG, JPEG, docx, doc, xls, xlsx, odt, ods, odp, pptx. Dabei ist es egal ob man diese per E-Mailanhang erhält oder selber einscannt, bzw. mit dem Smartphone fotografiert. Die Nutzung von Paperless erfolgt in einem beliebigen aktuellen Webbrowser. Dabei ist es unerheblich ob Paperless auf dem lokalen PC, auf einem Server im LAN oder auf einem entfernten Server läuft. Dokumente lassen sich auch mit der Paperless Mobile App direkt fotografieren und auf den Server zur weiteren Verarbeitung übertragen. Auch lässt sich Paperless mit IMAP E-Mailpostfächer verbinden. Über konfigurierbare Filter scannt Paperless die eintreffenden E-Mails und archiviert diese oder deren Anhänge vollautomatisch.

Dokumente lassen sich bestimmten vorab selbst definierten Ordner, Kategorien und Tags zu weisen z. B. Bank, Büroausgaben, Fahrkosten usw. Dabei lernt Paperless die Dokumente korrekt zu zuweise.

Paperless verarbeitet die Dokumente per OCR. Das heißt, dass alle Dokumente durchsuchbar werden. Suche ich nach einem Bestimmten Begriff, Name, Datum, kann Paperless sämtliche Dokumente danach durchsuchen. Das ermöglicht das schnelle Auffinden von Informationen und Dokumenten.

Quellen/Ressourcen:

Update April 2024

Paperless wurde um die Funktionen ergänzt, Word und Libreoffice Dokumente zu verarbeiten, sowohl Text, Tabellen als auch Präsentationen, sowie Emails.

Unterstützte Formate:

Microsoft Office:
doc
docx
xls
xlsx
ppt
pptx
LibreOffice:
odt
ods
odp
Bilder:
JPEG
PNG
Sonstige:
PDF
TXT

Dazu wird Paperless um die beiden Container Gotenberg und Tika ergänzt.

 

Für Neuinstallationen wurde die „Angepasst .yml“ Konfiguration bereits ergänzt, so das mit dem Punkt Installation unter Portainer fortgefahren werden kann.

Alle anderen bestehenden Installationen müssen um folgende Einträge ergänzt werden.

Das lässt sich wieder bequem wie in der Anleitung in Portainer über den Web Editor bewerkstelligen. Eingefügt wird das ganze direkt unter environment:

Menü –> Stacks –> Paperless –> Editor .yml ergänzen und anschließend auf –> Update the stack.

Docker
				      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998

  gotenberg:
    image: docker.io/gotenberg/gotenberg:8
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    restart: unless-stopped
			

Installation unter Portainer

Hinweis:
Ihr habt die Möglichkeit die Orginal .yml an eure Bedürfnisse an zu passen oder ihr nutz weiter unten meine angepasste als Vorlage.

Wir öffnen die Paperless Github Seite:

Dort öffnet ihr die Datei docker-compose.portainer.yml

Geht rechts oben auf den Button Copy raw file

(Es ist wichtig das ihr die Datei als RAW kopiert!)

Geht in Portainer in das Menü Stacks –> Add stacks –> Web editor und fügt dort die zuvor kopierte .yml Datei ein.

Den Text habe ich entfernt, damit es etwas übersichtlicher ist.

Vergebt einen Namen z.B paperless-ngx.

 

Port:

„8010:8000“
Die 8010 dar nicht bereits durch einen anderen Container belegt sein. Ist dies der Fall, einfach einen beliebig freien Port fergeben. Port 8000 darf nicht geändert werden, das ist der Container.

 

Pfad:

Hier muss ./export und ./consume angepasst werden.

Bei mir befindet sich Docker unter:

(Solltest du ein anderes Verzeichnis nutzen, dann pass den Pfad dementsprechend an.)

				/var/lib/docker
			

und die Volumes (Verzeichnisse)

				/var/lib/docker/volumes
			

Original:

  • volumes:
    – data:/usr/src/paperless/data
    – media:/usr/src/paperless/media
    – ./export:/usr/src/paperless/export
    – ./consume:/usr/src/paperless/consume
 

Angepasst:

  • volumes:
    – data:/usr/src/paperless/data
    – media:/usr/src/paperless/media
    – /var/lib/docker/volumes/paperless-ngx/export:/usr/src/paperless/export
    – /var/lib/docker/volumes/paperless-ngx/consume:/usr/src/paperless/consume

Anpassen der UID und GID:

Nutzt man wie ich Proxmox mit einem LXC Container, gibt es nur den Benutzer root.

Welche UID und GID ihr habt, könnt ihr im Terminal erfahren über den Befehl id

Original (für die meisten Benutzer):

USERMAP_UID: 1000
USERMAP_GID: 1000

Bei LXC Container:

USERMAP_UID: 0
USERMAP_GID: 0

Da Paperless bei mir nur über VPN aus dem Internet erreichbar sein wir, ist es kein Problem das hier das ganze unter root läuft.

Konfiguration Anpassungen

Details findet man hier für eine individuelle Anpassung:
https://docs.paperless-ngx.com/configuration/

Interessieren tut uns hier nur der Bereich environment

 

Original:

environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db

 

Anpassungen:

Das sind meine Anpassungen die jedoch zwingend erforderlich sind. Optionale Anpassungen könnt ihr anhand der Dokumentation einfügen. Alle Parameter werden einfach unter enviroment: eingefügt.

environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_SECRET_KEY: Dein Passwort
PAPERLESS_ADMIN_USER: Dein admin Name
PAPERLESS_ADMIN_PASSWORD: Das admin Passwort
PAPERLESS_OCR_LANGUAGE: deu für Deutsch
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998

gotenberg:
image: docker.io/gotenberg/gotenberg:8
restart: unless-stopped
command:
– „gotenberg“
– „–chromium-disable-javascript=true“
– „–chromium-allow-list=file:///tmp/.*“

tika:
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped

 

Seit ihr mit allem fertig, klickt auf Deploy the stack.

Geduld, dass kann eine Weile dauern!

Erreichbar ist Paperless nun über http://deine-ip:8010

Übersicht Portainer

Stack:

Container:

Angepasste .yml Datei

Wollt ihr keine individuellen Einstellungen, dann könnt ihr auch meine Vorlage nutzen. Vergesst dabei nicht, Secret Key und Admin Passwort zu ändern.

Docker
				version: "3.4"
services:
  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:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - /var/lib/docker/volumes/paperless-ngx/export:/usr/src/paperless/export
      - /var/lib/docker/volumes/paperless-ngx/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_SECRET_KEY: (freiwählbar)
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: (frei wählbar)
      PAPERLESS_OCR_LANGUAGE: deu
      USERMAP_UID: 0
      USERMAP_GID: 0
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998

  gotenberg:
    image: docker.io/gotenberg/gotenberg:8
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    restart: unless-stopped


volumes:
  data:
  media:
  pgdata:
  redisdata:
			

Fernzugriff (VPN)

Für den Fernzugriff nutze ich eine VPN Verbindung über WireGuard.
Moderen Router bringen VPN in der Regel schon von Haus aus mit.
Wer eine aktuelle FritzBox nutzt, kann mit wenigen Klicks den integrierten WireGuard Server in betrieb nehmen.

Als App für den Zugriff auf Paperless nutze ich:

 

Paperless Mobile:

 

Direktdownload:

 

F-Droid:

https://f-droid.org/de/
(Hier muss jedoch die Erweiterung Droid-ify installiert werden.)

oder

 

Google Play:

 

Quellen

Schreibe einen Kommentar