PaperMerge – Dokumentenmanagement für zu Hause

Wer kennt es nicht, im Laufe des Lebens sammeln sich immer mehr Verträge, Versicherungen, Rechnungen oder sonstige Dokumente an. Wenn man dann einmal ein Dokument sucht, ist dies meist mit einem großen Zeitaufwand verbunden da man erst schauen muss in welchem Ordner sich das Dokument befindet. Wesentlich bequemer und einfacher ist es hier sich auf die Weboberfläche seines eigenen Dokumentenmanagement System zu verbinden und danach mittels Volltextsuche zu suchen.

Darum möchte ich heute die Software Papermerge vorstellen. Diese Software ist Open Source und kann in einem Docker Container genutzt werden. Dadurch gestaltet sich die Installation als äußerst einfach. Im Grunde benötigt man nur einen Server welcher bereits über die Docker Komponente verfügt. Mit folgendem Befehl kann das System mittels Docker-Compose in Betrieb genommen werden.

---
version: "2.1"
services:
  papermerge:
    image: lscr.io/linuxserver/papermerge
    container_name: papermerge
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Vienna
      - REDIS_URL= #optional
      - DOCKER_MODS=linuxserver/mods:papermerge-multilangocr
      - OCRLANG=deu
    volumes:
      - <PfadZumSpeichern>/config:/config
      - <PfadZumSpeichern>/papermerge/data:/data
    ports:
      - 8000:8000
    restart: unless-stopped

Nachdem die Software heruntergeladen und gestartet wurde, muss man im config Verzeichnis die Datei „papermerge.conf.py“ bearbeiten. Hier gehören zwei Zeilen geändert damit die OCR Software Deutsch unterstützt. Nach einem Neustart des Containers ist Deutsch standartmäßig aktiv.

OCR_DEFAULT_LANGUAGE = "deu"

OCR_LANGUAGES = {
    "deu": "Deutsch",
}

Jetzt kann man sich mit dem Admin Account anmelden und neue Benutzer anlegen sowie das Admin Kennwort ändern. Auch das Erstellen von Gruppen und den jeweiligen Berechtigungen ist möglich. Das automatische TAG Zuweisung sowie das automatische Verschieben von Dokumenten, wird anhand von Regeln gesteuert. Für mehr Informationen gibt es eine Dokumentation welche in englischer Sprache verfügbar ist.

Automatischer Dokumentenimport mit PowerShell

Für diejenigen unter euch die ihre Dokumente nicht über die Weboberfläche hochladen, sondern dies automatisiere möchten, habe ich hier ein PowerShell Script geschrieben, welches PDF-Dokumente aus einem Ordner automatisch importiert und die Quelldateien löscht. Dieses Script kann als Scheduled Task eingerichtet werden. Dazu muss vorher in der Weboberfläche ein Token generiert werden welcher später im Script angegeben werden muss.

$PaperMergeUrl = ""
$Token = ""
$FilesPath = "C:\temp\ScannedDokuments"

Get-ChildItem -Path $FilesPath -Filter *.pdf | foreach {
    $DocName =  $_.Name
    Invoke-RestMethod -Uri "$PaperMergeUrl/api/document/upload/$DocName" -Headers @{Authorization="Token $Token"}  -Method Put -InFile "$FilesPath\$DocName" -ContentType 'application/pdf'
    Remove-Item -Path "$FilesPath\$DocName"
}