Wenn man beispielsweise ein PDF-Dokument der Bank oder Krankenkasse erhält, ist es üblich, dass dieses verschlüsselt und mit einem Passwort geschützt ist. Läd man ein solches Dokument in paperless-ngx hoch, geht das grundsätzlich, aber die automatische Metadatenzuweisung und auch die Texterkennung funktionieren nicht.
Um das Dokument in paperless-ngx zu öffnen muss zudem jedes mal das Passwort eingegeben werden. Um den Workflow zu vereinfachen gibt es eine automatische Lösung mittels Pre-Consume-Skript.
Das Skript benötigt zwingend eine Liste aller Passwörter, welche für die Entschlüsselung verwendet werden sollen. Das ist für Dokumente mit unerwarteten Passwörtern unpraktikabel, aber beispielsweise für die Dokumente meiner Krankenkasse, welche stets die Versichertennummer des Empfängers hierfür nutzt, ausreichend.
Das Skript „removepassword.py“ ist im ersten Schritt herunterzuladen und in den Docker-Container von paperless-ngx einzubinden:
wget https://raw.githubusercontent.com/mahescho/paperless-ngx-rmpw/refs/heads/main/removepassword.py && chmod +x removepassword.py
Zusätzlich legen wir eine passwords.txt mit dem Inhalt aller Passwörter mit Zeilenumbrüchen getrennt, also untereinander, an:
123456
ABCDE
passwort
Passwort
test
usw.
Einbindung beispielsweise so:
services:
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- broker
- gotenberg
- tika
ports:
- "127.0.0.1:8000:8000"
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
- ./removepassword.py:/usr/src/paperless/scripts/removepassword.py
- ./passwords.txt:/usr/src/paperless/scripts/passwords.txt
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_PRE_CONSUME_SCRIPT: /usr/src/paperless/scripts/removepassword.py
Den Docker-Stack neu laden:
docker compose up -d
Quellen und weiterführende Informationen: