Nextcloud Collabora Online

Tutorial: Integration von Collabora Online in Nextcloud 13

Viele von Euch werden bereits Nextcloud als favorisierte private Cloud-Lösung nutzen. Ob in der heimischen Besenkammer, im Keller oder beim Hoster Eures Vertrauens: Der legitime ownCloud-Nachfolger hat seit der damaligen Abspaltung für viel Furore gesorgt und ist auch hier im Blog bekanntermassen eins meiner definitiven Lieblingsthemen. Was bisher noch fehlte, war die Möglichkeit, Dokumente auch über das Webinterface bearbeiten zu können. Dafür gibt es Collabora Online, eine Open Source Office Suite, die auf dem bekannten LibreOffice basiert und genau diese noch fehlenden Fähigkeiten nahtlos in Nextcloud integriert. Wie das in meiner favorisierten Kombination aus Ubuntu Linux und dem Apache-Webserver im Detail geht, möchte ich Euch im Laufe des Tutorials einmal näherbringen!

Collabora Online läuft hierbei in einem Docker-Container und unterstützt meine bevorzugte Basis aus Debian – respektive hier: Ubuntu – Linux und Apache. Warum Apache? Das hat sich seit ungefähr 1999, als ich das erste Mal mit dem Webserver in Berührung gekommen bin, so herauskristallisiert und nach all der Zeit kann ich mich nur schwerlich an Nginx als Webserver gewöhnen. “Schuster, bleib’ bei Deinen Leisten” ist also hier das Motto und Apache ist bei mir einfach gesetzt – dementsprechend liegt der Fokus in diesem Tutorial auch auf diesem Webserver und nicht auf dem neueren Nginx, den viele von Euch sicherlich auch bevorzugen.

CODE

Die Web-Integration von LibreOffice bietet nicht dabei nicht nur grundsätzliche Bearbeitungsfunktionen, sondern auch klassisches WYSIWYG-Rendering und dabei auch Unterstützung von diversen bekannten Dateiformaten wie .DOC, .DOCX, .PPT, .PPTX, .XLS, .XLSX oder OD. Auch der Import und das Betrachten von Visio- und Publisher-Dokumenten samt über hundert weiterer Dateiformate ist möglich und wer gerne gemeinsam an Dokumenten arbeitet (ob in der Familie oder im Projektteam), wird eben diese Funktionen auch innerhalb seiner eigenen Cloud schnell lieben lernen.

Schritt 1: Die Installation von Docker

Als Basis für alles Weitere dient im vorliegenden Fall eine Nextcloud 13-Installation, die auf einem Ubuntu Linux 16.04.4 LTS fußt. Hier gilt es zunächst, mit Docker die Basis für die genutzte Container-Technologie zu schaffen. Dabei bedienen wir uns der vorhandenen Ubuntu-Paket-Repositories:

Ist die Installation erfolgt, können wir den erfolgreichen Start des Docker-Daemons durch Eingabe von

entsprechend prüfen. Bei meinem System, welches bereits länger online ist, sieht das beispielsweise wie folgt aus:

Nextcloud Collabora Online Docker Daemon

Sollte der Dienst nicht wie erwartet gestartet sein, können wir ihn durch Eingabe von

entsprechend starten und im Nachgang durch den Befehl

dafür sorgen, dass Docker auch nach dem Neustart des Linux-Gastsystems direkt geladen wird. Standardmäßig nutzt Docker übrigens AUFS als Storage-Treiber auf Debian und Ubuntu. Damit das Ganze aber auch in Verbindung mit Collabora Online funktioniert, müssen wir hier eine Änderung zur Nutzung des Device Mapper-Treibers erwirken. Dazu muss erst einmal durch Eingabe des Befehls

ein neues Verzeichnis erstellt werden. Dann legen wir eine neue Konfigurationsdatei an, die ich in meinem Fall mit dem guten, alten vi-Editor anpasse:

Diese befüllen wir mit dem folgenden Inhalt:

Nach dem Speichern und Schliessen der Datei starten wir durch Eingabe von

einmal den Systemd-Dienst sowie anschliessend durch den Befehl

den Docker-Dienst an sich neu. Die Prüfung, ob der Storage-Treiber nun der Device Mapper ist, können wir wiederum durch Eingabe von

prüfen und nach einem genauen Blick auch abnicken.

Nextcloud Collabora Online Docker Storage Treiber

Damit haben wir im ersten Schritt alle Voraussetzungen für den weiteren Verlauf dieses Tutorials geschaffen und können uns in Schritt 2 an die Installation von Collabora Online machen!

Schritt 2: Die Installation und der erste Start von Collabora Online

Nun, da unser Docker brav im Hintergrund seinen Dienst verrichtet, können wir uns das fertige Image der Collabora Online Development Edition in Version 3.1 von github in einen Container herunterladen. Mittel zum Zweck ist hier der Befehl

und ein wenig Geduld, bis – je nach der genutzten Internet-Anbindung – das komplette Image mit allen Support-Dateien heruntergeladen ist. Ist das ohne Fehlermeldungen geschehen, können wir den Container starten. Hier gehen wir davon aus, dass Eure bisher genutzte Nextcloud-Instanz unter dem Hostnamen nextcloud.domain.tld erreichbar ist, den Ihr selbstverständlich entsprechend abändern müßt:

Der Collabora Online Server beginnt nach der oben aufgeführten Befehlszeile anschliessend, auf Port 9980 Eures Servers zu lauschen. Dies kann durch

entsprechend überprüft werden. Paßt auch die Ausgabe und sieht in etwa wie die nachfolgende meines Systems aus, können wir auch einen Haken hinter Schritt 2 machen und uns nun im nächsten Schritt dem Reverse Proxy zuwenden.

Nextcloud Collabora Online Docker Service

Schritt 3: Die Apache-Konfiguration

Ein bereits bestehenden Apache-Webserver für unsere bisherige Nextcloud-Installation vorausgesetzt,  erstellen wir nun eine neue Konfigurationsdatei

und befüllen diese mit dem folgenden Inhalt:

Nach dem Speichern aktivieren wir die Konfiguration im Webserver:

und starten durch Eingabe von

den Webserver neu.

Nun geht es darum, den Webserver respektive den neuen Host über SSL zu verschlüsseln und ein Zertifikat zu generieren. Da meine Nextcloud-Instanz bereits ein entsprechendes Zertifikat mit Hilfe von certbot-auto bekommen hat, haben wir bereits alle Hilfsmittel an Bord und durch Eingabe von

wird die Beantragung für den neuen Host, der bei mir an Position 2 steht, gestartet. Das Ganze kann natürlich automatisiert werden, wir gehen aber die Punkte einzeln durch und am Ende sollte eine entsprechende Erfolgsmeldung die neuen Zertifikate auf dem System ablegen. Faustregel hier ist: Läuft Eure Nextcloud-Instanz bereits via SSL, werdet Ihr hier auch keine Probleme bekommen!

Nextcloud Collabora Online Certbot

Schritt 4: Einrichtung des Reverse-Proxy

Während ein klassischer Forward-Proxy Client-Geräte in einem Netzwerk vor Einflüssen aus dem Internet schützt (beispielsweise aus dem Unternehmens-Netzwerk heraus), arbeitet ein Reverse-Proxy dem Namen entsprechend in umgekehrter Richtung. Ein solcher hier benötigter Proxy-Server wird als zusätzliche Sicherheitskomponente vor einen oder mehrere Webserver geschaltet, um Anfragen aus dem Internet stellvertretend entgegenzunehmen und an einen Backend-Server im Hintergrund weiterzuleiten.

Dies erreichen wir durch einen weiteren virtuellen Host, den ich der Einfachheit halber hier als “office.domain.tld” bezeichne und den wir nachfolgend dem Apache-Webserver einmal bekannt machen. Wichtig: Beide Hosts laufen auf demselben Webserver, wir benötigen für unser Collabora Online-Backend also nicht einen zweiten Linux-Server, was im klassischen Anwendungsfall einer kleinen heimischen Cloud ein wenig überzogen wäre. In größeren, entsprechend skalierten Umgebungen kann das schon anders aussehen, das soll aber heute nicht unser Thema sein.

Damit der Reverse Proxy über unseren Apache-Webserver überhaupt erst einmal lauffähig ist, müssen wir die Funktion samt etwaiger noch nicht genutzter Module durch Eingabe von

erst einmal aktivieren. Dann machen wir uns daran, die gerade durch den Certbot generierte Konfigurationsdatei grundlegend zu editieren:

Der Inhalt der Datei sollte dann wie folgt aussehen:

Einmal speichern und wir können den Apache2-Webserver einmal neu starten. Wie üblich führt der Befehl

zum Ziel und unsere Änderungen auf System-Ebene sollten somit komplett sein. Weiter geht es in Schritt 5 im Nextcloud-Backend, denn nun muss unsere private Cloud noch wissen, dass da überhaupt eine Collabora Online-Instanz im Hintergrund auf die gemeinsame Zusammenarbeit wartet!

Schritt 5: Abschliessende Einrichtung in Nextcloud

Wir begeben uns nun also in die Administrations-Oberfläche unserer Nextcloud-Installation, genauer gesagt in den App-Bereich:

Nextcloud Collabora Online Nextcloud Apps

Im Bereich “Büro und Text” aktivieren wir nun das Modul “Collabora Online”.

Nextcloud Collabora Online Nextcloud Install

Ist diese Installation geschehen, wandern wir noch einmal in die Einstellungen der Nextcloud-Instanz. Dort ist nun in der Seitenleiste der Optionen Collabora Online zu finden:

Nextcloud Collabora Online Nextcloud Integration

Hier geben wir nun den neuen Namen unseres frisch erstellten Collabora Online-Hosts samt https:// davor und dem Port 443 dahinter (beispielsweise https://office.domain.tld:443) ein. Auf Wunsch können wir die Verwendung und Bearbeitung von und mit Collabora Online auch auf bestimmte Gruppen einschränken – das ist in meiner Umgebung aber nicht notwendig gewesen, weswegen die Anpassungen im Backend nach der Eingabe der URL nun vollständig sind.

Um zu schauen, ob nun alles sauber funktioniert, erstellen wir einfach mal ein neues Dokument durch die gewohnte Nutzung des Plus-Zeichens: Wo vorher nur die Möglichkeit zum Upload oder zur Erstellung eines Ordners respektive einer Textdatei bestand, erkennen wir bereits eine Veränderung: Auch ein neues Textdokument im Open Document-Format, eine neue Tabelle oder eine neue Präsentation können nun erstellt werden.

Nextcloud Collabora Online Nextcloud neues Dokument

Nach Eingabe des Dateinamens können wir das Dokument nun direkt editieren, was auch ohne Fehlermeldung möglich sein sollte:

Nextcloud Collabora Online Nextcloud Dokument editieren

Somit können wir nun loslegen und unser Online-Office innerhalb unserer eigenen, auf Nextcloud basierten, private Cloud nutzen. Nextcloud als Lösung an sich ist – auch im kleinen Kreis – nun durch die Office-Features ergänzt worden und die Funktionen von Collabora Online runden ein bereits perfektes Produkt noch einmal final ab!

Wer eh schon viel mit Nextcloud arbeitet und sich bereits von den Cloud-Lösungen der großen Anbieter gelöst hat, wird eventuell noch die hier dargestellten Funktionen vermißt haben. Am Ende dieses Tutorials sollte dieses Manko nun abgestellt sein und wer weiß – vielleicht reichen dem ein oder anderen ja die Möglichkeiten, die ein webbasiertes Office bietet?

Viel Spaß mit Nextcloud 13 und der Collabora Online Development Edition!

19 Kommentare

  1. Toller Blog – klasse Anleitung. Sehr übersichtlich und gut nachvollziehbar geschrieben. Hat prima geklappt. Vielen Dank an dieser Stelle für Deine Arbeit :-).

    LG
    Jochen

    1. Hallo Jochen, vielen Dank – es hatte ein wenig gedauert, bis ich mal alle Informationen zu dem Thema zusammengetragen hatte, aber das Ergebnis scheint ja zu stimmen. Tolles Feedback, danke dafür!

  2. Super Anleitung… nur noch “eine” Frage:

    Wenn ich das richtig verstanden hab, dann lässt Du den Office-Dienst über SSL und die URL office.domain.tld nach draußen. Ist das wirklich nötig?

    Wenn NextCloud der einzige Zugang zu dem office-Dienst ist, kann ich mir doch das https und die Url sparen? Vorausgesetzt es läuft alles auf der selben lokalen Maschine und der office-Port ist über die Firewall eh nach draußen gesperrt?

    Grüße
    Clemens

    1. Hallo Clemens, danke für das Feedback. Prinzipiell sollte das auch wie von Dir vorgeschlagen funktionieren. In meinem Fall laufen beide Instanzen ja auf der gleichen internen IP und die Trennung in zwei Hosts ist einfach der „Sauberkeit“ geschuldet, Port 80 und 443 sind da eh offen für Nextcloud. Hängt aber natürlich von dem jeweiligen Szenario ab – man muss natürlich nicht mehr freigeben bzw. extern verfügbar machen s unbedingt notwendig, da gebe ich Dir recht!

  3. Hallo,

    hat soweit funktioniert habe allerdings das folgende Problem: Öffne ich ein Dokument per Desktop PC, so erscheint nur ein grauer Hintergrund sowie die Menüleiste. Per Handy funzt alles. Hat da jemand Ben Tipp?

  4. Hallo,

    bis zu dem Befehl
    /usr/bin/certbot-auto
    hat alles super geklappt mit dem Ubuntu Server ….
    ist das nicht Standard installiert ?

    MfG

  5. Hi,
    ich bin Linux newbie und kenne mich auch nicht mit CA aus.
    ich versuche local eine cloud zu hosten, muss ich dann die CA mit open SSL erstellen? und ist die domain userver18.XYZ.local möglich?!?

    MFG

    Gerhard

    1. Hallo Gerhard, Du kannst ein selbst-signiertes Zertifikat erstellen, das hat aber in Sachen Vertraulichkeit nicht wirklich einen Sinn – da kannst Du eigentlich auch ganz ohne SSL arbeiten (wenn die Cloud dann eh lokal sein soll). Ansonsten würde ich empfehlen, die Cloud sauber über Port 80 und 443 (SSL) nach draussen kommunizieren zu lassen (so kommst Du auch von aussen drauf) und dann über Let’s Encrypt / Certbot ein entsprechendes Zertifikat zu installieren. Das sollte langfristig die bessere Lösung sein!

  6. Unautorisierter WOPI-Host. Bitte versuchen Sie es später noch einmal und melden Sie sich bei Ihrem Administrator, falls das Problem weiterhin besteht.

      1. Entweder hast Du in den Einstellungen bei der “Collabora Online” den falschen Host eingetragen (bei mir heißt er nicht wie die Nextcloud selbst “nextcloud.tld.de”, sondern “office.tld.de”) oder Du hast den Docker-Container gestartet und NICHT den Namen Deiner ursprünglichen Nextcloud-Instanz genommen:

        sudo docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=nextcloud\\.domain\\.tld’ –restart always –cap-add MKNOD collabora/code

        Das solltest Du noch einmal prüfen, sofern Du zwei virtuelle Hosts angelegt hast!

  7. Danke für das Tutorial 🙂

    Wenn ich mir die Docker Info anschaue bekomme ich folgende Warnungen:

    WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
    Use --storage-opt dm.thinpooldev to specify a custom block storage device.
    WARNING: No swap limit support

    Wie kann ich die Warnungen beheben?
    Ich hab leider absolut keine Ahnung von Linux 🙁

    Danke für die Hilfe!!!

        1. Hallo,

          das mit dem Storage-Driver ist völlig normal: Dieser devicemapper ist ein Standard-Storage-Treiber für die Snaps und der einzige, mit dem COllabora Online läuft. Die Warnung besagt nur, dass der nicht für Produktionsumgebungen geeignet ist, aber prinzipiell läuft. Kommst Du eigentlich nicht drum herum, wenn Du Collabora Online nutzen möchtest.

          Sieht aber in Sachen Installation dennoch richtig aus bis hierhin. Versuch einfach mal, ab Schritt zwei weiterzumachen

  8. Hallo,

    könntest du das Tutorial mit Debian9, Nextcloud14 und Collobra nochmal wiederholen?

    Ich bekomme den Fehler, dass der WOPI host den token nicht richtig bekommt und denke das ich irgentwo nen kleinen Fehler habe…. *knurr* da sind bestimmt schon Tage für drauf gegangen, aber immerhin hab ich jetzt Certs:-)
    Muss bei dem aktuellen der DeviceMapper immer noch benutzt werden? bei dem docker-ce unter Debian9 ?

    MfG

    Gerhard-René

    1. Hallo Gerhard-René, aktuell ist der Device Mapper immer noch die einzige Variante, auf der Collabora Online meines Wissens nach aktuell läuft. Leider fehlt mir aktuell die Zeit, das Ganze in der gewünschten Konstellation nachzubauen, wobei Nextcloud 14 da nicht sonderlich etwas anders macht. Die Anbindung von Collabora geschieht ja eine Ebene darunter, dort ändert sich meiner Meinung nach nicht viel. Gruss, Olli

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*