Collabora/LibreOffice als Docker Container in Nextcloud auf der Synology DiskStation integrieren

OnlyOffice ist seit Nextcloud Hub (18.0) in Nextcloud integriert. Mit dem Community Document Server kann man eine integrierte Version des OnlyOffice-Servers installieren und so Office-Dokumente direkt in der Cloud betrachten und bearbeiten. Allerdings funktioniert diese integrierte Version alles andere als gut und ist für den produktiven Einsatz wenig geeignet. OnlyOffice kann zwar als Docker Container bereitgestellt werden, da dort aber kein Editieren auf Mobilgeräten möglich ist, ist das für viele keine Alternative. Mit nur wenig Aufwand, kann man (die entsprechende DiskStation vorausgesetzt) aber Collabora als Docker Container bereitstellen.

Probleme der integrierten OnlyOffice-Version

Die, als Community Document Server, in Nextcloud integrierte Version von OnlyOffice scheint einige Fehler aufzuweisen. Einige Leser haben von Datenverlust berichtet, wenn ein Dokument über OnlyOffice (im Browser oder Mobil) bearbeitet wurde. Ich selbst habe das selbst schon einige Male erlebt. Ein weiteres Problem ist die fehlende Erfassung einer Änderung seitens Nextcloud. Das bearbeitete Dokument wird zwar gespeichert, wird aber in der Cloud nicht richtig erfasst. Öffnet man das Dokument in OnlyOffice, erhält man den neuesten Stand. Auf andere Geräte wird dieser Stand aber nicht synchronisiert.
Und ein weiterer, schwerwiegender Fehler betrifft die Versionsverwaltung. Die funktioniert mit OnlyOffice nämlich nicht richtig. Nextcloud zeigt zwar alle erfasste Versionen an (unter Details > Versionen) ruft man aber eine ältere Version eines Excel-Dokuments auf, wird immer die neueste Version in OnlyOffice geöffnet. Im Editor kann man auch nicht auf die Versionshistorie zugreifen. Bei Word-Dokumenten öffnet sich zwar der Editor inklusive Fenster mit Versionshistorie, bleibt aber beim Laden des Dokuments stecken. Das Wiederherstellen und anschließende Öffnen des Dokuments funktioniert in beiden Fällen, ist aber kein praktikabler Workaround. Die nicht funktionierende Versionsverwaltung ist übrigens schon sehr lange bekannt.
Die Fehler treten nicht bei allen Usern auf und sind auch nicht auf Installationen auf einer DiskStation begrenzt. Generell lautet der Konsens, dass die integrierte OnlyOffice-Version nicht wirklich für einen produktiven Betrieb geeignet ist. Da gegenüber Nextclouds OnlyOffice-Version die Original-Version kein Editieren auf Mobilgeräten erlaubt, ist Collabora/LibreOffice die bessere alternative.

Vorbereitung

Bevor wir loslegen, hier eine kleine Checkliste an Dingen die ihr benötigt.

  • Nextcloud, installiert auf der DiskStation, eine Anleitung dazu findet ihr in diesem Artikel. Nextcloud läuft dabei direkt am Webserver der DiskStation. Ihr könnt Collabora als Docker Container auf der DiskStation auch für eine Nextcloud-Installation auf einem anderen Gerät oder Nextcloud als Docker Container bereitstellen. In diesen Fällen kann aber eine zusätzliche Konfiguration notwendig sein, um die Kommunikation mit dem Container sicherzustellen.
  • Eine DiskStation mit installiertem Docker. Docker findet ihr im Paket-Zentrum. Sollte das nicht der Fall sein, ist eure DiskStation zu schwach.
  • Ihr benötigt eine gültige Subdomain, die ihr ausschließlich für OnlyOffice verwendet.

Installation

Vergewissert euch noch einmal, ob die folgende Anleitung auch das ist, was ihr erreichen wollt. Nextcloud ist direkt auf der DiskStation installiert, lediglich Collabora wird per Docker bereitgestellt.

Collabora/LibreOffice als Docker Container bereitstellen

Öffnet Docker auf eurer DiskStation und wechselt in den Bereich Registrierung. Sucht dort über das Suchfeld nach “collabora”. Ladet das Image “collabora/code” herunter.

Image in der Registry suchen
Image in der Registry suchen

Nachdem das Image heruntergeladen wurde, wechselt in den gleichnamigen Bereich und klickt doppelt auf das Image, um einen neuen Container zu erstellen. Wählt zuerst “Die gewählten Netzwerke verwenden” und wählt “bridge”, klickt anschließend auf Weiter. Ihr könnt die Ressourcen für den Container einschränken, wenn ihr wollt. Im Leerlauf benötigt der Container quasi keine CPU-Leitung, aber einige Hundert MB RAM (Werte können je nach Nutzung weiter ansteigen). Wie die Ressourcenbelegung des Containers während der Nutzung aussieht, hängt davon ab, wie viele Dokumente gleichzeitig bearbeitet werden bzw. wie viele Nutzer darauf zugreifen.

Aus dem heruntergeladenen Image kann jetzt ein Container erstellt werden
Aus dem heruntergeladenen Image kann jetzt ein Container erstellt werden
Als Netzwerk nehmt das bridge-Netz
Als Netzwerk nehmt das bridge-Netz

Klickt auf Erweiterte Einstellungen und wechselt in den Reiter Umgebung, damit der Container funktioniert, müssen einige Umgebungsvariablen hinzugefügt werden. Klickt auf Hinzufügen um eine neue Variable anzulegen. Folgende Variablen müsst ihr hinzufügen:

NameWertErklärung
admincol_admin (Beispiel)ein beliebiger Benutzername für den
Administrator-Benutzer des Containers
password1supersafepassphrase! (Beispiel)Passwort für den Admin
aliasgroup1https://cloud.mydomain.com:443 (Beispiel)Die URL eurer Nextcloud
DONT_GEN_SSL_CERT1Damit kein SSL-Zertifikat erstellt wird, die SSL-Absicherung erfolgt an anderer Stelle
extra_params--o:security.seccomp=false --o:security.capabilities=false --o:ssl.enable=false --o:ssl.termination=trueDie Parameter in extra_params haben folgende Bedeutung:
--o:security.seccomp=false schaltet die Verwendung von Seccomp ab.
--o:security.capabilities=false schaltet die Verwendung von Capabilities ab. Es braucht dann auch kein CAP_ADD mehr.
--o:ssl.enable=false schaltet SSL/TLS im Container ab.
--o:ssl.termination=true sagt dem Container, dass er hinter einem Proxy sitzt, der SSL/TLS macht.
Umgebungsvariablen für den Collabora-Container
Die Umgebungsvariablen für den Container
Die Umgebungsvariablen für den Container

SSL im Container ist nicht notwendig. Zuerst müsste jemand auf eure DiskStation gelangen um das ausnutzen zu können und da habt ihr dann sowieso ganz andere Probleme als den Container. Die Verbindung zu eurer DiskStation selbst bzw. zum Container von außen, sichern wir an anderer Stelle ncoh ab.

Klickt auf Speichern und anschließend auf Weiter. Im nächsten Fenster müsst ihr den internen Container Port (9980) auf einen lokalen Port mappen. Das ist notwendig, da der Container eben nicht im Hostnetzwerk (also eurer DiskStation) läuft, sondern in einem eigenen. Vergebt den lokalen Port manuell, die Auswahl “Automatisch” kann dazu führen, dass der Container beim Starten nicht immer die selben Portnummern zugewiesen bekommt, das ist aber wichtig um Collabora mit eurer Nextcloud zu verbinden. Sollte 9980 bereits von einer anderen Anwendung eurer DiskStation verwendet werden, werdet ihr darauf hingewiesen. Ihr müsst dann selbst eine Nummer eingeben, die noch nicht verwendet wird. Klickt jetzt Weiter bis ihr zur Zusammenfassung kommt und klickt auf Fertig. Der Container wird angelegt und startet.

Der lokale Port muss selbst vergeben werden
Der lokale Port muss selbst vergeben werden

Wechselt in den Bereich Container und markiert zuerst den Collabora-Container und klickt anschließend auf Details. Im Reiter Terminal könnt ihr den Startvorgang des Containers mitverfolgen. Es werden nur Ausgaben angezeigt, die nach dem Öffnen des Detailfensters erfolgen. Vergangene Ausgaben findet ihr im Reiter Protokoll. Der Start dauert einige Zeit und erfordert einige Ressourcen. Wartet auf die Meldung "Ready to accept connections on port 9980". Der Container ist jetzt einsatzbereit.

Die Meldung zeigt einen erfolgreichen Container-Start an
Die Meldung zeigt einen erfolgreichen Container-Start an

Reverse-Proxy einrichten

Euer Container ist jetzt unter jeder Adresse, unter der eure DiskStation erreichbar ist + den lokalen Ports erreichbar. Ist eure DiskStation per Domain erreichbar, die per SSL-Zertifikat abgesichert ist, würde das schon reichen. Um Dokumente von außen aufrufen zu können, müsstet ihr den lokalen Port aber am Router freigeben. Besser ist es daher, einen Reverse-Proxy mit eigener Sub-Domain einzurichten. Dann muss nur der HTTPS-Port am Router weitergeleitet werden. Das sollte bereits der Fall sein, wenn ihr eure Cloud von außen erreichen könnt.

Öffnet die Systemsteuerung und geht in den Bereich Anwendungsportal > Erweitert > Reverse Proxy. Klickt auf Erstellen und vergebt einen beliebigen Namen. Unter Quelle wählt ihr “HTTPS” aus und gebt die Sub-Domain ein und gebt als Port 443 an. Aktiviert zusätzlich noch HSTS. Als Ziel könnt ihr “HTTP” lassen und als Hostname gebt ihr "localhost" ein. Als Port verwendet ihr den lokalen HTTP-Port des Containers. Geht sicher, dass ihr die selbst vergebene Portnummer des Containers eingebt und NICHT die vorgegebene Portnummer 9980.

Angaben für den Reverse-Proxy
Angaben für den Reverse-Proxy

Damit der Container richtig funktioniert, müssen im Reiter Benutzerdefinierte Kopfzeile noch zwei Wertepaare hinzugefügt werden:

HeadernameWert
Upgrade$http_upgrade
Connection$connection_upgrade
Der benutzerdefinierte Header für den Collabora-Container

Klickt anschließend auf Speichern.

Der Container benötigt einen benutzerdefinierten Header..
Der Container benötigt einen benutzerdefinierten Header

Jetzt benötigt ihr für eure Sub-Domain noch ein SSL-Zertifikat. Wechselt in der Systemsteuerung dazu in den Bereich Sicherheit > Zertifikat und klickt dort auf Hinzufügen. Belasst “Neues Zertifikat hinzufügen” und klickt auf Weiter. Besitzt ihr für die Domain bereits ein Zertifikat von einem anderen Anbieter, wählt “Zertifikat importieren” und folgt dem Assistenten weiter. Andernfalls wählt ihr “Zertifikat von Let’s Encrypt abrufen”. Gebt die Sub-Domain und eine E-Mail-Adresse ein und klickt dann auf Weiter. Wartet, bis das Zertifikat erstellt wurde.

Wurde das Zertifikat erfolgreich erstellt, müsst ihr es jetzt nur noch dem Reverse-Proxy zuweisen. Klickt dazu auf Einstellungen und sucht in der Liste den zuvor angelegten Reverse-Proxy (zu erkennen an der verwendeten Sub-Domain). Im Drop-Down wählt ihr dann das passende Zertifikat (ebenfalls zu erkennen an der Sub-Domain).

Weißt dem Reverse-Proxy das richtige Zertifikat zu
Weißt dem Reverse-Proxy das richtige Zertifikat zu

Der Only-Office-Container ist jetzt über eine eigene SSL-gesicherte Sub-Domain erreichbar. Testet das, indem ihr https://eure-sub-domain.com in den Browser eingebt. Ihr solltet ein schwarzes Fenster mit dem Text “OK” in der linken oberen Ecke erhalten.

Nextcloud konfigurieren

Nachdem wir alles vorbereitet haben, ist es an der Zeit Collabora in der Nextcloud einzurichten. Habt ihr bereits die integrierte Version von Only-Office in Verwendung, müsst ihr zuerst die Apps “Community Document Server” und “ONLYOFFICE” deinstallieren oder zumindest deaktivieren. Wechselt dazu im Einstellungs-Menü in den App-Bereich. Ihr benötigt stattdessen die App Nextcloud Office (zu finden unter “Büro & Text”).

Die Connector-App für Collabora/LibreOffice
Die Connector-App für Collabora/LibreOffice

Wechselt anschließend in die Einstellungen und dort in den Bereich Office. Aktiviert “Verwende deinen eigenen Server” und gebt die Sub-Domain für den Collabora-Container ein. Klickt anschließend auf Save.

Die Container-URL in den Connector-Einstellungen eintragen
Die Container-URL in den Connector-Einstellungen eintragen

Das wars auch schon. Habt ihr die integrierte Version schon verwendet, funktioniert alles wie gewohnt oder sollte ich sagen es funktioniert, denn die oben geschilderten Probleme seid ihr jetzt los.
Habt ihr eine Office-Lösung für Nextcloud das erste Mal integriert, könnt ihr jetzt Office-Dokumente direkt in der Cloud öffnen und bearbeiten. Letzteres beschränkt sich auf den Browser.

Möchtet Ihr noch detailliertere Schritt-Für-Schritt-Anleitungen für euer Synology NAS, mit viel mehr Hintergrundinformationen, Tipps und Tricks? Dann holt euch mein Wissen als als umfassendes Praxis-Handbuch. Mehr Infos findet ihr in keinem Buch zu Synology und alles in der von mir gewohnten Qualität.

Die neue Auflage zu DSM 7 ist komplett überarbeitet.

Das Buch direkt beim Verlag

Das Buch auf Amazon

Related Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.