Collabora hat OnlyOffice mittlerweile in der integrierte Office-Lösung abgelöst. Wer eine bessere und stabilere Performance möchte, der sollte Collabora aber als Docker-Container bereitstellen. WWie das geht, erfahrt ihr in diesem Artikel.
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 Container Manager (Docker). Diesen 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.
Subdomain und SSL-Zertifikat
Wollt ihr auf eure Cloud und Collabora ü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 Collabora 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 Collabora wird per Docker bereitgestellt.
Collabora als Docker Container bereitstellen
Öffnet den Container Manager auf eurer DiskStation und wechselt in den Bereich Registrierung. Sucht dort über das Suchfeld nach “collabora”. Ladet das Image “collabora/code” herunter.
Version “latest”
Mit “latest” erhaltet ihr die, im Moment, neueste Version. Das Image aktualisiert sich aber nicht von selbst und der Container Manager zeigt euch als Version auch immer nur “latest” an. Wenn ihr eine bessere Übersicht wollt, könnt ihr im Dropdown auch die aktuelle Version selbst auswählen. Bei den meisten Images ist das die höchste Nummer. Manchmal sind die Images auch mit Zusätzen wie Alpha, Beta, Stable oder Release gekennzeichnet. Achtet immer darauf eine Stable- oder Release-Version zu verwenden. Wenn ihr euch unsicher seid könnt ihr auch über das blaue Icon die Dokumentation des Images öffnen und dort die aktuelle Version ablesen.
Das Image “latest” kann dafür über den Container Manager mit nur einem Klick aktualisiert werden. Aber diese Funktion ist mit Vorsicht zu genießen, da sich bei Updates Einstellungen, Umgebungsvariablen oder Mounts ändern können.
Der Container Manager wechselt in den Bereich Image und beginnt den Download. Nachdem das Image heruntergeladen wurde, markiert ihr es und klickt auf Ausführen. Ein Dialog führ euch durch die Erstellung eines Containers.
Zuerst vergebt ihr einen beliebigen Namen für den Container. Ihr könnt auch 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.
Aktiviert das Häkchen bei “Automatischen Neustart aktivieren” Sollte der Container durch Fehler oder z.B. einen Absturz der DiskStation nicht ordnungsgemäß beendet werden, wird er dadurch automatisch neu gestartet. Anschließend klickt ihr auf Weiter.
Webportal via Web Station
Diese Funktion ist neu, ihr könnt dabei einen Zugang zum Container über die Web Station einrichten. Bisher wurde der Zugriff auf den Container per Reverse Proxy umgesetzt. Ich habe mich mit dem Webportal noch nicht eingehend beschäftigt und weiß nicht, ob dadurch der Reverse Proxy ersetz wird. Ich verwende weiterhin den Reverse Proxy (siehe unten).
Zuerst müsst ihr den internen Container Port (9980) auf einen lokalen Port mappen. Das ist notwendig, da der Container nicht im Hostnetzwerk (also eurer DiskStation) laufen soll, 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. Ordner gibt es bei Collabora keine die man mounten könnte. Unter “Umgebung” müsst ihr aber einige Umgebungsvariablen einfügen, welche das sind und welche Werte notwendig sind, entnehmt ihr der untenstehenden Tabelle.
Scrollt ein wenig nach unten und wählt unter “Netzwerk” “bridge” aus. Weitere Einstellungen sind nicht notwendig. Nach einem Klick auf Weiter seht ihr eine Zusammenfassung. Klickt auf Fertig und der Container wird gestartet.
Name | Wert | Erklärung |
admin | col_admin (Beispiel) | ein beliebiger Benutzername für den Administrator-Benutzer des Containers |
password | 1supersafepassphrase! (Beispiel) | Passwort für den Admin |
aliasgroup1 | https://cloud.mydomain.com:443 (Beispiel) | Die URL eurer Nextcloud |
DONT_GEN_SSL_CERT | 1 | Damit 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=true | Die 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. |
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 noch ab.
Wechselt in den Bereich Container und markiert zuerst den Collabora-Container und klickt anschließend auf Details. Im Reiter Protokoll könnt ihr den Startvorgang des Containers mitverfolgen. Das Ausgabe-Protokoll aktualisiert sich nicht automatisch. Geht zurück in die Container-Übersicht und öffnet das Protokoll erneut um die aktualisierte Ausgabe zu erhalten. 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.
Reverse-Proxy einrichten
Euer Container ist jetzt unter jeder Adresse, unter der eure DiskStation erreichbar ist + den lokalen Port 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. Mehr zu Portfreigaben, Zertifikaten und externer Erreichbarkeit findet ihr in diesem Artikel.
Öffnet die Systemsteuerung und geht in den Bereich Anmeldeportal > 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.
Damit der Container richtig funktioniert, müssen im Reiter Benutzerdefinierte Kopfzeile noch zwei Wertepaare hinzugefügt werden:
Headername | Wert |
Upgrade | $http_upgrade |
Connection | $connection_upgrade |
Klickt anschließend auf Speichern.
Jetzt benötigt ihr für eure Sub-Domain noch ein SSL-Zertifikat, nach dem erstellen des Zertifikats, müsst ihr dieses auch dem Reverse Proxy zuweisen (Systemsteuerung > Sicherheit > Zertifikat > Einstellungen).
Der Collabora-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.
Namensauflösung im LAN
In vielen privaten Netzwerken kann eine Domain nicht auf eine lokale IP-Adresse aufgelöst werden. Es reicht hier nicht, die Auflösung per Hosts-Datei zu regeln, da auch Nextcloud die Domain auflösen muss. Die Namensauflösung im LAN kann in einigen besseren “Prosumer”-Geräten (z.B. Fritz!box) eingestellt werden. Wenn eurer Router dies nicht beherrscht, müsst ihr einen DNS-Server im LAN (z.B. auf euer DiskStation) einrichten.
Nextcloud konfigurieren
Nachdem wir alles vorbereitet haben, ist es an der Zeit Collabora in der Nextcloud einzurichten. Habt ihr die integrierte Version von Collabora nicht in Verwendung, kontrolliert, ob die App Nextcloud Office installiert ist (Im Bereich Apps). Falls nicht, findet ihr sie unter “Büro & Text”).
Wechselt anschließend in die Verwaltungs-Einstellungen und dort in den Bereich Office (den unter “Verwaltung”, nicht unter “Persönlich”). Aktiviert “Verwende deinen eigenen Server” und gebt die Sub-Domain für den Collabora-Container ein. Weiter unten, findet ihr noch den Bereich “Erweiterte Einstellungen” dort findet ihr “Allow list for WOPI requests”. Gebt hier das Netz eures Containers, sowie eurer lokales Netz an (z.B. 172.16.0.0/16,192.168.1.0/24). Die Netzadresse eures Containers könnt ihr im Container Manager im Bereich Netzwerk ablesen, indem ihr den Eintrag “bridge” aufklappt. Euer lokales Netz entnehmt ihr eurem Router. Wichtig ist hier, trennt die Adressen nur mit einem Beistrich, verwendet keine Leerzeichen. Die Einstellung erhöht die Sicherheit eures Containers zusätzlich und die Warnung verschwindet. Klickt anschließend auf Save.
Das wars auch schon. Ihr könnt jetzt Office-Dokumente direkt in der Cloud öffnen und bearbeiten und dass auch mit mehreren Benutzern gleichzeitig.
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
Coole Anleitung, zwei Bemerkungen dazu
– Der Port im Reverse-Proxy müsste 9981 sein, respektive derselbe wie im Container eingestellt
– Für das WOPI musste ich die externe IP Adresse angeben und nicht den internen Bereich.
Nextcloud meldet aber nach dem Fehlschlag beim öffnen eine Dokumentes:
Laden des Dokuments fehlgeschlagen
Unautorisierter WOPI-Host. Bitte versuchen Sie es später noch einmal und melden Sie sich bei Ihrem Administrator, falls das Problem weiterhin besteht.
die Wopi liste habe ich so konfiguriert:
172.17.0.0/16,192.168.178.0/24
Wie Du es vorschlägst.
ich habe natürlich so einiges unternommen.
eine weitern Testserver aufgesetzt. Die RevProxy einstellungen kontrolliert etc etc.
Hi Markus, an dieser Stelle hänge ich leider auch. Hast du das mittlerweile gelöst bekommen?
Hallo,
sehr verständiche Anleitung. Danke!
ich bekomme es leider nicht zum laufen.
Der NextcloudServer meldet in der Adminsitratoreinstellungen:
Collabora Online Server ist erreichbar.
Collabora Online Development Edition 23.05.10.1 baa6eef
URL used by the browser: https://colabora.alice-server.freemyip.com
Nextcloud URL used by Collabora: https://nexthans.alice-server.freemyip.com (Determined from the browser URL)
alles ist Grün.