Ein klassisches Anwendungsgebiet für „die Cloud“ ist das Erstellen und die Bearbeitung von Office-Dokumenten. Diese können dann meistens direkt im Browser auch durch mehrere Benutzer gleichzeitig editiert werden. Nextcloud bietet dieses Feature nicht direkt out-of-the-box, allerdings kann die selbstgehostete Cloud leicht durch Apps erweitert werden. Genau hier setzt ONLYOFFICE an: Durch diese Erweiterung kann Nextcloud einfach um Online-Office-Funktionalitäten erweitert werden.

Dieser Artikel beschreibt daher die Installation und Konfiguration von ONLYOFFICE mittels Docker und das Zusammenspiel mit einer bestehenden Nextcloud-Instanz. Wie immer liegt das Augenmerk v.a. auf der Sicherheit aller beteiligten Systeme.

Achtung: Dieser Artikel ist nicht mehr aktuell. Das hier gezeigte Setup hat eine erhebliche Einschränkung: Der Zugriff auf Office-Dokumente ist hiermit nicht aus dem Internet, sondern nur aus dem lokalen Netzwerk (LAN) möglich.

In einem Folgeartikel wird ein verbessertes Setup gezeigt, bei dem diese Probleme nicht auftreten: Nextcloud: Online-Office mit ONLYOFFICE (mit eigener Subdomain)

Update-Historie (letztes Update 09.11.2018)

 

ONLYOFFICE vs Collabora

Bevor es an die Installation geht, noch ein Hinweis: ONLYOFFICE ist nur eine Möglichkeit, Nextcloud um Online-Office-Funktionalitäten zu erweitern. Eine Alternative dazu ist Collabora. Die Installation und Einrichtung von Collabora habe ich bereits im Artikel Nextcloud: Online-Office mit Collabora beschrieben. Nun stellt sich natürlich die Frage, auf welche Lösung man setzen sollte. Hier gibt es keine eindeutige Empfehlung: Beide Lösungen integrieren sich gut in Nextcloud und bieten ähnliche Features.

Die Unterschiede zwischen den Office-Lösungen weden in diesem Artikel detailliert beschrieben. Aber Achtung: der Vergleich wurde von ONLYOFFICE veröffentlicht, daher ist es nicht auszuschließen, dass hier eine Lösung per se besser abschneidet. Der Artikel ist aber trotzdem interessant, da er auch die Unterschiede in der technischen Umsetzung beider Lösungen beleuchtet.

Was für den Endanwender sicherlich am wichtigsten ist: Collabora kommt aus der LibreOffice-Ecke und bietet daher die beste Unterstützung für die OpenDocument-Formate. Bei der Entwicklung von ONLYOFFICE wurde von Anfang an Wert auf die OOXML-Formate (Office Open XML – die von Microsoft Office bevorzugten Formate) gelegt. Nach eigenen Angaben unterstützt ONLYOFFICE die Microsoft Office Formate zu 100%.

Daher werden Anwender, die hauptsächlich mit Microsoft Office arbeiten, wohl eher die Lösung von ONLYOFFICE bevorzugen. Wer dagegen meist LibreOffice/OpenOffice nutzt, sollte sich Collabora mal näher anschauen.

Am besten einfach mal selbst beide Lösungen ausprobieren: ONLYOFFICE und Collabora können parallel installiert werden, so dass man sich nicht sofort auf eine Office-Variante festlegen muss.

Installation und Konfiguration von ONLYOFFICE

ONLYOFFICE hat einige Abhängigkeiten, so dass eine manuelle Installation durchaus aufwändig ist. Daher beschreibt der Artikel die Installation der Office-Lösung mittels Docker. Dadurch kann ONLYOFFICE in wenigen Schritten schnell und einfach installiert werden.

Voraussetzungen

Folgende Voraussetzungen sind für den Betrieb von ONLYOFFICE zu erfüllen:

  • Ein System, auf dem Docker installiert ist. Im Rahmen des Artikels setze ich Ubuntu Server ein, allerdings sollten die Schritte auch auf andere Distributionen übertragbar sein. Wie Docker selbst installiert wird, wurde bereits im Artikel Docker auf Ubuntu Server erklärt.
  • ONLYOFFICE ist recht speicherintensiv. Daher sollte auf dem entsprechenden PC/VM mindestens 4 GB RAM verfügbar sein (besser noch 6 GB). Aus genau diesem Grund wird ONLYOFFICE auch auf einem Raspberry Pi (Affiliate-Link) nicht optimal laufen. Auch wenn es prinzipiell möglich ist, ONLYOFFICE auf einem solchen Kleinst-Rechner zu betreiben, wird die Performance hier zu wünschen übriglassen.
  • Nextcloud muss über eine gesicherte SSL-Verbindung erreichbar sein. Wer die Cloud wie im Artikel Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban beschrieben installiert hat, ist bestens vorbereitet, da hier ein SSL-Zertifikat von Let’s Encrypt zum Einsatz kommt.

Häufig liest man, dass ONLYOFFICE nicht auf demselben Rechner wie Nextcloud installiert werden sollte, da es hier zu Problemen kommen könnte. Dies trifft allerdings nur dann zu, wenn ONLYOFFICE manuell installiert wird. Wenn die Office-Lösung wie hier beschrieben über Docker läuft, dann kann ONLYOFFICE problemlos auf der gleichen Maschine wie Nextcloud betrieben werden.

Es ist aber natürlich auch möglich, ONLYOFFICE auf einem anderen Rechner (z.B. eine zweite virtuelle Maschine) zu installieren. In diesem Fall müssen nur die IP-Adressen entsprechend angepasst werden.

Vorbereitung: Zertifikat erstellen

Die Kommunikation zwischen Nextcloud und ONLYOFFICE muss über eine gesicherte SSL-Verbindung erfolgen. Hier kann der Einfachheit halber ein selbst signiertes Zertifikat zum Einsatz kommen.
Es wäre auch möglich, ein eigenes Zertifikat von Let’s Encrypt speziell für die ONLYOFFICE-Verbindung zu nutzen. Der Aufwand wäre hier allerdings etwas höher, da sämtliche Requests dann durch den nginx Gateway-Host geleitet werden oder die Zertifikate immer manuell kopiert werden müssten (Let’s Encrypt Zertifikate haben nur eine Gültigkeitsdauer von 90 Tagen).
Ein selbst signiertes Zertifikat ist hier das Mittel der Wahl, da es einfach erzeugt werden kann und die Verbindung trotzdem verschlüsselt ist. Auch muss man hier keinerlei Anpassungen am Webserver vornehmen, was eine zusätzliche Fehlerquelle wäre.

Das Zertifikat wird durch die folgenden Befehle angelegt:

  • Beim Befehl openssl req -new -key onlyoffice.key -out onlyoffice.csr wird man nach dem „Common Name“ gefragt (Common Name (e.g. server FQDN or YOUR name)). Hier ist einfach die IP des lokalen Systems anzugebnen (z.B. 192.168.178.60). Ebenso kann man ein „challenge password“ angeben. Dieses kann man einfach leer lassen (einfach mit Enter bestätigen).
  • Achtung: Die Erzeugung der sog. Diffie-Hellmann-Parameter mit einer Länge von 4096 Bit (openssl dhparam -out dhparam.pem 4096) kann u.U. sehr lange dauern. Auf schwacher Hardware kann das schon einmal mehrere Stunden in Anspruch nehmen. Wer nicht so lange warten möchte, kann die Schlüssel-Länge auf 2048 Bit reduzieren (openssl dhparam -out dhparam.pem 2048).
  • Das Zertifikat hat eine Gültigkeit von 3650 Tagen (10 Jahre). Hier kann bei Bedarf auch eine andere Gültigkeitsdauer angegeben werden.

Installation in einem Schritt

Die Installation von ONLYOFFICE erfolgt dann dank Docker mit nur einem einzigen Befehl:

Folgende Punkte gilt es hier zu beachten:

  • Da der Webserver bereits auf dem Port 443 (HTTPS) lauscht, kann der Docker-Container nicht den gleichen Port belegen. Der Parameter -p 4433:443 sorgt dafür, dass der Container selbst mit dem Port 443 (intern) arbeitet, nach außen wird jedoch der Port 4433 genutzt.
  • Die nächsten zwei Parameter (-e JWT_ENABLED=’true‘ -e JWT_SECRET=’geheimes-secret‘) sorgen dafür, dass zur Kommunikation mit dem Container ein sog. JSON Web Token benötigt wird. Im Grunde genommen handelt es sich dabei um ein Passwort („geheimes-secret“ – hier sollte man natürlich ein eigenes Passwort wählen), welches später in Nextcloud hinterlegt werden muss, damit die Verbindung zum ONLYOFFICE Container aufgebaut werden kann. Dies verhindert, dass der ONLYOFFICE-Container „unbemerkt“ von anderen Verbindungen genutzt werden kann.
  • Mit –restart=always wird angegeben, dass der Container bei jedem Systemstart hoch gefahren wird. Damit „überlebt“ der Docker-Container auch Neustarts des Systems.
  • Der letzte Parameter (-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver) definiert ein sog. Volume: Alle Dateien, die im Verzeichnis /app/onlyoffice/DocumentServer/data des Hosts liegen, werden innerhalb des Containers im Verzeichnis /var/www/onlyoffice/Data onlyoffice/documentserver bereit gestellt. Diese Funktion wird benötigt, damit der Container das zuvor erzeugte Zertifikat nutzen kann.

Nun wird der ONLYOFFICE-Container heruntergeladen (ca. 650 MB), was je nach Internetverbindung ein paar Minuten dauern kann.

Installation von ONLYOFFICE mittels Docker

Installation von ONLYOFFICE mittels Docker

Ob der Container ordnungsgemäß läuft, kann man testen, indem man über den Browser eine Verbindung aufbaut (die URL dazu ist in unserem Fall https://192.168.178.60:4433). Durch den Einsatz des selbst signierten Zertifikats wird der Browser eine Warnung ausgeben, das stört uns an dieser Stelle allerdings nicht.

ONLYOFFICE läuft

ONLYOFFICE läuft

Nextcloud: ONLYOFFICE App aktivieren

Damit ONLYOFFICE nun aus Nextcloud heraus angesprochen werden kann, braucht man noch die entsprechende App. Man findet diese im App-Store von Nextcloud in der Kategorie Büro & Text.

ONLYOFFICE im Nextcloud App-Store

ONLYOFFICE im Nextcloud App-Store

Nextcloud-Konfiguration anpassen

Bevor nun die Verbindung zu ONLYOFFICE in Nextcloud hinterlegt werden kann, muss noch eine kleine Anpassung an der Konfiguration von Nextcloud erfolgen. Dazu wird die Konfiguration mit folgendem Befehl auf der Konsole geöffnet:

Hier wird nun am Ende der Datei (aber vor der letzten schließenden Klammer) ein Eintrag hinzugefügt:

Dieser Schritt ist zwingend erforderlich, da Nextcloud sonst die Verbindung zu ONLYOFFICE auf Grund des selbst signierten Zertifikats nicht zulässt.

Am Schluss sollte der ganze Rechner einmal neu gestartet werden:

Verbindung zwischen Nextcloud und ONLYOFFICE herstellen

Der letzte Schritt zu einer Online-Office-Lösung mit Nextcloud ist nun nur noch das Hinterlegen der Verbindungs-Details zwischen der Cloud und ONLYOFFICE.

Dazu in Nextcloud einfach in die Einstellungen gehen. Unter Verwaltung > ONLYOFFICE findet man nun die entsprechenden Einstellungen:

  • Serviceadresse der Dokumentbearbeitung: Hier wird die IP-Adresse des Systems angegeben, auf dem der entsprechende Docker-Container läuft. In unserem Beispiel hat er PC die IP 192.168.178.60, daher wird hier https://192.168.178.60:4433 angegeben. Wichtig ist hier der Port, der auch beim Starten des Docker-Containers angegeben wurde (4433).
  • Geheimer Schlüssel (freilassen, um zu deaktivieren): Hier ist das JWT-Token anzugeben, welches beim Starten des Docker-Containers angegeben wurde.
  • Alle anderen Felder kann man leer lassen.
ONLYOFFICE Einstellungen in Nextcloud

ONLYOFFICE Einstellungen in Nextcloud

Nach einem Klick auf Speichern sollte eine Erfolgsmeldung kommen und die Verbindung zwischen Nextcloud und ONLYOFFICE wurde erfolgreich konfiguriert.

Online-Office im Browser

In der Datei-Ansicht von Nextcloud können nun einfach Office-Dokumente angelegt werden bzw. hochgeladen werden. Mit einem Klick werden diese nun mit ONLYOFFICE geöffnet und man kann mit der Bearbeitung beginnen.

Online-Office mit Nextcloud und ONLYOFFICE

Online-Office mit Nextcloud und ONLYOFFICE

Update von ONLYOFFICE

Von Zeit zu Zeit erscheinen nun neue Versionen des Docker-Containers von ONLYOFFICE. Um hier ein Update durchzuführen, sind nur wenige Schritte erforderlich.

Zunächst muss die ID des laufenden Containers mit folgendem Befehl ermittelt werden:

Der Container wird gestoppt und entfernt:

Die neue Version des Containers wird über diesen Befehl herunter geladen:

Nun kann der aktualisierte Container wie gewohnt gestartet werden:

Troubleshooting

Manchmal kann es passieren, dass die Verbindung zum ONLYOFFICE-Server nicht auf Anhieb klappen will. Die Probleme können aber meist relativ schnell aus dem Weg geräumt werden.

Fehler beim Aufruf von ONLYOFFICE über den Browser

Um zu prüfen, ob ONLYOFFICE ordnungsgemäß läuft, kann man die IP der Maschine direkt im Browser aufrufen (in diesem Beispiel: https://192.168.178.60:4433). Wenn hier nur eine Fehlermeldung erscheint, dass die Website nicht erreichbar ist, sollte der laufende Docker-Container überprüft werden.

Zunächst wird die Container-ID ermittelt:

Anschließend kann man sich die Logs des Containers anzeigen lassen:

Hier kann es vorkommen, dass ähnliche Meldungen wie diese angezeigt werden:

Hier gibt es momentan wohl noch hin und wieder Probleme (siehe GitHub-Issues hier und hier). In diesem Fall hilft es meistens, den Docker-Container oder besser noch den ganzen PC neu zu starten (zur Not auch mehrmals).

Fehlermeldung beim Einbinden von ONLYOFFICE in Nextcloud

Wenn beim Konfigurieren der Verbindung zum ONLYOFFICE-Server eine Fehlermeldung auftritt (Fehler beim Anschließen (Bad Request oder Timeout Fehlermeldung)), sollte man zunächst mal das Log von Nextcloud überprüfen. Hier sollte meinst ein Hinweis auf das konkrete Problem zu finden sein.

Folgende Log-Meldung weist z.B. auf die fehlende Anpassung der config.php von Nextcloud in Bezug auf ONLYOFFICE hin (siehe hier):

Fazit

Dank des verfügbaren Docker-Container für ONLYOFFICE kann Nextcloud schnell und einfach um Online-Office-Funktionen ergänzt werden. Da prinzipiell auch kein zweiter PC/VM zum Einsatz kommen muss, ist dies eine sinnvolle Erweiterung jeder Nextcloud-Installation.

Ihr konntet ONLYOFFICE mit diesem Tutorial erfolgreich installieren oder hattet mit der Vorgehensweise noch Probleme? Oder bevorzugt ihr Collabora als Online-Office-Lösung für Nextcloud? Dann hinterlasst doch einfach einen Kommentar.