ADMIN

2022

07

2022-06-29T12:00:00

Mobiles Arbeiten

SCHWERPUNKT

062

Home Office

Collaboration

Freie Office-Pakete selbst hosten

Cloud? Aber sicher!

von Andreas Stolzenberger

Veröffentlicht in Ausgabe 07/2022 - SCHWERPUNKT

Der vollwertige PC oder das Notebook weichen immer häufiger schlanken mobilen Endgeräten wie Tabletts oder Chromebooks. Diese nutzen Cloudapplikationen anstatt lokaler Programme. Haben Anwender hierbei Bedenken gegenüber Google oder Microsoft als Cloudanbieter, bieten sich selbstgehostete Office-Dienste wie Collabora Online und OnlyOffice an. So manche Hürden gilt es dabei jedoch zu umschiffen.

Immer mehr Anwender verlagern ihre Applikationen vom lokalen Rechner in eine Cloud. Warum auch eine Applikation auf lokalen Geräten hegen und pflegen, wenn die volle Funktionalität auch im Browser bereitsteht? Das Ganze funktioniert dann natürlich auf unterschiedlichen Endgeräten vom PC über das Chromebook bis hin zum Smartphone. Google und Microsoft offerieren bereits in den kostenfreien Gmail-, Outlook- und Hotmail-Konten umfassende Office-Funktionen, sodass das Gros der Anwender eigentlich auf eine separate Office-Installation verzichten kann. Doch wie üblich bleibt bei allen Clouddiensten eine gewisse Unsicherheit. Was macht Google mit meinen Textdokumenten und wer schaut bei Microsoft womöglich in meine Excel-Tabellen. Wie allgemein bekannt sein dürfte, fallen die Regeln für Daten- und Persönlichkeitsschutz bei US-amerikanischen Unternehmen deutlich laxer aus als im Bereich der EU.
Verständlich also, dass viele Anwender zwar den Komfort einer cloudbasierten Office-Umgebung nutzen möchten, ohne dabei aber ihre Daten einem Cloudanbieter anzuvertrauen. Hierfür gibt es Online-Office-Lösungen, die Anwender auf ihren eigenen Servern im lokalen Datacenter oder einem gemieteten Cloudsystem betreiben können. In diesem Artikel betrachten wir zwei solcher Angebote zum selber Hosten: Collabora Online (LibreOffice) [1] und OnlyOffice [2].
LibreOffice für die Cloud
Das freie Office-Paket LibreOffice sollte den meisten Anwendern geläufig sein – viele werden sogar täglich damit arbeiten. Die Anfänge der Suite reichen zurück bis in die 1980er-Jahre. Ursprünglich entwickelte das Hamburger Unternehmen Star Division die kommerzielle Office-Suite "Star Office", bis diese von Sun Microsystems übernommen und in das quelloffene OpenOffice umgewandelt wurde. Fragwürdige Lizenzen des späteren Besitzers Oracle führten zur Abspaltung des LibreOffice-Projekts. Oracle hat OpenOffice mittlerweile an die Apache Foundation übergeben, die Weiterentwicklung der freien Office-Suite treibt in der Zwischenzeit jedoch maßgeblich die LibreOffice-Community voran.
Immer mehr Anwender verlagern ihre Applikationen vom lokalen Rechner in eine Cloud. Warum auch eine Applikation auf lokalen Geräten hegen und pflegen, wenn die volle Funktionalität auch im Browser bereitsteht? Das Ganze funktioniert dann natürlich auf unterschiedlichen Endgeräten vom PC über das Chromebook bis hin zum Smartphone. Google und Microsoft offerieren bereits in den kostenfreien Gmail-, Outlook- und Hotmail-Konten umfassende Office-Funktionen, sodass das Gros der Anwender eigentlich auf eine separate Office-Installation verzichten kann. Doch wie üblich bleibt bei allen Clouddiensten eine gewisse Unsicherheit. Was macht Google mit meinen Textdokumenten und wer schaut bei Microsoft womöglich in meine Excel-Tabellen. Wie allgemein bekannt sein dürfte, fallen die Regeln für Daten- und Persönlichkeitsschutz bei US-amerikanischen Unternehmen deutlich laxer aus als im Bereich der EU.
Verständlich also, dass viele Anwender zwar den Komfort einer cloudbasierten Office-Umgebung nutzen möchten, ohne dabei aber ihre Daten einem Cloudanbieter anzuvertrauen. Hierfür gibt es Online-Office-Lösungen, die Anwender auf ihren eigenen Servern im lokalen Datacenter oder einem gemieteten Cloudsystem betreiben können. In diesem Artikel betrachten wir zwei solcher Angebote zum selber Hosten: Collabora Online (LibreOffice) [1] und OnlyOffice [2].
LibreOffice für die Cloud
Das freie Office-Paket LibreOffice sollte den meisten Anwendern geläufig sein – viele werden sogar täglich damit arbeiten. Die Anfänge der Suite reichen zurück bis in die 1980er-Jahre. Ursprünglich entwickelte das Hamburger Unternehmen Star Division die kommerzielle Office-Suite "Star Office", bis diese von Sun Microsystems übernommen und in das quelloffene OpenOffice umgewandelt wurde. Fragwürdige Lizenzen des späteren Besitzers Oracle führten zur Abspaltung des LibreOffice-Projekts. Oracle hat OpenOffice mittlerweile an die Apache Foundation übergeben, die Weiterentwicklung der freien Office-Suite treibt in der Zwischenzeit jedoch maßgeblich die LibreOffice-Community voran.
Neben den Destopversionen der Programme für viele Betriebssysteme und CPU-Architekturen gibt es auch eine Serverversion. Allerdings liefert das LibreOffice-Projekt selbst keine Binärdistribution hierfür, nur die Sourcen. Das britische Unternehmen "Collabora Productivity" vertreibt eine kommerzielle LibreOffice-Implementierung mit Support als "Collabora Office". Der Anbieter verfügt ebenfalls über die gehostete Version "Collabora Online". Da diese auf Open Source basiert, gibt es auch eine freie Variante. Um sie von der kommerziellen Variante abzugrenzen, bezeichnet sie Collabora als "Collabora Online Developer Edition", kurz "Code". Der Code-Server läuft nicht als Standalone-Produkt, da er auf zusätzliche Tools für das Benutzer- und Dateimanagement angewiesen ist. Folglich integriert sich das Online-Office in einen Clouddienst, der diese Funktionen bereitstellt: beispielsweise NextCloud.
Um die vielen verschiedenen Optionen zu beschreiben, wie Sie einen Nextcloud-Server mit oder ohne Container und Docker Compose aufsetzen, müssten wir einen eigenen Artikel dazu veröffentlichen. Für das Office-Setup nehmen wir den relativ bequemen Weg des PHP-Autoinstallers innerhalb einer klassischen virtuellen Maschine. Da Nextcloud ohnehin aus einer ganzen Reihe verschiedener Dienste und Applikationen besteht, ergibt es wenig Sinn, all diese Komponenten händisch auf einzelne Container zu verteilen und diese zu verknüpfen.
Bild 1: Mit Präsentationen aus LibreOffice-Vorlagen können Collabora und OnlyOffice, hier der Desktopclient, umgehen.
NextCloud einrichten
Für den automatischen Installer benötigen Sie eine VM mit einem funktionstüchtigen LAMP-Stack (Linux, Apache, Mariadb, PHP). Selbstverständlich funktionieren auch populäre Varianten wie "WAMP" (Win­dows statt Linux) oder "LEMP" (Nginx statt Apache). Für unseren Workshop setzen wir eine RHEL-8-VM ein. Das Ganze funktioniert ebenso mit Alma- oder Rocky-Linux. Auf die frische OS-Installation packen Sie zunächst den LAMP-Stack mit dem aktuellen PHP 7.4:
dnf module reset php
dnf module enable php:7.4
dnf install php php-mysqlnd php-fpm mariadb-server \
            httpd php-mbstring php-gd php-pecl-zip \
            php-xml php-json unzip wget httpd php-process
Prüfen Sie an dieser Stelle, ob die PHP-Einstellungen in "/etc/php.ini" stimmen. Wichtig sind dabei Schlüssel wie:
 memory_limit = 512M
post_max_size = 8M
upload_max_filesize = 8M
Aktivieren und starten Sie danach alle benötigten Dienste mit
systemctl enable mariadb --now
 
systemctl enable php-fpm --now
 
systemctl enable httpd --now
  mysql_secure_installation
Nach dem Secure-Setup von MariaDB erstellen Sie die übliche Datenbank nebst Nutzer:
mysql -u root -p
 
create database nextcloud;
grant all on nextcloud.* to 'nextuser'@'localhost' identified by 'SupersicheresPasswort';
 
flush privileges;
 
exit;
Laden Sie den automatischen Installer von Nextcloud in das Root-Verzeichnis des Webservers:
cd /var/www/html
 
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
 
chown -R apache. /var/www/html
Stellen Sie jetzt sicher, dass die nötigen Ports (80, später auch 443) in der Firewall des Servers geöffnet sind. Danach können Sie von einem Browser im lokalen LAN auf das Setup-Programm zugreifen: "http://<Ihr Server>/setup-nextcloud. php". Geben Sie im Verlauf der Installation das gewünschte Verzeichnis und die zuvor definierte Datenbank an. Auch fragt Nextcloud Sie, ob Sie die empfohlenen Applikationen für Nextcloud gleich mit-installieren möchten. Das Applikationspaket enthält den "Code"-Server.
Im Admin-Dialog: "Einstellungen / Verwaltung / Office" sollten Sie nun den Punkt "Nutze eingebauten CODE" sehen und einen grünen Haken bei "Collabora Online Server ist erreichbar." In unserem Fall funktionierte das integrierte Code-Setup in einigen Szenarien nicht. Vergessen Sie beispielsweise, die "memory_limit"-Option in die "php.ini" einzutragen, läuft zwar die Nextcloud-Installation durch, jedoch schlägt das Code-Setup fehl. Sollte es hier zu Problemen kommen, können Sie über die NextCloud-Kommandozeile den Code-Server nachinstallieren:
cd /var/www/html
 
sudo -u apache php -d memory_limit=512M ./occ app:install richdocumentscode
Nachdem Nextcloud läuft, können Sie Ihre Benutzer und Gruppen erstellen. Der Zugriff auf die Office-Funktionen ist denkbar simpel: Sobald ein User ein Office-Dokument in Nextcloud erstellt oder öffnet, startet die passende Office-Anwendung im Browser. LibreOffice erlaubt dabei, dass mehrere Benutzer simultan an einem Dokument arbeiten. Das Tool zeigt am oberen Bildschirmrand die aktuellen Nutzer an und markiert deren aktuellen Änderungen mit ihrem Namen.
Anders als Googles Office-Suite beherrscht LibreOffice Online jedoch keine Offline-Funktionen, die Caching und die JavaScript-Engine des Browsers nutzen. Ohne Verbindung zum Collabora-Server geht im Browser alleine nichts. Allerdings ist das Online-Office natürlich formatkompatibel zu LibreOffice und Nextcloud selbst kann mit einem Sync-Client die Nutzerdaten abgleichen. Wer also offline arbeiten möchte, synchronisiert via Nextcloud die Office-Dokumente auf sein mobiles Gerät und arbeitet dort mit einer lokalen LibreOffice-Installation weiter. Da das Collabora-Office-Paket auch auf Plattformen wie iOS und Android läuft, funktioniert das auch mit Smartphones oder Tabletts recht brauchbar.
Bild 2: Die Onlineversion von OnlyOffice hat mit größeren Präsentationen Ladeprobleme, während der Desktopclient gut damit klarkommt.
Simple Migration
Gerade weil Collabora Online auf den Quellen von LibreOffice basiert, fällt den Anwendern der Umstieg oder auch der Parallelbetrieb beider Programme sehr leicht. Im ersten Schritt können Nutzer ihr gewohntes Office-Dokumentenverzeichnis einfach mit der Nextcloud-Instanz synchronisieren. Mit diesem Setup lassen sich Office-Dokumente dann sowohl auf einem Client-PC mit einer vollwertigen LibreOffice-Installation bearbeiten als auch im Browser via Online Office. Wer eigene Schriften verwenden möchte, kann diese im Font-Ordner des Nextcloud-Servers ablegen ("/usr/local/share/fonts").
Die Onlineversion von LibreOffice besitzt nahezu den vollen Funktionsumfang von LibreOffice – aber eben nur nahezu. Was dem beschriebenen Setup fehlt, sind Makros. Es gibt genügend Anwender, die gänzlich ohne Office-Makros auskommen, andere sind auf sie angewiesen. Collabora Office kann grundsätzlich LibreOffice-Makros ausführen, auch wenn es hierbei funktionelle Einschränkungen gibt. Die mit Nextcloud gelieferte Code-Version allerdings beherrscht keine Makros, weil sie als AppImage-Paket integriert wird.
Ein AppImage-Paket vereint alle nötigen Binärdateien und Bibliotheken in einem virtuellen Filesystem. Damit laufen App­Image-Applikationen auf allen Linux-Distributionen, ohne dass dort Abhängigkeiten installiert werden müssten. In diesem Fall enthält das AppImage aber auch die Konfigurationsdatei für Makros. Das App-Image erlaubt, über Kommandozeilenparameter einen alternativen Config-Pfad zu nutzen. Dafür müßte der Anwender aber zuvor die Dateien extrahieren und die Befehlszeile zum Start von Code innerhalb von Nextcloud ändern.
Mehr Flexibilität erhält der Anwender, wenn er den Code-Server separat laufen lässt und ihn via API in Nextcloud einbindet. Collabora liefert ein Container-Image des Code-Servers, das sich auf dem Nextcloud-Host oder einer anderen Maschine betreiben lässt. In unserem Labor sträubte sich der Container allerdings gegen den "rootless"-Betrieb mit Podman. Schade eigentlich, denn es gibt keinen Grund für einen Container mit einer Weboffice-Anwendung, root-Rechte auf dem Container-Node zu beanspruchen. Um den Container letzten Endes zum Laufen zu bringen, starten wir eine zweite VM mit Debian Linux 11 und dem dort mitgelieferten Docker-Daemon. In der Nextcloud-Installation ändern wir das Office-Setup vom integrierten Code-Setup zur externen URL des Debian-Servers. Funktionell arbeitet das Office-Setup unverändert, allerdings läuft der Code-Container flotter als das Nextcloud-integrierte Image.
Vor- und Nachteile von Collabora Online
Collabora Online hat durchaus Punkte aufzuweisen, die für die Suite sprechen. Nutzer, die bereits mit LibreOffice arbeiten, werden relativ mühelos von der lokalen Applikation auf das webbasierte Pendant umsteigen können. Positiv fällt dabei auch ins Gewicht, dass es keine Formatprobleme gibt. Bestehende LibreOffice-Dateien lassen sich direkt in Collabora importieren und nutzen, ähnlich wie Microsoft-Office-XML-Dateien. Auch der parallele Betrieb des lokalen Office-Setups mit der Onlineversion ist möglich.
Nextcloud als darunterliegende Dokumentenplattform weist hier im Betrieb mit Code schön größere Defizite auf. So kam es auf unseren Rechnern immer wieder zu Kommunikationsproblemen zwischen Nextcloud und dem integrierten Code-Server. Die Konfigurationsoptionen der eingebetteten Applikationen lassen ebenfalls Wünsche offen. Eigentlich sollte es in diesem Aufbau kein Problem sein, die Konfigurationsdateien des integrierten Code-Setups in Nextcloud selbst zu sichern und über das Admin-Menü zugänglich zu machen.
Im weiteren Verlauf versuchten wir zudem, Nextcloud als Dokumentenserver für OnlyOffice zu verwenden. Doch viele der beschriebenen Installationsoptionen funktionierten nicht, wobei die auftretenden Fehler und Probleme nicht nachvollziehbar gelogged werden. Das liegt aber in erster Linie an OnlyOffice. Letzten Endes führt eine auf der Kommandozeile via "occ" gestartete Nextcloud-Updateprozedur dazu, dass das NextCloud-Testsetup selbst nicht mehr funktioniert. Zum Glück können wir die VM via Snapshot auf eine frühere Version zurücksetzen und zumindest das Collabora-Setup in Nextcloud weiterverwenden.
Das Collabora-Office-Paket ist nicht zwingend an Next- oder Owncloud als Dokumentenserver angewiesen. In der Zwischenzeit gibt es mehrere Groupware-Projekte wie Mattermost, Alfresco oder EGroup-ware, die Collabora integrieren.
Bild 3: Wer mit LibreOffice Writer vertraut ist, kommt auch gut mit Collabora Online zurecht.
Anspruchsvolles OnlyOffice
Ähnlich wie Collabora verfolgt auch OnlyOffice einen dualen Ansatz. Primär vermarktet der Anbieter Ascensio System SIA kommerzielle Office-Programme und Clouddienste. Parallel dazu gibt es die freien Community- und Personal-Desktopeditionen. Das Portfolio des Herstellers umfasst dabei auch Workspaces für Arbeitsgruppen, die neben dem reinen Office- und Dokumentenserver weitere Funktionen implementieren. Dazu gehören Dienste wie E-Mail und Chat sowie die Integration der Workspaces mit anderen Tools wie Jira oder Alfresco.
Die Community-Editionen von "OnlyOffice Groups" und dem "OnlyOffice Workspace" stellten sich bei uns leider komplett quer. Der Anbieter offeriert verschiedene Skripte, um die Dienste nativ oder als Docker-Container auf Systemen wie RHEL oder Debian einzurichten. In unseren Versuchen funktioniert keiner der Wege – und auch die Windows-Installation schlug fehl. Die Skripte brachen irgendwo auf halber Strecke ab, ohne genauer darauf einzugehen, was eigentlich schief gelaufen ist. Was übrig blieb, waren halbfertige Installationen, die sich weder zurücknehmen noch finalisieren ließen.
Das Workspace-Paket bringt eine große Liste an Abhängigkeite mit, die mehrere Programmiersprachen und Datenbanken umfassen. So braucht das Tool gleich zwei Datenbanken: PostgreSQL und MariaDB. Bei den Runtimes fordert OnlyOffice sogar Java, .NET (Mono), NodeJS, Python und Erlang. Für die interne Kommunikation der Komponenten setzt OnlyOffice sowohl Redis als auch RabbitMQ ein. Auch das Installationstool scheitert. Nach einer halben Stunde Laufzeit, 2 GByte installierter Dienste und Daten bricht der Installer mit einer kurzen Meldung ab – das war's. Hier sollte der Hersteller dringend seine Tools überarbeiten und die enorme Liste der Dependencies bereinigen.
Der eigentliche Dokumenten- und Office-Server lässt sich ohne große Probleme in einer Debian-11-VM aufsetzen (nativ, nicht Docker) und nutzen. Hier gibt es weniger Abhängigkeiten als bei der Workspace-Plattform, aber immer noch mehr als bei Collabora. Wir verwenden für den Workshop eine Debian-11-Minimal-VM. Der Hersteller stellt ein Installationsskript für den Dokumentenserver zur Verfügung [3]. Dieses erste Skript ermittelt zunächst, auf welchem OS es läuft, und zieht entsprechend unserem Szenario das Folgeskript "Install-Debian.sh" [4] nach, das dann selbst wiederum weitere Skripte von der Seite des Herstellers holt. Der Hersteller Ascensio sollte sich hier vielleicht mit Tools wie Ansible, Puppet oder Salt auseinandersetzen, um die anfälligen und komplexen Skripte abzuschaffen.
Die Setuproutine fragt den Anwender, ob er die Applikation nativ oder via Docker laufen lassen möchte. In unserem Szenario klappte hierbei nur die native Setupvariante und die eben auch nur auf Debian. Das Skript richtet dann die Basiskomponenten Nginx, PostgreSQL, Redis und Rabbitmq auf dem lokalen System ein und startet anschließend den Office-Dienst.
Ein Collabora-Document-Server braucht eine Reihe von Konfigurationsoptionen. Die Standardinstallation bringt daher eine "Example"-Umgebung mit, die einen einzelnen Demo-Benutzer mit Verzeichnissen und Ui anlegt.
supervisorctl start ds:example
Soll die Beispielumgebung bei einem Systemneustart automatisch hochfahren, muss der Administrator noch die Konfiguration des Supervisor-Diensts anpassen. Dazu setzen Sie den Eintrag "autostart" in der Datei "/etc/supervisor/conf.d/ds-example.conf" von "false" auf "true". Jetzt lässt sich der Dokumentenserver über die URL "http:// <Ihr Server>/example" ansprechen.
Modernes Office im Browser
Nach dem aufwendigen Setup können die eigentlichen Office-Tools für Dokumente, Tabellen und Präsentationen im Browser dann allerdings überzeugen. Die Werkzeuge sind flott und liefern eine hübsche UI mit Ribbons und Icons, wie sie auch in nativen Office-Tools zum Einsatz kommt. Collabora hat hier einen etwas simpleren Look, da es an vielen Stellen auf Icons verzichtet und HTML-typische Textmenüs darstellt. Wo OnlyOffice vor allem punkten kann, sind die eingebauten Gruppenfunktionen.
Die Module integrieren einen Gruppenchat, Nutzerkommentare und die Versionshistorie. Damit können Anwender sowohl eigene Änderungen als auch die von Mitarbeitern einzeln zurückdrehen. Um versehentliche Schäden am Dokument zu verhindern, offeriert OnlyOffice beispielsweise den Co-Editing-Mode "Strict". Dabei werden Änderungen am Dokument nicht live in die Datei geschrieben, wie das sonst bei Co-Editing üblich ist. Erst wenn der Nutzer den "Save"-Button betätigt, versioniert OnlyOffice das Dokument. Anders als Collabora schaltet OnlyOffice per Default die Makro-Funktion für Visual-Basic-Makros ein.
Auch weist OnlyOffice ein paar unerwartet moderne Office-Funktionen auf. Im Plug-in-Menü findet sich beispielsweise die Option "OCR". Der Anwender kann hier eine Bilddatei hochladen, den darin enthaltenen Text erkennen und einfügen lassen – das funktioniert sogar mit Aufnahmen von Handykameras und klein gedrucktem Text. OnlyOffice nutzt hierzu das Open-Source-Project "tesseract.js". Auch gibt es vorinstallierte Plug-ins, um Dienste wie Google Translate direkt in die Textverarbeitung zu integrieren.
Bei den Formaten stellt sich OnlyOffice ähnlich flexibel dar wie Collabora. Beide arbeiten mit den MS-Office-XML- und den LibreOffice-Formaten. Ein Plus geht hier an OnlyOffice, denn es kann Dokumente auch direkt aus dem Epub-Format importieren oder als Epub sichern. Für jeden Anwender, der viel mit E-Book-Readern und verwandten Geräten arbeitet, ist das eine sehr nützliche Funktion.
OnlyOffice ist dabei nicht nur als Clouddienst verfügbar. Der Hersteller offeriert Desktopversionen seines Tools für alle gängigen Betriebssysteme von Windows über Mac, Linux bis hin zu Android. Selbst wenn Sie kein Interesse haben sollten, Only­Office als Webservice aufzusetzen, lohnt sich der Blick auf die Dekstop­editionen – und sei es auch nur, um damit Epub-Dateien für den Reader zu erstellen.
Fazit
Collabora kann durch die wesentlich simplere Installation punkten. Da es auf dem Code von LibreOffice basiert, ist es formatkompatibel und erleichtert LibreOffice-Anwendern den Umstieg zum
Weboffice. OnlyOffice auf der anderen Seite liefert die schickere UI und nützliche moderne Office-Features wie OCR. Allerdings schreckt das komplexe Setup ab. Hier geht es für den Administrator nicht nur darum, die Installationsprozedur einmal zu knacken und richtig umzusetzen. Die Installation und Konfiguration der OnlyOffice-Dienste stellen sich nämlich deutlich komplexer dar als bei Collabora. Schuld daran ist wohl auch, dass der Hersteller diverse Komponenten, die auf unterschiedliche Runtimes und Bibliotheken aufsetzen, einfach zusammendängelt. Hier wäre es hilfreich, die Toolsets und Runtimes der Entwickler zu konsolidieren.
Funktionell hingegen gefällt OnlyOffice sehr gut. Die UI läßt den Anwender gar nicht anmerken, dass er im Browser und nicht in einer nativen Applikation arbeitet. Moderne Plug-in-Features wie OCR helfen den Nutzern ebenso wie der Epub-Im- und -Export. Das Konglomerat aus diversen Runtimes und Drittanbieter-Tools muss aber auch langfristig gewartet werden, ohne dass Updates einzelner Komponenten das komplette Setup zerstören. Unabhängig vom Webservice ist das freie Desktoptool in jedem Fall einen Blick wert.
(dr)
Link-Codes
[3] Installationsskript für den Document-Server: https://download.onlyoffice.com/docs/docs-install.sh/