Collabora als Docker Container in Nextcloud auf der Synology DiskStation integrieren (DSM 7.2 und höher)

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.

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.

Image-Suche in der Registry
Image-Suche in der Registry

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.

Erste Einstellungen
Erste Einstellungen

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.

Angabe des lokalen Ports
Angabe des lokalen Ports
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 nötigen Umgebungsvariablen
Die nötigen Umgebungsvariablen

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.

Die Ausgabe nach einem erfolgreichen Container-Start
Die Ausgabe nach einem erfolgreichen Container-Start

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.

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, nach dem erstellen des Zertifikats, müsst ihr dieses auch dem Reverse Proxy zuweisen (Systemsteuerung > Sicherheit > Zertifikat > Einstellungen).

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

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.

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”).

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

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.

Verbindung zu Collabora herstellen
Verbindung zu Collabora herstellen
Durch die Angabe von Hosts/Netzen wird die Sicherheit erhöht
Durch die Angabe von Hosts/Netzen wird die Sicherheit erhöht

Das wars auch schon. Ihr könnt jetzt Office-Dokumente direkt in der Cloud öffnen und bearbeiten und dass auch mit mehreren Benutzern gleichzeitig.

Office-Dokumente direkt in der Cloud öffnen und bearbeiten
Office-Dokumente direkt in der Cloud öffnen und bearbeiten

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

Related Posts

4 thoughts on “Collabora als Docker Container in Nextcloud auf der Synology DiskStation integrieren (DSM 7.2 und höher)

  1. 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.

  2. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert