{"id":8068,"date":"2021-12-23T07:30:00","date_gmt":"2021-12-23T05:30:00","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=8068"},"modified":"2022-12-12T18:22:52","modified_gmt":"2022-12-12T16:22:52","slug":"nextcloud-23-build-in-code-server-ausprobiert-kann-man-collabora-ohne-zusaetzlichen-code-server-nutzen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/nextcloud-23-build-in-code-server-ausprobiert-kann-man-collabora-ohne-zusaetzlichen-code-server-nutzen\/","title":{"rendered":"NextCloud 23 Build-in Code Server ausprobiert: Kann man Collabora ohne zus\u00e4tzlichen Code-Server nutzen?"},"content":{"rendered":"<p><a href=\"https:\/\/u-labs.de\/portal\/nextcloud-23-hub-ii-office-collabora-angetestet-was-ist-neu-wie-laeuft-es-auf-dem-raspberry-pi-4\/\" title=\"NextCloud 23 Hub II Office Collabora angetestet: Was ist neu? Wie l\u00e4uft es auf dem Raspberry Pi 4?\">Im vorherigen Beitrag<\/a> habe ich einen ersten Blick auf die Collabora Online Integration in der neuen NextCloud 23 Version geworfen und euch einen zweiten Teil f\u00fcr die Installation versprochen. Heute m\u00f6chte ich euch daher zeigen, wie man die neue Version mit dem sogenannten <strong>Build-in Code Server<\/strong> an, der die Installation besonders einfach machen soll. Soweit Vorneweg: Hier gibt es ein paar Besonderheiten, vor allem f\u00fcr den Raspberry Pi.<\/p>\n<h2 class=\"wp-block-heading\">Was brauche ich f\u00fcr Nextcloud Office mit Collabora Online?<\/h2>\n<p>Das Office-Paket in NextCloud Office besteht aus zwei Komponenten: Einem<strong> Collabora Code Server<\/strong>, der s\u00e4mtliche Funktionen von Dokumenten, Tabellen, Pr\u00e4sentationen und Abl\u00e4ufen bereitstellt. Dazu kommt <a href=\"https:\/\/apps.nextcloud.com\/apps\/richdocuments\" title=\"https:\/\/apps.nextcloud.com\/apps\/richdocuments\" target=\"_blank\" rel=\"nofollow\">die &#8222;App&#8220; genannte Erweiterung Collabora Online<\/a>, die sich um die Integration in NextCloud k\u00fcmmert. Wenn ihr eine Office-Datei \u00f6ffnet, \u00fcbertr\u00e4gt diese Erweiterung das Dokument an Collabora Code, der wiederum dessen Inhalt im Browser darstellt. <\/p>\n<p>Wir brauchen also beide Komponenten, damit das ganze funktioniert. Da die neue Collabora Online App in Version <strong>5 <\/strong>(die sich offiziell \u00fcbrigens noch im Beta-Stadium befindet) erst mit NextCloud 23 kompatibel ist, muss eure NextCloud auch auf Version 23 aktualisiert werden.<\/p>\n<h2 class=\"wp-block-heading\">Wie bekomme ich das neue Nextcloud Hub II\/NextCloud 23?<\/h2>\n<p>Hinter <strong>Nextcloud Hub II<\/strong> 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\u00f6glicherweise noch nicht angezeigt, wie in diesem Beispiel.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/u-img.net\/img\/2034Zi.png\" alt=\"\"\/><\/figure>\n<p>Wer nicht warten m\u00f6chte, kann die Aktualisierung erzwingen. Wie dies konkret funktioniert, h\u00e4ngt stark von der Art der Installation ab. Bei der Verwendung von Docker beispielsweise einfach das Image auf Version 23 \u00e4ndern und die Container neu erstellen. Im Falle einer h\u00e4ndischen Installation kann man Version 23 von der NextCloud Homepage herunterladen, entpacken und in das entsprechende Verzeichnis des Webservers ablegen. Meist <strong>\/var\/www<\/strong> oder \/<strong>var\/www\/html<\/strong>, je nach Webserver und Konfiguration.<\/p>\n<p>Beachtet jedoch, dass NextCloud <strong>keine Downgrades <\/strong>unterst\u00fctzt! Wer mit Version 23 Probleme hat, kann danach also nicht mehr zur\u00fcck zu Version 22. Daher w\u00fcrde ich zun\u00e4chst eine Testinstallation empfehlen, bevor man seine produktiv genutzte Installation aktualisiert. <a href=\"https:\/\/u-labs.de\/portal\/raspberry-pi-einstieg-in-docker-container-fuer-anfaenger-theorie-praxis\/\" title=\"Raspberry Pi: Einstieg in Docker-Container f\u00fcr Anf\u00e4nger (Theorie + Praxis)\">Dies geht besonders einfach mit Docker<\/a>. Au\u00dferdem kann immer nur von einer Hauptversion auf die n\u00e4chste Aktualisiert werden. Wenn Ihr also z.B. derzeit Version 21 verwendet, m\u00fcsst ihr zun\u00e4chst auf 22 und erst dann auf 23 updaten.<\/p>\n<p>Auf x86 Systemen war es das. F\u00fcr den Raspberry Pi gibt es aufgrund seiner ARM-Architektur noch weitere Besonderheiten, siehe dazu den Abschnitt weiter unten. <\/p>\n<h2 class=\"wp-block-heading\">Was ist der &#8222;Build-in Code Server&#8220; und wie funktioniert er?<\/h2>\n<p>F\u00fcr die Office-Integration muss man einen Collabora Code Servers selbst installieren und dessen Adresse in NextCloud eintragen. Dieser Teil soll durch eine Erweiterung namens <a href=\"https:\/\/apps.nextcloud.com\/apps\/richdocumentscode\" target=\"_blank\" rel=\"nofollow\">Build-in Code Server<\/a> vereinfacht werden: Als Nutzer installiert man lediglich eine zweite App im Administrationsbereich von NextCloud und muss sich um nichts weiteres k\u00fcmmern. <\/p>\n<p>Diese Erweiterung <strong>Build-in Code Server<\/strong> l\u00e4dt den Collabora Code-Server als <strong>AppImage <\/strong>herunter. Wer das Format nicht kennt: Ein AppImage ist eine ausf\u00fchrbare Datei, die ohne Paketmanager unter jeder Linux-Distribution direkt gestartet werden kann &#8211; vergleichbar mit portablen Exe-Dateien unter Windows. Dieses AppImage wird per PHP mit der Funktion <strong>exec <\/strong>im Hintergrund gestartet. Klingt bequem, zeigte in meinen Tests aber eine Reihe an Problemen und Nachteilen.<\/p>\n<h3 class=\"wp-block-heading\">#1: Architektur<\/h3>\n<p>Da ein AppImage Architekturgebunden ist, <a href=\"https:\/\/apps.nextcloud.com\/apps\/richdocumentscode_arm64\" target=\"_blank\" rel=\"nofollow\">existiert eine eigene App-Version f\u00fcr ARM.<\/a> Allerdings nur ARM64, womit wir direkt beim ersten Problem sind: Collabora unterst\u00fctzt nur 64 Bit ARM-Systeme. Das Raspberry Pi OS ist erst seit Mai 2020 in 64 Bit verf\u00fcgbar und nach wie vor im Beta-Stadium. Auf den meisten Pis l\u00e4uft daher noch eine 32 Bit Version. Damit das l\u00e4uft, m\u00fcsste man also mit der 64 Bit Edition neu installieren &#8211; oder mit Basteln versuchen, Collabora Code selbst zu kompilieren. Ersteres d\u00fcrfte wohl einfacher sein.<\/p>\n<h3 class=\"wp-block-heading\">#2: Zugriff auf die Konsole &amp; exec-Verwendung<\/h3>\n<p>Die Installation sollte auf der Konsole mit dem OCC-Werkzeug erfolgen:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo -u www-data php -d memory_limit=512M .\/occ app:install richdocumentscode_arm64\n<\/pre>\n<\/div>\n<p>Zusammen mit dem AppImage ist die Erweiterung \u00fcber 200 MB gro\u00df &#8211; gerade mit langsameren Internetverbindungen kann das zu einem PHP-Timeout f\u00fchren, 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 <strong>exec()<\/strong> in der Regel deaktiviert sind &#8211; und das nicht ohne Grund: Wenn man das erlaubt, kann PHP beliebig Shell-Befehle ausf\u00fchren. Sicherheitstechnisch mindestens fragw\u00fcrdig. Vor allem, falls die Instanz nativ auf dem System l\u00e4uft und nicht durch Container isoliert wurde.<\/p>\n<p>An dieser Stelle fehlt in meinen Augen auch die klare Kommunikation, wie das technisch funktioniert und welche Anforderungen daf\u00fcr n\u00f6tig sind. In der Dokumentation zur Erweiterung wird darauf leider nicht hingewiesen. Einem Anf\u00e4nger ist dies wahrscheinlich nicht klar.<\/p>\n<h3 class=\"wp-block-heading\">#3: Startverhalten und Stabilit\u00e4t<\/h3>\n<p>Bei einem Neustart von PHP oder des gesamten Pis l\u00e4uft der Collabora Code-Server nicht mehr &#8211; es gibt ja keinen Container oder Systemd-Dienst, der sich um den Autostart k\u00fcmmert. 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\u00e4ssig: Office-Dateien werden mir nach einem Neustart des Pi stattdessen zum Download angeboten:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/u-img.net\/img\/8703Tn.png\" alt=\"\"\/><\/figure>\n<p>Der Code-Server wurde erst wieder gestartet, nachdem ich in den Einstellungen unter <strong>NextCloud Office<\/strong> einmal auf &#8222;Verwende Deinen eigenen Server&#8220; und anschlie\u00dfend wieder &#8222;Nutze die eingebauten CODE &#8211; Collabora Online Development Edition&#8220; geklickt habe. Die Anzeige &#8222;Der Collabora Online Server ist erreichbar&#8220; war an dieser Stelle \u00fcbrigens falsch. Das merkte NextCloud erst nach diesen zwei Clicks: W\u00e4hrend &#8222;Neuen Server einrichten&#8220; erscheint, wird das AppImage des Code-Server im Hintergrund wieder gestartet.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/u-img.net\/img\/4874Vl.png\" alt=\"\"\/><\/figure>\n<h3 class=\"wp-block-heading\">#4 Ewiges laden<\/h3>\n<p>Wenn der Code-Server l\u00e4uft, werden die Dateien nicht mehr zum Download angeboten:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ ps -aux | egrep &#x5B;C]ollabora_Online\nwww-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) &gt;\/dev\/null &amp; disown\nwww-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\n<\/pre>\n<\/div>\n<p>Nun erscheint immerhin ein Ladebildschirm. Auch nach einigen Minuten Wartezeit l\u00e4dt das einfache Dokument mit wenigen S\u00e4tzen Text nicht:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/u-img.net\/img\/5429Zp.jpg\" alt=\"\"\/><\/figure>\n<p>Mit der neueren Version 5.0.1 vom 20. Dezember wurde dieses Verhalten behoben, sodass es in meinen Tests nun durchg\u00e4ngig funktioniert.<\/p>\n<h2 class=\"wp-block-heading\">Fazit zu Collabora in Nextcloud Hub II\/NextCloud 23 Office<\/h2>\n<p>In letzter Zeit bewegt sich einiges auf NextCloud. Die Richtung scheint klar: Man m\u00f6chte 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 \u00fcberm\u00e4\u00dfig gut. Wenngleich der Gedanke dahinter nachvollziehbar ist und NextCloud weiter daran arbeitet. <\/p>\n<p>Zumindest derzeit ist die Beschr\u00e4nkung auf 64 Bit Betriebssysteme allerdings noch ein Wermutstropfen. Viele Pis sind zwar technisch 64 Bit f\u00e4hig, aber 32 Bit ist noch stark verbreitet. Wer die Integration f\u00fcr Office-Dokumente nutzen m\u00f6chte, der kommt ggf. nicht umher, auf ein 64 Bit OS umzusteigen &#8211; zumindest auf einem zweiten Pi, der f\u00fcr NextCloud und Collabora genutzt wird.<\/p>\n<p>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\u00fcr jedes Video ein Thread erstellt. Ich w\u00fcnsche euch viel Erfolg bei euren Projekten, tsch\u00fcss bis zum n\u00e4chsten Mal!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00fcr die Installation versprochen. Heute m\u00f6chte 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 &#8230;<\/p>\n","protected":false},"author":5,"featured_media":8158,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[671],"tags":[995,997,497,996],"class_list":["post-8068","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","tag-collabora","tag-collabora-code","tag-docker","tag-nextcloud"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=8068"}],"version-history":[{"count":10,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8068\/revisions"}],"predecessor-version":[{"id":9799,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8068\/revisions\/9799"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/8158"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=8068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=8068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=8068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}