Im vorherigen Beitrag habe ich einen ersten Blick auf die Collabora Online Integration in der neuen NextCloud 23 Version geworfen und euch einen zweiten Teil für die Installation versprochen. Heute möchte ich euch daher zeigen, wie man die neue Version mit dem sogenannten Build-in Code Server an, der die Installation besonders einfach machen soll. Soweit Vorneweg: Hier gibt es ein paar Besonderheiten, vor allem für den Raspberry Pi.
Was brauche ich für Nextcloud Office mit Collabora Online?
Das Office-Paket in NextCloud Office besteht aus zwei Komponenten: Einem Collabora Code Server, der sämtliche Funktionen von Dokumenten, Tabellen, Präsentationen und Abläufen bereitstellt. Dazu kommt die „App“ genannte Erweiterung Collabora Online, die sich um die Integration in NextCloud kümmert. Wenn ihr eine Office-Datei öffnet, überträgt diese Erweiterung das Dokument an Collabora Code, der wiederum dessen Inhalt im Browser darstellt.
Wir brauchen also beide Komponenten, damit das ganze funktioniert. Da die neue Collabora Online App in Version 5 (die sich offiziell übrigens noch im Beta-Stadium befindet) erst mit NextCloud 23 kompatibel ist, muss eure NextCloud auch auf Version 23 aktualisiert werden.
Wie bekomme ich das neue Nextcloud Hub II/NextCloud 23?
Hinter Nextcloud Hub II verbirgt sich die Version 23. Sie wurde Ende November 2021 vorgestellt und seit dem Schrittweise ausgerollt. Falls dabei Fehler entdeckt werden, stoppt NextCloud den Update-Prozess bis zu deren Behebung. Dies dauert bis zu sechs Wochen. Daher wird euch die Aktualisierung im Administrationsbereich möglicherweise noch nicht angezeigt, wie in diesem Beispiel.
Wer nicht warten möchte, kann die Aktualisierung erzwingen. Wie dies konkret funktioniert, hängt stark von der Art der Installation ab. Bei der Verwendung von Docker beispielsweise einfach das Image auf Version 23 ändern und die Container neu erstellen. Im Falle einer händischen Installation kann man Version 23 von der NextCloud Homepage herunterladen, entpacken und in das entsprechende Verzeichnis des Webservers ablegen. Meist /var/www oder /var/www/html, je nach Webserver und Konfiguration.
Beachtet jedoch, dass NextCloud keine Downgrades unterstützt! Wer mit Version 23 Probleme hat, kann danach also nicht mehr zurück zu Version 22. Daher würde ich zunächst eine Testinstallation empfehlen, bevor man seine produktiv genutzte Installation aktualisiert. Dies geht besonders einfach mit Docker. Außerdem kann immer nur von einer Hauptversion auf die nächste Aktualisiert werden. Wenn Ihr also z.B. derzeit Version 21 verwendet, müsst ihr zunächst auf 22 und erst dann auf 23 updaten.
Auf x86 Systemen war es das. Für den Raspberry Pi gibt es aufgrund seiner ARM-Architektur noch weitere Besonderheiten, siehe dazu den Abschnitt weiter unten.
Was ist der „Build-in Code Server“ und wie funktioniert er?
Für die Office-Integration muss man einen Collabora Code Servers selbst installieren und dessen Adresse in NextCloud eintragen. Dieser Teil soll durch eine Erweiterung namens Build-in Code Server vereinfacht werden: Als Nutzer installiert man lediglich eine zweite App im Administrationsbereich von NextCloud und muss sich um nichts weiteres kümmern.
Diese Erweiterung Build-in Code Server lädt den Collabora Code-Server als AppImage herunter. Wer das Format nicht kennt: Ein AppImage ist eine ausführbare Datei, die ohne Paketmanager unter jeder Linux-Distribution direkt gestartet werden kann – vergleichbar mit portablen Exe-Dateien unter Windows. Dieses AppImage wird per PHP mit der Funktion exec im Hintergrund gestartet. Klingt bequem, zeigte in meinen Tests aber eine Reihe an Problemen und Nachteilen.
#1: Architektur
Da ein AppImage Architekturgebunden ist, existiert eine eigene App-Version für ARM. Allerdings nur ARM64, womit wir direkt beim ersten Problem sind: Collabora unterstützt nur 64 Bit ARM-Systeme. Das Raspberry Pi OS ist erst seit Mai 2020 in 64 Bit verfügbar und nach wie vor im Beta-Stadium. Auf den meisten Pis läuft daher noch eine 32 Bit Version. Damit das läuft, müsste man also mit der 64 Bit Edition neu installieren – oder mit Basteln versuchen, Collabora Code selbst zu kompilieren. Ersteres dürfte wohl einfacher sein.
#2: Zugriff auf die Konsole & exec-Verwendung
Die Installation sollte auf der Konsole mit dem OCC-Werkzeug erfolgen:
sudo -u www-data php -d memory_limit=512M ./occ app:install richdocumentscode_arm64
Zusammen mit dem AppImage ist die Erweiterung über 200 MB groß – gerade mit langsameren Internetverbindungen kann das zu einem PHP-Timeout führen, bevor der Download abgeschlossen ist. Oder aber das Arbeitsspeicherlimit von PHP reicht nicht aus. Bereits an der Stelle sind wohl fast alle raus, die NextCloud auf einem Webspace nutzen. Zumal dort PHP-Funktionen wie exec() in der Regel deaktiviert sind – und das nicht ohne Grund: Wenn man das erlaubt, kann PHP beliebig Shell-Befehle ausführen. Sicherheitstechnisch mindestens fragwürdig. Vor allem, falls die Instanz nativ auf dem System läuft und nicht durch Container isoliert wurde.
An dieser Stelle fehlt in meinen Augen auch die klare Kommunikation, wie das technisch funktioniert und welche Anforderungen dafür nötig sind. In der Dokumentation zur Erweiterung wird darauf leider nicht hingewiesen. Einem Anfänger ist dies wahrscheinlich nicht klar.
#3: Startverhalten und Stabilität
Bei einem Neustart von PHP oder des gesamten Pis läuft der Collabora Code-Server nicht mehr – es gibt ja keinen Container oder Systemd-Dienst, der sich um den Autostart kümmert. Die Erweiterung startet ihn erst, wenn darauf zugegriffen wird. Dies kann auf einem Pi schon mal eine halbe Minute dauern. Selbst das funktionierte in meinen Tests nicht zuverlässig: Office-Dateien werden mir nach einem Neustart des Pi stattdessen zum Download angeboten:
Der Code-Server wurde erst wieder gestartet, nachdem ich in den Einstellungen unter NextCloud Office einmal auf „Verwende Deinen eigenen Server“ und anschließend wieder „Nutze die eingebauten CODE – Collabora Online Development Edition“ geklickt habe. Die Anzeige „Der Collabora Online Server ist erreichbar“ war an dieser Stelle übrigens falsch. Das merkte NextCloud erst nach diesen zwei Clicks: Während „Neuen Server einrichten“ erscheint, wird das AppImage des Code-Server im Hintergrund wieder gestartet.
#4 Ewiges laden
Wenn der Code-Server läuft, werden die Dateien nicht mehr zum Download angeboten:
$ ps -aux | egrep [C]ollabora_Online
www-data 2876 0.0 0.0 3700 1884 ? S 11:13 0:00 bash -c ( /var/www/nextcloud/apps/richdocumentscode_arm64/collabora/Collabora_Online.AppImage --pidfile=/tmp/coolwsd.pid || /var/www/nextcloud/apps/richdocumentscode_arm64/collabora/Collabora_Online.AppImage --appimage-extract-and-run --pidfile=/tmp/coolwsd.pid) >/dev/null & disown
www-data 2878 2.0 0.0 4080 3228 ? S 11:13 0:10 /var/www/nextcloud/apps/richdocumentscode_arm64/collabora/Collabora_Online.AppImage --appimage-extract-and-run --pidfile=/tmp/coolwsd.pid
Nun erscheint immerhin ein Ladebildschirm. Auch nach einigen Minuten Wartezeit lädt das einfache Dokument mit wenigen Sätzen Text nicht:
Mit der neueren Version 5.0.1 vom 20. Dezember wurde dieses Verhalten behoben, sodass es in meinen Tests nun durchgängig funktioniert.
Fazit zu Collabora in Nextcloud Hub II/NextCloud 23 Office
In letzter Zeit bewegt sich einiges auf NextCloud. Die Richtung scheint klar: Man möchte nicht nur eine reine Datenablage sein wie DropBox, sondern ein Gesamtpaket bieten. Mit dem integrierten Code-Server funktioniert das in meinem ersten Test leider nicht übermäßig gut. Wenngleich der Gedanke dahinter nachvollziehbar ist und NextCloud weiter daran arbeitet.
Zumindest derzeit ist die Beschränkung auf 64 Bit Betriebssysteme allerdings noch ein Wermutstropfen. Viele Pis sind zwar technisch 64 Bit fähig, aber 32 Bit ist noch stark verbreitet. Wer die Integration für Office-Dokumente nutzen möchte, der kommt ggf. nicht umher, auf ein 64 Bit OS umzusteigen – zumindest auf einem zweiten Pi, der für NextCloud und Collabora genutzt wird.
Wie sieht es bei euch aus: Setzt ihr bereits NextCloud mit Collabora ein oder habt es vor? Betreibt Ihr NextCloud alleinstehend oder nutzt vielleicht was ganz anderes? Schreibt es gerne ins Forum auf u-labs.de, dort wird für jedes Video ein Thread erstellt. Ich wünsche euch viel Erfolg bei euren Projekten, tschüss bis zum nächsten Mal!