Collabora Office Online eignet sich perfekt für die Integration in Nextcloud. Wie ihr Nextcloud in wenigen Minuten installiert, zeige ich euch hier. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Update
30.05.2022 | Nextcloud App wurde umbenannt. |
03.04.2022 | Nextcloud App + Bild angepasst. |
05.01.2022 | Bilder + Link zum Admin Interface angepasst. Danke @Uwe. |
30.12.2020 | Kleinigkeiten verbessert. |
05.09.2020 | Erstellung dieser Anleitung. |
Inhaltsverzeichnis
Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.
Als Grundlage meiner Anleitung dient die offizielle Collabora Office Anleitung für Docker und dieser Beitrag.
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/collabora/
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an.
cd /opt/containers/collabora/ nano docker-compose.yml
Inhalt
version: '3.3' services: collabora: image: collabora/code container_name: collabora_app networks: - proxy cap_add: - MKNOD expose: - 9980 environment: - domain=nextcloud.euredomain.de #Gebt hier eure Nextcloud Domain an. Wenn ihr dies nicht nutzt, dann entfernt diese Zeile - username=admin #Nutzername eingeben - password=test #Passwort eingeben - "extra_params=--o:ssl.enable=false --o:ssl.termination=true" restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.collabora.entrypoints=http" - "traefik.http.routers.collabora.rule=Host(`collabora.euredomain.de`)" #URL anpassen - "traefik.http.middlewares.collabora-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.collabora.middlewares=collabora-https-redirect" - "traefik.http.routers.collabora-secure.entrypoints=https" - "traefik.http.routers.collabora-secure.rule=Host(`collabora.euredomain.de`)" #URL anpassen - "traefik.http.routers.collabora-secure.tls=true" - "traefik.http.routers.collabora-secure.tls.certresolver=http" - "traefik.http.routers.collabora-secure.service=collabora" - "traefik.http.services.collabora.loadbalancer.server.port=9980" - "traefik.docker.network=proxy" - "traefik.http.routers.collabora-secure.middlewares=secHeaders@file" networks: proxy: external: true
Notwendige Anpassungen:
- Collabora Office Nutzername ändern
- Collabora Office Passwort ändern
- Nextcloud Domain anpassen
- 2x eure Domain bei Traefik anpassen (“collabora.euredomain.de”)
Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.
3. Collabora Office starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker-compose -f /opt/containers/collabora/docker-compose.yml up -d
4. Dienst testen
Nun testen wir, ob der Dienst ordnungsgemäß funktioniert. Dazu gebt ihr folgendes in euren Browser ein:
https://collabora.euredomain.de
Nun solltet ihr folgendes sehen:
5. Admin Interface starten
Wenn der Dienst funktioniert, dann könnt ihr euch mit euren Nutzerdaten im Admin Interface anmelden. Die Nutzerdaten habt ihr in dem Docker File festgelegt.
Um das Interface zu starten gebt ihr folgendes ein:
https://collabora.euredomain.de/browser/dist/admin/admin.html
Nun solltet ihr folgendes sehen:
6. Collabora Office in Nextcloud integrieren
Nun zeige ich euch, wie ihr mit wenigen Klicks Collabora Office in Nextcloud integrieren könnt. Wenn ihr noch kein Nextcloud Server habt, so könnt ihr in hier innerhalb weniger Minuten erstellen.
Ihr geht nun auf euren Nextcloud Server und logt euch dort mit eurem Admin Account ein.
Nun klickt ihr auf “Apps”.
Wählt nun “Büro & Text” aus.
Wählt nun “Collabora Online” (früher “Nextcloud Office”) aus.
Anschließend geht ihr in die “Einstellungen”.
Hier scrollt ihr auf der linken Seite so weit nach unten, bis ihr “Nextcloud Office” findet.
Nun gebt ihr dort einfach euren Collabora Online Server an. Gebt dort einfach: https://collabora.euredomain.de ein
Nun klickt ihr auf “Save” und es sollte ein grüner Haken erscheinen.
Wenn ihr nun ein Dokument in Nextcloud erstellt, wird sich Collabora Online starten.
7. Quellen
https://www.collaboraoffice.com/code/docker/
38 Kommentare
Hallo,
ich hab einen Verbindungsfehler, der Log sagt:
[ websrv_poll ] WRN client – server version mismatch, disabling browser cache. Expected: ed4f732| wsd/FileServer.cpp:287
Was kann ich tun?
Danke!
Habe das gleiche Problem Tobias! Allerdings erst seit Update auf Traefik 2.10. Vielleicht geht es mit 2.11 weg? Die Version ist zumindest schon draußen allerdings noch nicht als Docker.
Ah yes, upgrade auf Traefik 2.11 löst das Problem bei mir!
stimmt, jetzt kommt nur ein anderer Fehler 🙂
Mixed Content: The page at ‘https://cloud.xxxxx/apps/files/?dir=/&fileid=6’ was loaded over HTTPS, but requested an insecure form action ‘http://collabora.xxxxxx/loleaflet/ed4f732/loleaflet.html?WOPISrc=………….’. This request has been blocked; the content must be served over HTTPS.
hast du eine Idee woran es liegt? Installation ist alles gemäß Anleitungen von hier
Danke!
Das deutet glaube ich darauf hin, dass die Weiterleitung von http auf https bei traefik nicht richtig funktioniert. Ich nutze ein etwas anderes Setup deswegen weiß ich nicht so recht woran das liegen könnte.
Nur zwei Vermutungen:
1. Oben ist in der docker-compose in Zeile 16 ein Spiegelstrich, eigentlich müsste dort stehen:
– “extra_params=–o:ssl.enable=false –o:ssl.termination=true”
2. Vielleicht ist auch in der Nextcloud http angegeben? Dort müsste https://office.domain.de und nicht http://office.domain.de stehen.
Sonst vielleicht nochmal die docker logs und das admin panel checken:)
Ich glaube die extra_params sind nicht richtig.
– extra_params= –o:ssl.enable=false –o:ssl.termination=true
funktioniert bei mir
Habt ihr nextcloud und collabora auf einem Host? Habt ihr UFW o.ä. installiert? Ich komme intern nicht von nextcloud auf collabora, aber von nem anderen Host aus geht es… Jemand Tipps?
Bei mir läuft alles solange ich UFW auf dem Host ausschalte. Sobald ich UFW einschalte findet das nextcloud AddOn den Collabora-Server nicht mehr.
Obwohl der bei direktem Zugriff via https erreichbar ist (und auch OK liefert).
Hat jemand Tipps?
Hallo,
hast du den Port 9980 per UFW freigegeben?
LG
Christian
UFW kann eingeschaltet bleiben, falls man https erlaubt.
Ich hatte es so verstanden, das docker VOR den iptables-Regeln die Netzwerkpakete bekommt und deshalb NICHT von der Firewall des Hosts beeinflusst wird.
Nun, bei mir ist auf dem Host nur SSH und https erlaubt und dann arbeiten Nextcloud und Collabora auch bei eingeschalteter UFW zusammen.
Danke für die super Anleitungen, die du hier überall anbietest.
Ich habe jedoch nach der Einrichtung immer eine blöde Fehlermeldung:
Unautorisierter WOPI-Host. Bitte versuchen Sie es später noch einmal oder wenden Sie sich an Ihren Administrator. Ich habe bereits alles versucht und in verschiedenen Foren nachgelesen. Ich komme aber nicht auf die Lösung. Hat jemand eine Idee?
Bei mir waren die beiden Domains nicht die gleichen. Das hatte den Fehler ausgelöst.
Danke für diese und die anderen tollen Anleitungen.
Ich habe sie und die beiden Anleitungen zu Traefik exakt befolgt und ich konnte Collabora problemlos in Nextcloud einbinden.
Ein Fehlverhalten habe ich allerdings entdeckt. Versuche ich eine Präsentation abzuspielen, erhalte ich den folgenden Fehler: collabora.******.de hat die Verbindung abgelehnt.
Hat jemand einen Hinweis für mich wie ich diesen Fehler beheben könnte?
Super Anleitung, danke dir.
Mit copy-pasta docker-compose.yml startet der collabora container zwar prima, aber es scheint als würde er (so zeigt es Portainer an) die IP adresse verlieren.
Er tauch nach dem start kurz im Traefik dashboard auf, verschwindet dann wieder.
Im traefik.log steht dann
“service \”collabora\” error: unable to find the IP address for the container \”/collabora_app\”: the server is ignored” providerName=docker container=collabora-collabora-eb0de5d4d607e821dcff9173e38c20882ca18a559a394957b661f2785833111e
Ich bekam zuerst keine Verbindung von Nextcloud zu Collabora
Im Ergebnis darf der URL kein abschließendes “/” enthalten.
https://collabora.xxxxx.de ist also korrekt
Danke für deine Anleitung.
Es hat alles geklappt. Super!!!
Ich musste nur noch die .htaccess anpassen. Es wurde als Hinweis in der Übersicht angezeigt.
Zur Info:
Der “Strict-Transport-Security” HTTP-Header ist nicht auf mindestens “15552000” Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist:
Um einen HSTS-Header zu setzen, fügen Sie in eine .htaccess-Datei die Zeile
Header set Strict-Transport-Security “max-age=15552000”
ein. Den Wert für max-age setzen Sie auf den von NextCloud empfohlenen Wert. Beachten Sie hierbei jedoch auch mögliche Nachteile, was eine derartige Änderung (Setzen von HSTS-Headern) bewirkt.
wie kann ich dem Collabora Container mitgeben, dass er Traefik vertrauen kann?
[ websrv_poll ] WRN convert-to: Requesting address is denied: ::ffff:172.18.0.2| wsd/LOOLWSD.cpp:2318
Habe euer Tutorial verfolgt und Nextcloud, Traefik läuft und der Collabora server auch, ich kriege das Ok und kann in die Admin. Kriege aber keine Verbindung Collabora von Nextcloud aus. Als Fehler krige ich nur verbindung zu Collabora online kann nicht hergestellt werden.
Könnt Ihr mir da eine Idee geben wo ich anfangen soll zu suchen??
Hello Christian,
Very nice howto, thanks a lot.
My setup is nearly the same as what you describe, and I am facing a strange issue with Collabora.
My Collabora server is running within a Docker container, behind Traefik.
I have different Nextloud instances : some are running behind the same Traefik router, some are on other servers not running on Docker, but as Ubuntu packages.
The problem occurs with Docker Nextcloud instances : they can perfectly use Collabora, but after a few minutes of inactivity, the Collabora app within Nextcloud says that the Collabora server is not available anymore. Simply clicking on “Save” to reset the config makes it works again.
As a workaround, I’ve finally set up a crontab job that does a :
docker exec … php occ richdocuments:activate-config
It works, but this is not optimal !
Have you ever faced this issue ?
Thanks !
Hallo,
vielen Dank für die guten Anleitungen.
Ich habe allerdings das Problem, dass ich von der Nextcloud, die auf dem gleichen Host läuft wie Collabora nicht auf Collabora zugreifen kann. Es erscheint erst ein Fenster, dass auf Collabora nicht zugegriffen werden kann, dann kommt das Collabora Lade-Symbol, das aber bei 0% stehen bleibt und nicht weiter lädt.
Allerdings kann ich auf die Collabora Instanz von einem externen Host zugreifen und es funktioniert ohne Probleme. Also läuft Collabora eigentlich, nur die Verbindung zur lokalen Nextcloud funktioniert nicht.
Gibt es hier Ideen?
Vielen dank!
Hallo,
hat sich erledigt, nach einem Update der Collabora App und einem erneuten pull läuft es jetzt wie gewünscht.
Hallo,
habe schon seit längerem Nextcloud und Traefik nach deiner Anleitung laufen und wollte auch noch Collabora hinzufügen.
Installation an sich funktioniert, ich habe aber ein Problem wenn ich auf das Admin panel zugreifen möchte.
https://collabora.MEINEDOMAIN.de –> liefert OK
https://collabora.MEINEDOMAIN.de/loleaflet/dist/admin/admin.html –> liefert nix
Im Collabora Docker log erscheint:
collabora_app | wsd-00001-00040 2021-11-25 10:54:11.283863 +0000 [ websrv_poll ] ERR Unknown resource: /loleaflet/dist/admin/admin.html G, host: collabora.MEINEDOMAIN.de, path: 4
collabora_app | [0] ‘loleaflet’
collabora_app | [1] ‘dist’
collabora_app | [2] ‘admin’
collabora_app | [3] ‘admin.html’
collabora_app | full URI: /loleaflet/dist/admin/admin.html| wsd/COOLWSD.cpp:2817
Ich bin ein bisschen ratlos was das verursachen könnte. Hat jemand eine Idee? Läuft da irgendetwas im Container nicht?
bei mir funktioniert:
https://collabora.MEINEDOMAIN.de/browser/dist/admin/admin.html
Hi,
danke für die Anleitung. Allerdings habe ich zwei Probleme:
1) die environment variable domain scheint er nicht zu aktzueptieren. Stattdessen soll man aliasgroup1=https://domain:443 verwenden. Damit startet es dann und man kann über die URLs sehen das alles läuft.
2) Wenn ich den Server dann in Nextcloud eingeben will, bekomme nur “Es konnte keine Verbindung zum Collabora Online-Server hergestellt werden.”.
Nextcloud als auch collabora läuft in Docker auf dem selben Homeserver über einen CNAME Eintrag bei mir zu Hause. Als Adresse ist Collabora Servers ist https://collabora.meiendomain.de eingegeben.
Als Fehlermeldugn sehe ich öfters das folgende. Ob das damit zusammehängt weiß ich aber nicht. “[ websrv_poll ] WRN client – server version mismatch, disabling browser cache. Expected: eb73aa3| wsd/FileServer.cpp:510”
Irgendwelche Tipps?
Einfach nochmal starten…
Hast du auch den port443 angegeben?
Hallo, folgendes Problem. Der Aufruf von Collabora wird mit “Page not found” quittiert.
Hier mal ein Auszug aus dem Log
Signature ok
subject=C = DE, ST = BW, L = Stuttgart, O = Dummy Authority, CN = localhost
Getting CA Private Key
-e ERR: Use of domain variable is not supported. First host/domain who tries to connect to COOL is always allowed.
To allow multiple host and its aliases use something like this and pass it as env variable:
aliasgroup1=https://domain1:443,https://its-alias|its-second-alias:443
aliasgroup2=https://domain2:443,https://its-alias:443
For more info: https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html
Generating RSA private key, 2048 bit long modulus (2 primes)
Traefik ist entsprechend der Anleitung von Christian installiert worden.
Hallo, ich habe ein Pronlem nach erfolgter Installation nach dieser Anleitung. Beim Aufruf im Browser kommt nur “Page not found”. Hier mal der Log aus dem Docker.
RSA private key, 2048 bit long modulus (2 primes)
………………+++++
…………………………………+++++
e is 65537 (0x010001)Generating
Signature ok
subject=C = DE, ST = BW, L = Stuttgart, O = Dummy Authority, CN = localhost
Getting CA Private Key
-e ERR: Use of domain variable is not supported. First host/domain who tries to connect to COOL is always allowed.
To allow multiple host and its aliases use something like this and pass it as env variable:
aliasgroup1=https://domain1:443,https://its-alias|its-second-alias:443
aliasgroup2=https://domain2:443,https://its-alias:443
For more info: https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html
Hat jemand eine Idee und kann helfen. Vielen Dank schon mal.
Moin Andreas!
ersetze unter
environment
– domain=nextcloud.deine.domain
mit:
environment:
– aliasgroup1=https://nextcloud.deine.domain:443
dann geht es wieder. Gruß und danke an GONEULAND für die tollen Anleitungen
Super, vielen Dank Lars,
hat geklappt zumindest der Start vom Server. Die Einbindung in NC klappt auch. Allerdings beim Öffnen/Anlegen eines Dokumentes kommt die Fehlermeldung: Nextcloud Office konnte nicht geladen werden. Vielleicht hierzu auch eine Idee. Vielen Dank schonmal.
Hallo Lars, danke nochmal. Hast Du noch eine Idee zu meinem Problem welches ich hier als Kommentar hinterlassen habe. Also die Fehlermelung „Document loading failed; Nextcloud Office konnte nicht geladen werden.“
Hallo Lars, Danke für die Info. Die 443 ist gesetzt. Auf die Collabora Admin Console komme ich ja. Da steht zunächst ertsmal 0 User angemeldet. In Nextcloud ist die Einstellung zu Collabora mit grün bestätigt. Nur öffnen kann ich kein Dokument. Immer nur die Meldung. “Document loading failed; Nextcloud Office konnte nicht geladen werden.” Anbei der Auszug aus dem Container Log. Ich habe allerdings beides Nextcloud und Collabora auf einem Rechner/Server laufen. Raspi4 8GB, liegt es daran. Danke schon mal.
wsd-00001-00037 2022-04-16 21:29:17.510798 +0000 [ websrv_poll ] WRN #31 is shutting down but 64 bytes couldn’t be flushed and still remain in the output buffer.| ./net/WebSocketHandler.hpp:795
wsd-00001-00037 2022-04-16 21:29:17.510843 +0000 [ websrv_poll ] ERR #31: attempted to remove: 1094 which is > size: 0 clamped to 0| ./net/Socket.hpp:1223
wsd-00001-00037 2022-04-16 21:29:17.510900 +0000 [ websrv_poll ] WRN Ignoring attempted read from 31| ./net/Socket.hpp:1102
wsd-00001-00037 2022-04-16 21:29:17.510936 +0000 [ websrv_poll ] ERR #31: Socket write returned -1 (EPIPE: Broken pipe)| ./net/Socket.hpp:1401
wsd-00001-00037 2022-04-16 21:29:18.127228 +0000 [ websrv_poll ] WRN DocBroker with docKey [https://nextcloud.meineadresse.duckdns.org:443/index.php/apps/richdocuments/wopi/files/2228_oc1tp2jxo68z] is unloading. Rejecting client request to load.| wsd/COOLWSD.cpp:2671
wsd-00001-00079 2022-04-16 21:29:20.299787 +0000 [ docbroker_006 ] ERR Unauthorized Request while starting session on https://nextcloud.meineadresse.duckdns.org:443/index.php/apps/richdocuments/wopi/files/2228_oc1tp2jxo68z for socket #31. Terminating connection. Error: No acceptable WOPI hosts found matching the target host [nextcloud.meineadresse.duckdns.org] in config.| wsd/COOLWSD.cpp:4074
Moin Andreas,
entschuldige meine späte Antwort. Ich bin mir nicht mehr sicher, was ich genau gemacht habe, aber ich denke ein nochmaliger Container-Start oder Docker-Host reboot haben das Problem behoben…
Bei läuft auch beides auf einem Server in verschiedenen Docker-Containern mit einem Traefik Router, wie auf den hiesigen Seiten beschrieben…
Hallo Lars, kein Problem. Ich habe das so wie empfohlen gemacht. Und siehe da es geht. War allerdings der Meinung das schon gemacht zu haben. Wichtig ist das es läuft. Vielen Dank für die Hilfe.
Ich hab jetzt bisschen eine weile getestet ich kriege es mit NC24 nicht ans laufen den Server kann ich verbinden sieht auch alles gut aus soweit aber Dokumente gehen nicht auf. HIer mal ein Blick in mein Log: https://pastebin.com/D950AFSK Vielen Dank für die Hilfe.
Hallo ontheflow,
ich habe es extra mal ausprobiert mit der aktuellen NC (24.0.1) und Collabora (21.06.30.1 (git hash: 79bc174)) Version. Bei mir klappt es ohne Probleme.
Die Fehlermeldungen sehe ich auch in dem Collabora Container:
collabora_app | frk-00037-00037 2022-05-30 16:02:22.557763 +0000 [ forkit ] ERR Failed to unmount [/opt/cool/child-roots/d5ZEOd6TKdbSXPBT]| common/JailUtil.cpp:70
collabora_app | wsd-00001-00079 2022-05-30 16:02:23.120181 +0000 [ docbroker_004 ] WRN Waking up dead poll thread [HttpSynReqPoll], started: false, finished: false| net/Socket.hpp:722
collabora_app | wsd-00001-00079 2022-05-30 16:02:23.305755 +0000 [ docbroker_004 ] WRN Waking up dead poll thread [HttpSynReqPoll], started: false, finished: false| net/Socket.hpp:722
collabora_app | wsd-00001-00079 2022-05-30 16:03:20.745305 +0000 [ docbroker_004 ] WRN Ignoring attempted read from 33| net/Socket.hpp:1102
collabora_app | wsd-00001-00036 2022-05-30 16:03:20.776149 +0000 [ prisoner_poll ] WRN Prisoner connection disconnected but without valid socket.| wsd/COOLWSD.cpp:3079
Bei mir funktioniert es trotzdem ohne Probleme. Ich habe jedoch gesehen, dass man jetzt das Plugin “Collabora Online” installieren muss. Früher hieß es “Nextcloud Office”.
Viele Grüße
Christian
Hallo Christian,
habs nochmal komplett neu aufgesetzt du hast recht läuft auch bei mir jetzt… vllt einfach kaputt gespielt ^^
Dank
Viele Grüße
Hallo Christian,
ich bekomme Collabora mit dieser Anleitung partout nicht zum Laufen. Das Ergebnis ist bei Aufruf der Seite immer 404. Ich habe auch die Anpassung mit aliasgroup1… vorgenommen. Müssen anhand der Neuerungen bei Collabora vielleicht doch mehr Anpassungen gemacht werden?
Bitwarden, Nextcloud, Traefik, Matrix, all das hat mit Deinen Tutorials funktioniert und läuft super. Aber hier komme ich nicht weiter.
In Traefik erscheint Collabora unter Routers.
Gruß
Ronald