Dokumentenmanagement mit Docker

vorhergehende Artikel in: Docker Virtualisierung
13.09.2020

Ich habe zur Vervollständigung meines Docker-Zoos nach einem Dokumenten-Management-System gesucht, das dem Katalog meiner Anforderungen entsprach

Anforderungen

Die Anforderungen waren:
  • Self-hosted on Docker
  • Erfassung maschinell erstellter PDFs
  • Erfassung gescannter Dokumente
  • Volltextsuche
  • OCR für gescannte Dokumente
  • public API
  • benutzbares Web-Frontend
  • Batch-erfassung von Dokumenten z.B. über Input-Verzeichnis

Untersuchte Systeme

LogicalDoc

LogicalDoc sah nach ersten Tests sehr vielversprechend aus - unter anderem stellt das Projekt vorbildlicherweise eine docker-compose-Datei zur Verfügung. Es bietet eine API an und ermöglicht die automatisierte Archivierung mehrerer Dokumente über eine WebDAV-Schnittstelle. Maschinell erstellte PDFs werden für die Volltextsuche indiziert, ohne eine aufwendige OCR zu bemühen. Leider ist die Arbeit und die Suche mit gescannten Dokumenten mit diesem System nicht möglich - denn obwohl das System selbst OpenSource ist und als OCR-Lösung Tesseract eingesetzt wird muss man dafür bezahlen, dieses Feature nutzen zu können.

PaperMerge

PaperMerge bietet ebenfalls eine vorgefertigte docker-compose-Datei an. Es ist leicht in Betrieb zu nehmen und bietet eine API an. Allerdings werden hier auch maschinell erstellte PDFs durch die OCR bearbeitet, was natürlich im Vergleich zu Systmen, die das erkennen und die Textextraktion ohne OCR vornehmen können wesentlich langsamer funktioniert. OCR funktioniert automatisch und liefert erwartbare Ergebnisse. Allerdings scheint das System generell noch nicht ausgereift genug für den Einsatz im täglichen Betrieb vor allem für nicht-IT-affine Benutzer: So kommt es etwa beim Versuch, einen Ordner übder das Web-Frontend zu löschen, der noch Dokumente enthält zu einem Fehler, der dem Benutzer einen Stacktrace aus den Eingeweiden des Systems anzeigt. Generell ist auch der interne Workflow noch verbesserungswürdig: Lädt man ein Dokument hoch, beginnt der Prozess der OCR sofort. Löscht man das Dokument wieder bevor die OCR abgeschlossen ist, wird die OCR trotzdem weiter fortgeführt - sogar nach einem zwischenzeitlichen Neustart des Docker-Containers. Die OCR ist so konfiguriert, dass die Erkennung einzelner Seiten mit konfigurierbaren Pausen stattfindet, so dass der Rechner auch bei der Verarbeitung großer Dokumente noch genug Ressourcen für andere Aufgaben hat. Daher muss man sich nicht unbedingt darum kümmern, für die Container Regeln via cgroups anzulegen.

Teedy

Teedy ist eine Lösung, für die man auch bezahlen kann. Prinzipiell ist eine selbst gehostete Docker-Variante möglich, allerdings ist die Dokumentation dazu praktisch nicht existent und die Default-Datenbank ist H2. Möchte man eine andere benutzen, findet man dazu nur vage Hinweise in irgendwelchen Foren. Ich habe daher keine umfassenden Tests mit diesem System durchgeführt.

Docspell

Docspell habe ich trotz emsiger Bemühungen nicht starten können und mich daher nicht mit Tests des Systems beschäftigen können.

Mayan EDMS

Mayan ist das System gewesen, nach dessen Test ich keine weiteren Lösungen mehr gesucht habe, da es alle meine Anforderungen erfüllte. Die zur Verfügung gestellte docker-compose-Datei konnte ich meinen Wünschen entsprechend anpassen (Traefik-Unterstützung, aktuelle Version der Postgres-Datenbank,...). Maschinell erstellte PDFs werden ohne OCR indiziert. Die OCR ist so konfiguriert, dass die Erkennung einzelner Seiten mit konfigurierbaren Pausen stattfindet, so dass der Rechner auch bei der Verarbeitung großer Dokumente noch genug Ressourcen für andere Aufgaben hat. Daher muss man sich nicht unbedingt darum kümmern, für die Container Regeln via cgroups anzulegen. Das System kennt zwei Arten von überwachten Ordnern - in der einen Sorte abgelegte Dokumente werden sofort eingelesen und gegebebenfalls der OCR zugeführt und indiziert. Die andere Sorte erzeugt lediglich ein Vorschaubild - hier wird der Anwender lediglich informiert, dass neue Dokumente vorliegen und kann entscheiden, wie er damit verfahren möchte.

Artikel, die hierher verlinken

OsterProjekt 2022 - Tesseract OCR: Ergebnisse

19.04.2022

Der Osterurlaub 2022 ist um - Zeit, die Ergebnisse meines Projektes für diese Zeit vorzustellen:

Inkrementelles Backup mit Snapshots und rsync

15.09.2020

Hier mein aktuelles Backup-Script mit dem ich seit einiger Zeit erfolgreich meine diversen Home-Verzeichnisse und die Volumes meines Docker-Zoos sichere - und einige Links, die mir bei der Erstellung des Skripts geholfen haben:

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Multi-User-WebDAV, Docker, GitHub

    17.11.2019

    Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...

    Weiterlesen...

Neueste Artikel

  • Migration der Webseite und aller OpenSource Projekte

    In eigener Sache...

    Weiterlesen...
  • AutoHideToolbar für Java Swing

    Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.

    Weiterlesen...
  • Integration von EBMap4D in die sQLshell

    Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.