Collabora Online (LibreOffice) für Nextcloud – Schritt für Schritt (Docker)

8 Oktober 2018 Kein Kommentar Autor: Jürgen (jdo)

CODE steht für Collabora Online Development Edition und ist im Grunde genommen LibreOffice für den Browser oder LibreOffice Online. Collabora arbeitet mit den Entwickler der Nextcloud zusammen. Es gibt eine App im Store der Nextcloud, mit der sich Collabora Online in die Nextcloud integrieren lässt. Damit das funktioniert, musst Du aber einen Dokumentenserver am Laufen haben.

Für große Installationen empfehlen die Entwickler einen separaten Server. Für kleine Instanzen und auch den Heimgebrauch, kannst Du die Docker-Version von Code nutzen. Also es kommt ein bisschen auf die Hardware an. Mein Server von Contabo kommt damit locker zurecht und ich kann bitblokes.de, Nextcloud und Collabora Online auf dem gleichen Gerät betreiben (die virtuelle Kiste langweilt sich immer noch). Im Endeffekt musst Du ausprobieren, ob sich Deine Hardware dafür eignet. Eine Nutzung des Docker Containers auf dem Raspberry Pi lässt sich wohl ausschließen, da Collabora Online schon gleich mal 500 MByte RAM beim Start schnappt und für die Nutzung auch einiges an Ressourcen braucht.

Für diese Anleitung setze ich meine Installation von Nextcloud 14 unter Ubuntu 18.04 LTS Server voraus. Im Beitrag kommen 2 Domains vor und sieh bitte gut hin, denn da gibt es eine kleine Falle. Zumindest bin ich rein getappt. Meine Beispiel-Domains musst Du natürlich mit Deinen ersetzen:

  • nextcloud.example.org – die Beispiel-Domain, unter der meine Nextcloud erreichbar ist
  • office.example.org – unter der Domain ist mein Dokumentenserver, also CODE oder LibreOffice Online erreichbar.

Legen wir los?

Docker installieren und Apache vorbereiten – Reverse Proxy einrichten

Hinweis: Ich habe Apache am Laufen, weil ich mich damit einfacher besser als mit Nginx auskenne. Das ist wirklich der einzige Grund. Für Nginx gibt es ähnliche Anleitungen.

Zunächst einmal benötigen wir Docker auf unserem Ubuntu Server. Das ist schnell erledigt:

sudo apt install docker.io

Mehr musst Du an dieser Stelle nicht tun. Für Apache sind noch einige Module zu aktivieren, die vielleicht schon laufen, vielleicht auch nicht. Führe einfach die nachfolgenden Befehle aus, weil sie auch nichts schaden. Du bekommst höchstens eine Meldung, dass das Modul bereits aktiviert ist:

sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
sudo a2enmod ssl

Im Anschluss startest Du Apache neu:

sudo systemctl restart apache2

Nun habe ich die Datei /etc/apache2/sites-available/office.conf angelegt und die sieht bei mir wie folgt aus. Du musst eigentlich lediglich die Zeile ServerName office.example.org so abändern, dass Deine eigene Domain hinterlegt wird, die als Dokumentenserver dienen soll.

<VirtualHost *:80>
   ServerAdmin webmaster@example.org
   ServerName office.example.org

   # Encoded slashes need to be allowed
   AllowEncodedSlashes NoDecode

   # Container uses a unique non-signed certificate
   SSLProxyEngine On
   SSLProxyVerify None
   SSLProxyCheckPeerCN Off
   SSLProxyCheckPeerName Off

   # keep the host
   ProxyPreserveHost On

   # static html, js, images, etc. served from loolwsd
   # loleaflet is the client part of LibreOffice Online
   ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
   ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet

   # WOPI discovery URL
   ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
   ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery

   # Main websocket
   ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

   # Admin Console websocket
   ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws

   # Download as, Fullscreen presentation and Image upload operations
   ProxyPass /lool https://127.0.0.1:9980/lool
   ProxyPassReverse /lool https://127.0.0.1:9980/lool
</VirtualHost>

Is das erledigt, aktivieren wir die Seite.

a2ensite office

und laden danach die Konfiguration des Webservers neu:

sudo systemctl reload apache2

Nun stellen wir die Geschichte noch auf HTTPS um und holen uns mit dem Certbot von Let’s Encrypt ein entsprechendes Zertifikat (wie Du Let’s Encrypt installierst findest Du in der Anleitung, wie Du nextcloud 14 auf Ubuntu 18.04 LTS Server einrichtest):

certbot --apache -d office.example.org

Ist das Zertifikat geholt, wirst Du vor 2 Optionen gestellt. Du kannst die Software die Umleitung vornehmen lassen (2), dann werden alle Anfragen automatisch auf HTTPS umgeleitet. Ich mache das grundsätzlich und habe deswegen die 2 gewählt.

Ich überlasse certobo die Konfiguration der Umleitung auf HTTPS

Ich überlasse certobo die Konfiguration der Umleitung auf HTTPS

Die Softwre modifiziert die Datei office.conf und legt entsprechend auch gleich /etc/apache2/sites-available/office-le-ssl.conf an.

Collabora Online Development Edition (CODE) holen und starten

Nun schnappen wir uns das Docker Image von Collabora Online Development Edition (CODE)

sudo docker pull collabora/code

Das kann nun je nach Internet-Geschwindigkeit eine Weile dauern, zumal nach dem Download auch noch entpackt wird.

Docker Image von Collabora Online Development Edition (CODE) herunterladen

Docker Image von Collabora Online Development Edition (CODE) herunterladen

Nun starten wir das Docker-Abbild und hier musst Du aufpassen! In den Startbefehl kommt die Domain, unter der die Nextcloud erreichbar ist (in meinem Beispiel nextcloud.example.org) und nicht die Domain, unter der der Dokumentenserver angesprochen werden kann! An dieser Stelle habe ich damals nicht genau aufgepasst und verzweifelt den Fehler gesucht. Auch die Escape-Zeichen (\) gehören in den Befehl, so wie er dasteht (das ist eine Zeile!):

sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\\.example\\.org' -e "username=EIN-ANWENDER" -e "password=EIN-PASSWORT" --restart always --cap-add MKNOD collabora/code

Der username und das password sind für den Zugriff auf das Admin-Panel und die Statistiken zuständig (mehr dazu am Ende). Die Parameter sind optional, ich würde sie aber setzen.

Nextcloud App – Collabora Online

Mit der App Collabora Online aus dem Nextcloud Store verbindest Du Dich als WOPI Host (Nextcloud) mit dem Collabora Online Server (WOPI Client). Keine Panik, das ist ganz einfach.

Besuche als Nextcloud Admin zunächst die Apps und suche nach Collabora. Installiere und aktiviere die App. Ist das erledigt, klickst Du auf Einstellungen -> Collabora Online. Dort musst Du nun nur noch die Domain des Dokumentenservers eintippen: https://office.example.org.

Hier aktivierst Du Collabora Online für die Nextcloud

Collabora Online für die Nextcloud aktivieren

Wie Du siehst, kannst Du die App nur für bestimmte Gruppen freigeben. Weiterhin darfst Du bestimmen, dass nur bestimmte Gruppen Dokumente bearbeiten dürfen. Das ist auch eine sinnvolle Option. Setzt Du die Lösung in einer Umgebung ein, die per Standard mit OOMXL (Microsoft-Format) arbeiten, kannst Du die Option als Standard für neue Dateien nutzen. Sobald Du ein Dokument über das Web GUI anlegst, würde es als DOCX, XLSX oder PPTX angelegt. Aktivierst Du die Option nicht, sind es die LibreOffice-Gegenstücke ODT, ODS und ODP.

Collabora Online: neue Dokumente per Standard als OOXML anlegen

Collabora Online: neue Dokumente per Standard als OOXML anlegen

Beim ersten Start und nach CODE-Updates Fehler

Nach der Einrichtung hat aber nicht sofort alles geklappt. Es kam zu Fehlern mit Irgendwas WOPI Host, etwas in der Art:

Unauthorized WOPI host. Please try again later and report to your administrator if the issue persists.

Die üblichen Tricks halfen leider nicht. Ich habe Apache neu gestartet, den Docker Container nochmals gelöscht und einen neuen gestartet und so weiter. Alles hat nichts geholfen und es kam immer wieder die Fehlermeldung.

In meinen Fall half wirklich nur ein Neustart des kompletten Servers. Dabei ist das kein Einzelfall. Nach den Updates des Docker-Abbildes von CODE ist mir das auch schon öfters passiert (ich verwende Collabora Online schon länger unter Nextcloud 13 mit Ubuntu 16.04 LTS Server). Auch hier half nur ein kompletter Neustart des Servers.

Was ich auch schon hatte, dass ich nach dem Klick auf ein Dokument nur einen grauen Bildschirm erhielt. Das CODE-Logo ist nicht erschienen und im Prinzip hat sich gar nichts getan. Hier half bei mir ein Löschen des Cache:

sudo -u www-data php /var/www/nextcloud/occ files:cleanup

So ganz genau kann ich nicht reproduzieren, was die Fehler auslöst oder ausgelöst hat. Ein wilder Mix aus Cache-Löschen und Server-Neustarts hat es dann irgendwie wieder zum Laufen gebracht. Sorry, dass ich hier nicht weiter helfen kann. Das ist mir übrigens sowohl unter Ubuntu 16.04 LTS Server als auch 18.04 LTS Server passiert. Nein, die Logs haben nichts gebracht.

Weil wir gerade beim Update des Docker-Abbildes sind …

Docker-Version von Collabora Online aktualisieren

Ab und zu gibt es eine neue Version von Collabora Online Development Edition und die wollen wir natürlich nutzen. Dazu sind ein paar kleine Schritte notwendig. Als erste Schritt holst Du das neue Docker-Abbild (alle Schritte als root ausführen):

docker pull collabora/code

danach lässt Du Dir eine Liste mit allen laufenden Docker-Abbildern anzeigen.

docker ps
Mit docker ps eine Liste der laufenden Docker Container anzeigen lassen

Mit docker ps eine Liste der laufenden Docker Container anzeigen lassen

Aus dieser Liste brauchen wir die CONTAINER ID, weil wir nun das Docker Image stoppen:

docker stop CONTAINER_ID

Im Anschluss löschen wir das komplette Docker-Abbild:

docker rm CONTAINER_ID

Nun starten wir das neue Docker Image wie gehabt:

sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\\.example\\.org' -e "username=EIN-ANWENDER" -e "password=EIN-PASSWORT" --restart always --cap-add MKNOD collabora/code

Jetzt sollte wieder alles laufen. Wie schon erwähnt, gab es bei mir auch hier schon öfters Fehlermeldungen, die sich dann mit den oben beschriebenen Maßnahmen irgendwann bereinigen ließen.

So arbeitest Du mit Collabora Online unter Nextcloud

Da ich meist die Textverarbeitung, also LibreOffice Online Writer benötige, konzentriere ich mich auf diese Komponente. Ich weiß echt nicht, wie gut die anderen sind. Mit Calc habe ich einfache Aufgaben erledigt und das funktioniert gut. Wie das ist, wenn es komplexer wird, weiß ich nicht.

LibreOffice Online Writer in der Nextcloud integriert

LibreOffice Online Writer in der Nextcloud integriert

Bist Du an dieser Stelle angekommen, rate ich Dir, einfach loszulegen. Du kannst ganz normal schreiben, Text formatieren und so weiter. Dir stehen viele Funktionen zur Verfügung, die Du auch von der Desktop-Anwendung kennst. Es funktionieren auch einige Tastaturkürzel. Zum Beispiel kannst Du wie gewohnt mit Strg + K einen Link einfügen.

Klickst Du auf Hilfe, erscheint ein Menüpunkt, der sich Tastenkombinationen nennt. Dahinter verbirgt sich genau, was Du erwartest.

Es funktioniert natürlich (noch?) nicht alles, was Du von der Desktop-Variante kennst. CODE ist aber brauchbar und dient mir wunderbar als Notlösung. Außerdem macht es Spaß, sein eigenes Online Office am Laufen zu haben.

Mehrere Benutzer gleichzeitig und Dateien teilen

Angenehm ist, dass mehrere Benutzer gleichzeitig am gleichen Dokument arbeiten können. Du siehst unten rechts, wie viele Benutzer das Dokument geöffnet haben.

Mehrere Benutzer dürfen das Dokument gleichzeitig bearbeiten

Mehrere Benutzer dürfen das Dokument gleichzeitig bearbeiten

Ob die anderen nur mitlesen oder bearbeiten dürfen, hängt davon ab, wie Du das Dokument geteilt, beziehungsweise ob Du den jeweiligen Leuten eine Bearbeitung erlaubt hast.

Tipp: Teilst Du nun eine Datei via Nextcloud, wird das Dokument per Standard in Collabora Office im Browser geöffnet. Du kannst den Download aber direkt schicken, indem Du an die URL /download anhängst.

Es funktioniert übrigens auch die Rechtschreibprüfung. Du kannst die Sprache für das gesamte Dokument, nur die Auswahl oder einen Absatz festlegen. Klicke dafür auf Extras -> Sprache. Deutsche Rechtschreibung ist bei mir per Standard enthalten. Ich kann Wörter zum Wörterbuch hinzufügen, weiß aber nicht, wo die gespeichert werden. Außerdem erschließt sich mir nicht, wie ich eine eigene Wörterbuchliste importieren kann. Ich habe bereits eine ordentlich große Datei mit Wörtern, die ich in ein eigenes Wörterbuch aufgenommen habe. Vielleicht geht es aber auch noch gar nicht. Gefunden habe ich nur, wie ich mehr Sprachen hinzufügen könnte, das bringt mich aber nicht weiter. Weiß jemand mehr?

Dokument als PDF, ODF, RTF oder Microsoft-Format

Brauchst Du eine Datei in einem anderem Format, kannst Du das Dokument in verschiedenen Formaten herunterladen.

Klicke dazu auf Datei -> Herunterladen als und Dir stehen mehrere Formate zur Verfügung. Du darfst das Dokument als PDF, ODF, Microsoft-Format (ältere und OOXML) sowie RTF herunterladen. Ist hier kein Format dabei, das der andere lesen kann, dann soll er bitte sein Windows 3.11 for Workgroups auf Vordermann bringen. 🙂

Datei in verschiedenen Formaten herunterladen

Datei in verschiedenen Formaten herunterladen

Administratorseite aufrufen und Statistiken einsehen

Rufst Du die URL https://office.example.org/loleaflet/dist/admin/admin.html auf, wirst Du nach dem Passwort gefragt, das Du beim Start der Docker-Instanz hinterlegt hast. Sind die Angaben korrekt, siehst Du so eine Seite.

Admin-Seite der Collabora-Online-Instanz

Admin-Seite der Collabora-Online-Instanz

Viel an Einstellungen ist da nicht drin. Aber es sind ganz interessante Zahlen, die beim Troubleshooting helfen könnte. Das musst Du natürlich nicht dauern offen haben oder beobachten. Allerdings ist es gut zu wissen, dass es das Ding gibt.

Bekannte Probleme

Auf der Projektseite von CODE findest Du ganz unten eine Sektion mit bekannten Problemen. Dir sollte außerdem bewusst sein, dass sich CODE an Heim-Anwender und kleinere Installationen richtet. Die Lösung via Docker eignet sich nicht, mehrere Dutzend Leute damit zu versorgen. Solltest Du so etwas vorhaben, wendest Du Dich am besten direkt an die Entwickler.

Auf jeden Fall ist es interessant, Collabora Online (LibreOffice Online) zusammen mit der Nextcloud in Aktion zu sehen. Für meine Zwecke ist es absolut brauchbar, auch wenn mir die Desktop-Variante von LibreOffice mehr zu bieten hat.

Nette Pi-Konstellation

Du kannst gerne Deinen Senf zu diesem Beitrag geben: Hier geht es zu den Kommentaren




Schreiben macht durstig! Eine kleine Erfrischung kann daher nie schaden. Wem dieser freie Artikel gefallen hat, der darf mir gerne einen frisch gezapften Hopfen-Tee ausgeben (Paypal - der Spenden-Knopf
)
oder

Bitcoin-Adresse: 17F1hqc9LgsAC19DPv5PaRbqsEhuE8AmAA

Ethereum-Adresse: 0x9cc684575721dc07b629ad5d81b43ab4b992e76e

Verge-Adresse: DJaJtZeW494xhnRJJt19Lnt2R5pz7zRp5A

Ich freue mich über jede noch so kleine Spende. Vielen Dank und Prost!

 
 Alle Kommentare als Feed abonnieren

Antworten