OpenKM ist ein Dokumentenmanagement-System. Es wird hauptsächlich von einer einzigen spanischen Firma gepflegt, daher siehth es zuerst so aus, das es keine echte Community-Software ist. Allerdings steht es komplett unter einer freien Lizenz und ist wie ein echtes gutes Open Source Projekt mit einer guten Dokumentation (in einem Wiki
) versehen. Einige Zusatzmodule scheinen nicht frei zu sein, allerdings enthält, soweit ich das sehe, die freie Basis für die meisten Anwender alles, was man so braucht (http://www.openkm.com/en/product/comparison-of-versions.html Vergleich der Versionen
).
Es gibt eine schöne Demo-Installation, die man sich bei Interesse auf jeden Fall ansehen sollte.
Auf den ersten Blick erscheint die Oberfläche schöner und übersichtlicher als z.B. Alfresco. Mein Eindruck ist, das OpenKM sich vor allem für Anwender interessant macht, die klassische Dokumente (also z.B. Eingangs- und Ausgangspost) verwalten und ordnen wollen, also als Ersatz für einen Aktenschrank. Alfresco hat da eher einen modernen multimedialen Ansatz, der dazu führt, das man zwar leicht (in Alfresco) eine Website bauen kann, aber die Oberfläche zur Ansicht von simplen PDFs etwas unhandlich ist. (Nachdem ich das gesagt habe, sollte ich darauf hinweisen, das OpenKM natürlich auch HTML- sowie Audio- und Videodateien verwalten kann.)
Installation #
Nachdem ich eine ganze Weile mit der Online-Demo herumgespielt und im Wiki gelesen habe, wollte ich die Software nun auch lokal bei mir installieren. Es gibt eine Quick Install
-Seite im Wiki, die verspricht, das man es in 5 Minuten installiert hat. Ich vermute allerdings, das es ein bisschen länger dauert, bis alles so eingerichtet ist, das ich alle Komponenten habe, die ich möchte.
Basisinstallation #
Als root:
# aptitude install openjdk-7-jdk unzip
Als user:
$ unzip openkm-6.3.0-community-tomcat-bundle.zip $ cd tomcat $ bin/catalina.sh start
Jetzt kann man auch schon auf http://localhost:8080/OpenKM/
auf die Weboberfläche gehen. Die 5 Minuten sind klar unterboten. Prima! :-)
deutsches Languagepack #
Die Standardversion enthält eine englische und spanische Übersetzung. Nach der Anleitung
ging es aber ganz einfach, das deutsche Sprachpaket zu installieren. Ich hatte die Programmversion 6.2 installiert und das aktuelle Languagepack, auf das mich das Wiki verwies, war als 6.4 bezeichnet. Das war aber kein Problem. Das schwierigste war noch die Frage nach dem Icon einer deutschen Flagge, die ich mir dann irgendwoher googeln musste.
Die deutsche Übersetzung sieht im übrigen auf den ersten Blick sehr gut aus. :-) Alle normalen Anwenderfunktionen sehen gut übersetzt aus. Sympathischerweise ist z.B. der Administrations-Bereich nicht übersetzt. Mit persönlich gefällt das besser, weil ein User für mich irgendwie immer ein User ist und ich es so leichter habe, die angesprochenen Dinge in der Datenbank oder auch per Google in den Projektforen zu finden. Aber das ist natürlich Geschmackssache!
Entropie #
Ich habe meine Experimente auf einem virtellen System (mit KVM) durchgeführt. Auf einmal stand beim Reboot der Server und machte keinen Mucks mehr. Es dauerte eine Weile, bis ich merkte, das er nach einigen Minuten dann doch lief. Was war geschehen? Dem virtuellen System waren die Zufallszahlen ausgegangen! 8-o
Um die Entropie eines virtuellen Systems zu erhöhen kann man entweder
- ein paar Minuten warten (hahaha...)
- oder die Entropie des Hosts durchreichen http://wiki.qemu-project.org/Features/VirtIORNG
- Tomcat sagen (per CATALINA_OPTS), er soll das weniger zufällige urandom benutzen, das keine Entropie verschlingt: http://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source
. Kurz gesagt geht das so:
export CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"
LDAP #
Die LDAP-Einbindung ist nicht so richtig gut erklärt. Aber letztlich waren dann doch alle Wissensteile da (z.B. http://wiki.openkm.com/index.php/Testing_LDAP_configuration).
Ich benutze natürlich einen OpenLDAP-Server (und kein Active Directory), so das man auf die dementsprechenden Beispiele schgauen sollte. Außerdem hat sich die Konfiguration im Vergleich zu älteren Versionen wohl geändert, weshalb man aufpassen sollte, das man keine Beispiele für den (früher benutzten) JBoss erwischt, sondern welche für Tomcat.
Einführend ist zu sagen, das die grundlegende Authentifizierung on OpenKM vom Tomcat gemacht wird. Dieser muss also eine LDAP-Konfiguration bekommen. Hat man diese am laufen, muss aber dennoch OpenKM selber noch eine eigene Konfiguration haben. Damit holt es dann weitere Infos wie Mailadresse, Klarname, etc. aus dem LDAP.
Man schreibt also einen Teil der Konfiguration in die Datei OpenKM.xml (für den Tomcat) und einen Teil in OpenKM.cfg (für die eigentliche Applikation).
Wenn man das weiss und ein bisschen weiss, wie LDAP so tickt und wie LDAP-Abfragen aufgebaut sind, kann man am besten das Beispiel unter http://wiki.openkm.com/index.php/Ldap-example1
als Basis nehmen.
Als allerletztes muss man noch darauf achten, das OpenKM-Benutzer in der Gruppe ROLE_USER sein müssen. Also habe ich diese im LDAP noch anlegen müssen. (sonst kommt beim Einloggen eine Fehlermeldung "OKM-012015 (GetRootNode)", weil man nicht auf "okm:root" zugreifen darf). Bei der Gelegenheit bietet es sich direkt an, auch einem Benutzer die Rolle ROLE_ADMIN zu geben.
Damit der Maileingang funktioniert, muss ein Benutzer übrigens dennoch in der OpenKM-Datenbank angelegt sein. Weiteres siehe im Abschnitt unten zur Mail.
Vorschau #
Von ganz alleine kann das Programm nur HTML-Dokumente eingebettet anzeigen. Alle anderen Dateiformate werden intern zuerst in das PDF-Format gewandelt. Hierzu benutzt OpenKM das OpenOffice-Paket (als Hintergrund-Server) und einige andere Programme. Diese müssen aber dafür auch installiert sein:
aptitude install libreoffice libreoffice-l10n-de aptitude install imagemagick
Ausserdem wird noch z.B. das Tool pdf2swf benutzt. Das ist zwar eigentlich Teil des Debian-Paketes swftools, aber in der Fehlermeldung habe ich gesehen, das es von einem besonderen Pfad geladen wird. Es ist offensichtlich auch im OpenKM-Paket enthalten. Ein Blick in das Paket zeigte noch mehr Tools. Nun kann man entweder alle diese Pfade anpassen (in OpenKM.cfg) oder folgendermassen den Standard-Pfad gültig machen:
ln -s /home/openkm/tomcat1/ /opt/openkm
Mail #
Die Möglichkeit, Mails zu importieren
, scheint es erst seit relativ kurzer Zeit zu geben.
Ein Administrator kann auf dem Tab "Administration" Benutzer anlegen. Dort ist es dann auch möglich, für den Benutzer Mailkonten einzurichten. Mit meinem Mailserver war dies problemlos möglich. Dies Mails werden dann alle paar Minuten aktuell abgeholt und in eine nach Datum sortierte Ordnerstruktur eingeordnet.
Allerdings werden diese Mails scheinbar nicht wie vollwertige Dokumente behandelt. Sie werden z.B. nicht indexiert und sind daher auch nicht per Suchfunktion zu finden.
Damit ist diese Funktion auf den ersten Blick nicht so sinnvoll. Ich denke jedoch, das der Gedanke eher ist, das Mails so automatisch dem System hinzugefügt werden und sodann manuell zugeordnet werden sollen. D.h. man kann sie dann "zur Ablage" in ein entsprechendes Verzeichnis der Taxonomie (so heisst das gemeinsame Hauptverzeichnis der abgelegten Dokumente) verschieben. Man kann diesen Schritt natürlich ggf. auch automatisieren (siehe nächster Abschnitt).
Automation #
Eine sehr spannende Möglichkeit ist die sogenannte Automation
von OpenKM. Man kann als Administrator Regeln vorgeben, die automatisch ausgeführt werden, wenn bestimmte Bedingungen erfüllt sind.
Das bedeutet z.B., das man, wenn man in ein Unterverzeichnis "Kunden" eine Datei neu einstellt (Event), deren Titel das Wort "Angebot" enthält (Validator), diese Datei automatisch die Kategorie "Angebot" zugeordnet bekommt (Aktion). Natürlich gibt es etliche andere Events, Validatoren und Aktionen.
Aus mir nicht ganz verständlichen Gründen ist die Automation standardmäßig nicht aktiviert und muss erst mit ein paar SQL-Befehlen eingeschaltet
werden.
Die Automation kann man auch selber erweitern. Einerseits kann man komplett neue Aktionen in Java programmieren (siehe Extension Guide
, insbesondere auch http://wiki.openkm.com/index.php/Extend_automation_6.4 Extend Automation
). Andererseits dürfte es in den meisten Fällen völlig ausreichend sein, das http://wiki.openkm.com/index.php/Scripting_-_OpenKM_6.2 Skripting
zu benutzen. Skripte werden in Beanshell geschrieben und können einige http://wiki.openkm.com/index.php/Automation_events_table Variablen
benutzen, die entsprechend der Events gesetzt werden.
Es gibt einige schöne Beispiele für Skripte im Wiki (auch auf der etwas älteren Scripting-Seite zu OpenKM 5.1
) sowie in den Foren. Ich selber benötige eine Automation, um Mails anhand eines bestimmten zu erkennenden Musters in bestimmte Ordner und Kategorien einzusortieren. Dazu gibt es bereits eine http://forum.openkm.com/viewtopic.php?f=6&t=5360&start=15 Lösung im Forum
, die ich bei Gelegenheit ausprobieren und anpassen möchte.
OCR #
OpenKM erlaubt es, verschiedene Programme zum OCR (Optical Character Recognition) einzusetzen
. Hiermit kann man eingescannte Dokumente "lesen" und auch für die Suche indexieren.
DAs beste freie Programm ist wohl Tesseract
. Wer es perfekt möchte, kann aber auch das kommerzielle Abby einbinden.
Bisher habe ich selber OCR noch nicht ausprobiert.
WebDAV #
Das WebDAV Protokoll erlaubt es, mittels normalen Filezugriffen auf den Dokumentbaum zuzugreifen. Dabei kann man entweder im Filebrowser des Linux-Systems eine "dav:" oder eine "http:"-URL eingeben oder man benutzt davfs, um den Baum direkt auf Filesystemebene einzubinden.
Jeder Schreibzugriff an einer Datei im Baum erzeugt eine neue Version, so das man später die Geschichte eines Dokumentes rekonstruieren kann. So hat man z.B. Zugriff auf alte Versionen von Verträgen etc.
Auch hier gibt es im Wiki eine Anleitung für WebDAV
. Dieses muss zuerst freigeschaltet werden. Übrigens steht dort, das man die entsprechende Property in der Administrator-Ansicht des Programmes eingeben soll und nicht in die Konfigurations-Datei. (Das hatte ich zuerst überlesen, was mich eine Stunde extra gekostet hat.) Sobald man das gemacht hat, kann man die angegebene URL z.B. in Thunar (oder jedem anderen guten Dateiexplorer) eingeben und fertig.
CMIS #
Auch per CMIS-SChnittstelle kann man auf den Dokumentenbaum zugreifen. Bei CMIS handelt es sich um eine standardisierte Schnittstelle, um auf Dokumentenmanagement-Systeme zuzugreifen. Hier bietet es sich also an, eigene Erweiterungen zu programmieren. IN Java benutzt man hierzu als Bibliothek am besten Apache Chemistry.
Ein wichtiges Programm hat allerdings bereits eine CMIS-Schnittstelle. Und zwar kann man mit OpenOffice (bzw. LibreOffice) direkt per CMIS auf das System zugreifen. Das erlaubt, aus dem Office-Programm heraus Dokuemente auszuchecken (d.h. für andere zu sperren), zu bearbeiten und dann als neue Version (ggf. mit entsprechendem Versions-Kommentar) wieder einzustellen. Damit das funktioniert, muss man übrigens LibreOffice auf den eigenen Datei-Requester einstellen. Der Rest ist dann einfach, aber im Wiki und in einem Erklärvideo auch nochmal gut erklärt.