Paperless-ngx: Open-Source Doc Management

In diesem Beitrag möchte ich das Dokumentenmanagement mit der Open Source Software Paperless-ngx vorstellen und zeigen, wie einfach es sein kann, Dokumente zu digitalisieren, zentral zu archivieren und bei Bedarf innerhalb weniger Sekunden wiederzufinden.

Das Ganze lässt sich unkompliziert selbst hosten und ist mit wenigen Schritten eingerichtet. Doch beginnen wir ganz von vorne.

Was ist Paperless-ngx eigentlich und wofür wird es verwendet?

Paperless-ngx ist ein kostenloses Open-Source-Dokumentenmanagementsystem (DMS), mit dem sich sowohl physische als auch digitale Dokumente zentral archivieren und verwalten lassen.

Durch die integrierte OCR-Texterkennung werden eingescannte Dokumente automatisch durchsuchbar gemacht.

Zusätzlich kann Paperless-ngx Dokumente automatisch analysieren, verschlagworten und anhand verschiedener Kriterien wie Korrespondenten, Dokumententypen oder Tags kategorisieren. Dadurch lassen sich selbst umfangreiche Dokumentensammlungen schnell und einfach verwalten und durchsuchen.

Funktionsumfang

Die Liste der Funktionen ist sehr umfangreich. Ich beschränke mich hier auf die Features, die für mich im Alltag den größten Mehrwert bieten. Eine vollständige Übersicht aller Funktionen sowie eine Online-Demo findet ihr in der offiziellen Dokumentation.

  • Alle Dokumente werden lokal auf meinem eigenen Server gespeichert und nicht an externe Cloud-Dienste übertragen.

  • Dokumente können mit Tags, Korrespondenten, Dokumententypen und weiteren Metadaten organisiert werden.

  • Volltextsuche (OCR): Durchsucht gescannte PDFs und Bilder nach beliebigem Text.

  • Automatisierung: Erkennt mithilfe von maschinellem Lernen Absender, Dokumententypen und weitere Informationen automatisch.

  • Workflows: Dokumente können automatisiert verarbeitet und organisiert werden.

  • E-Mail-Import: Dokumente lassen sich automatisch aus einem E-Mail-Postfach importieren

  • Leistungsstarke Suchfunktion: Dokumente sind innerhalb weniger Sekunden auffindbar.

Paperless-ngx eignet sich daher hervorragend für private Anwender, die Rechnungen, Verträge, Briefe und andere Dokumente papierlos archivieren möchten. Statt unzähliger Aktenordner genügt künftig eine einfache Suchanfrage, um das gewünschte Dokument wiederzufinden.

Ein weiterer großer Vorteil ist das Self-Hosting. Sämtliche Dokumente verbleiben auf der eigenen Hardware und werden nicht bei einem Cloud-Anbieter gespeichert. Dadurch behält man jederzeit die volle Kontrolle über seine Daten.

Was wird für Paperless-ngx benötigt?

Wie bereits in einigen meiner anderen Beiträge kommt auch hier wieder Docker zum Einsatz. Wer bereits einen kleinen Home-Server betreibt, kann Paperless-ngx problemlos darauf installieren. Alternativ eignet sich auch ein NAS-System, das Docker oder Docker Compose unterstützt.

Ich betreibe Paperless-ngx über eine docker-compose.yaml-Datei. Die folgende Konfiguration dient als Beispiel und muss gegebenenfalls an die eigene Umgebung angepasst werden.

services:
  broker:
    image: redis:8-alpine
    restart: unless-stopped
    volumes:
     - /data/paperlessngx/redisdata:/data
    networks:
      default:

  db:
    image: docker.io/library/mariadb:latest
    restart: unless-stopped
    volumes:
     - /data/paperlessngx/dbdata:/var/lib/mysql
    environment:
      MARIADB_HOST: paperless
      MARIADB_DATABASE: paperless
      MARIADB_USER: ${DB_USER}
      MARIADB_PASSWORD: ${DB_PASS}
      MARIADB_ROOT_PASSWORD: ${DB_PASS_ROOT}
    networks:
      default:

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    volumes:
     - /data/paperlessngx/data:/usr/src/paperless/data
     - /data/paperlessngx/media:/usr/src/paperless/media
     - /data/paperlessngx/export:/usr/src/paperless/export
     - /data/paperlessngx/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBENGINE: mariadb
      PAPERLESS_DBHOST: db
      PAPERLESS_DBUSER: ${DB_USER}
      PAPERLESS_DBPASS: ${DB_PASS}
      PAPERLESS_DBPORT: 3306
      USERMAP_UID: 1000
      USERMAP_GID: 1000
      PAPERLESS_TIME_ZONE: Europe/Vienna
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_URL: https://paperless.deine-domain.at
      PAPERLESS_ADMIN_USER: ${PAPERLESS_ADMIN}
      PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_PASS}
      PAPERLESS_SECRET_KEY: ${PAPERLESS_KEY}
      PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true}'
    depends_on:
     - db
     - broker
    networks:
      default:
      proxy:
        ipv4_address: 192.168.0.100

networks:
  proxy:
    external: true
  default: 

Datensicherung

Auch ein Dokumentenmanagementsystem ersetzt kein Backup. Deshalb sichere ich meine Paperless-ngx-Daten regelmäßig mit Duplicati. Die Backups laufen einmal lokal auf meine NAS sowie AES Verschlüsselt auf eine Online Storage. Auf die Einrichtung und Konfiguration von Duplicati werde ich in einem späteren Beitrag ausführlich eingehen.