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. Mit nur wenig Aufwand, kann man (die entsprechende DiskStation vorausgesetzt) OnlyOffice als Docker Container bereitstellen.
Container Manager
Ab DSM 7.2 heißt das Docker-Paket “Container Manager”, die Anleitung dazu gibt’s hier.
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 und die Original-Version beispielsweise als Docker Container bereitgestellt, wesentlich besser läuft.
Achtung – Editieren auf dem Smartphone
OnlyOffice hat vor einiger Zeit das Editieren auf Mobilgeräten aus der kostenlosen Version entfernt. Diese Einschränkung wurde von Nextcloud in deren integrierter Version entfernt. Wenn ihr OnlyOffice per Docker bereitstellt und keine Lizenz besitzt, könnt ihr auf Mobilgeräten Dokumente nur betrachten, nicht editieren. Solltet ihr dieses Feature benötigen, könnt ihr warten, bis Nextcloud den Document Community Server halbwegs stabil gebracht hat, oder ihr weicht auf Collabora aus. Die Anleitung dazu findet ihr hier.
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 OnlyOffice 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.
- Ordner für den Container, üblicherweise werden diese Ordner im freigegebenen Ordner
/docker
angelegt. Erstellt dort einen Ordneronlyoffice
, und darin die beiden Ordnerdata
undlog
. - Ihr benötigt eine gültige Subdomain, die ihr ausschließlich für OnlyOffice verwendet.
Subdomain und SSL-Zertifikat
Wollt ihr auf eure Cloud und OnlyOffice über das Internet zugreifen, sind eine eigene Domain und SSL-Zertifikate unerlässlich. Habt ihr Nextcloud über HTTPS abgesichert, können keine Verbindungen zu externen Diensten via HTTP aufgebaut werden. Auch einige Docker Images setzen standardmäßig eine verschlüsselte Verbindung voraus. Im LAN würde zwar eine lokale Domain und ein selbst-signiertes Zertifikat ausreichen, ich habe das aber nicht getestet und kann daher nicht sagen, ob OnlyOffice das zulässt, wenn ja, dann ist vermutlich eine zusätzliche Konfiguration des Containers notwendig.
Für die Anleitung gehe ich davon aus, dass ihr eine Subdomain (DDNS-Domain) eingerichtet habt, die auf eure externe IP verweist.
Installation
Vergewissert euch noch einmal, ob die folgende Anleitung auch das ist, was ihr erreichen wollt. Nextcloud ist direkt auf der DiskStation installiert, lediglich OnlyOffice wird per Docker bereitgestellt.
OnlyOffice als Docker Container bereitstellen
Öffnet Docker auf eurer DiskStation und wechselt in den Bereich Registrierung. Sucht dort über das Suchfeld nach “onlyoffice”. Achtet darauf, das richtige Image herunterzuladen. Ihr benötigt onlyoffice/documentserver
. Das Image communityserver enthält keine Office-Editoren, sondern stellt Funktionen bereit, die in unserem Fall Nextcloud übernimmt.
Nachdem das Image heruntergeladen wurde, wechselt in den gleichnamigen Bereich und klickt doppelt auf das Image, um einen neuen Container zu erstellen. 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.
Abweichende Schritte
Je nach Docker-Version (bzw. DSM-Version 7.0 oder 7.1) weichen die nachfolgenden Schritte leicht ab. Unter DSM 7.0 findet ihr alle notwendigen Optionen in den erweiterten Einstellungen. Nach dem Update auf 7.1 und einem einhergehenden Docker-Update sind einige der Optionen direkt über den Container-Erstellen-Dialog erreichbar. Diese Anleitung basiert auf dem alten Dialog.
Klickt auf Erweiterte Einstellungen und wechselt in den Reiter Volume. Klickt auf Ordner hinzufügen und wählt den vorbereiteten Ordner data (/docker/onlyoffice/data
) aus und klickt auf Auswählen. Gebt im Feld unter “Mount-Pfad” /var/www/onlyoffice/Data
ein. Widerholt den Schritt für den Ordner log und gebt /var/log/onlyoffice
ein. Wechselt dann in den Reiter Netzwerk und geht sicher, dass als Netzwerk “bridge” ausgewählt wurde, bzw. die Option “Dasselbe Netzwerk wie Docker Host verwenden” NICHT aktiviert wurde. Im Reiter Port-Einstellungen müsst ihr die internen Container Ports (443 und 80) auf lokale Ports mappen. Das ist notwendig, da der Container eben nicht im Hostnetzwerk (also eurer DiskStation) läuft, sondern in einem eigenen. Vergebt die lokalen Ports manuell, die Auswahl “Automatisch” kann dazu führen, dass der Container beim Starten nicht immer die selben Portnummer zugewiesen bekommt, das ist aber wichtig um OnlyOffice mit eurer Nextcloud zu verbinden. Da 80 und 443 bereits vom Webserver eurer DiskStation verwendet werden, müsst ihr selbst Nummern eingeben, die noch nicht verwendet werden.
Das wars, klickt auf Übernehmen und Weiter, geht sicher, dass “Diesen Container nach Abschluss des Assistenten ausführen” aktiviert ist und klickt auf Fertig. Der Container wird angelegt und startet.
Wechselt in den Bereich Container und markiert zuerst den OnlyOffice-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 "server is up INFO"
. Der Container ist jetzt einsatzbereit.
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 80. Klickt anschließend auf Speichern.
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.
Ports öffen
Damit ihr ein Zertifikat beantragen könnt, müssen die Ports 80 und 443 in eurem Router geöffnet werden und zur DiskStation weitergeleitet werden. Auch die Firewall darf die Ports nicht blockieren oder einschränken.
DDNS-Domains
Let’s Encrypt erlaubt nur eine gewisse Anzahl an Zertifikaten pro Domain. Es kann daher nicht möglich sein, für eine DDNS-Domain ein Zertifikat zu erstellen.
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).
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.
Namensauflösung im LAN
In vielen privaten Netzwerken kann eine Domain nicht auf eine lokale IP-Adresse aufgelöst werden. Die Lösung dazu findet ihr in diesem Artikel unter der Überschrift “Namensauflösung im LAN”.
Nextcloud konfigurieren
Nachdem wir alles vorbereitet haben, ist es an der Zeit Only-Office in der Nextcloud einzurichten. Habt ihr bereits die integrierte Version von Only-Office in Verwendung, müsst ihr zuerst die App Community Document Server deinstallieren oder zumindest deaktivieren. Wechselt dazu im Einstellungs-Menü in den App-Bereich. Die App ONLYOFFICE wird weiterhin benötigt. Habt ihr die Apps bisher noch nicht verwendet, ladet euch ONLYOFFICE im App-Bereich (zu finden unter “Büro & Text”) herunter.
Wechselt anschließend in die Einstellungen und dort in den Bereich ONLYOFFICE. Unter “Serviceadresse der Dokumentenbearbeitung” ersetzt ihr die vorgegebene Domain einfach mit der Sub-Domain für den Only-Office-Container. Klickt anschließend auf Speichern.
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.
Sicherheit und Zugriff
Nutzt ihr eine Firewall, müsst ihr die Container-Sub-Domain natürlich auch berücksichtigen. Anders als zu erwarten greift nicht nur Nextcloud auf diese Domain zu, wenn ihr ein Dokument öffnet muss auch das Endgerät auf die Sub-Domain zugreifen können.
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 dritte Auflage enthält Aktualisierungen zu DSM 7.1 und den Updates von WebStation, Surveillance Station und Synology Photos.
Das Buch direkt beim Verlag
Das Buch auf Amazon
Der geheime Schlüssel kann in folgendem Config gefunden werden: /etc/onlyoffice/documentserver/local.json
Wie kann ich das “Secret” im Docker für die gesicherte Kommunikation zwischen Nextcloud und Onlyoffice setzen?
Hallo Klaus,
Meinst du die Einstellung Secret Key/Geheimer Schlüssel die in den Servereinstellungen in Nextcloud zu finden ist?
Ich nutze onlyoffice nicht, aber ich habe dazu diesen Link gefunden https://github.com/ONLYOFFICE/onlyoffice-owncloud/issues/45
Grüße
Andreas