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.
| Datum | Änderungen |
|---|---|
| 05.09.2020 | Erstellung dieser Anleitung |
| 30.12.2020 | Kleinigkeiten verbessert |
| 05.01.2022 | Bilder + Link zum Admin Interface angepasst. Danke @Uwe |
| 03.04.2022 | Nextcloud App + Bild angepasst |
| 30.05.2022 | Nextcloud App wurde umbenannt. |
| 26.07.2022 | Nextcloud App wurde erneut umbenannt |
| 13.01.2023 | Update Traefik Labels, Seafile Integration hinzugefügt (Danke an @eltonit) |
| 29.05.2023 | Anpassung für neue Traefik Anleitung |
| 14.12.2023 | Docker Compose angepasst für mehrere Domains (aliasgroup). Danke @rebel2k |
| 27.09.2025 | Docker Compose an aktuelle Version angepasst |
| 30.09.2025 | Formatierungsfehler in der Docke Compose behoben |
| 01.04.2026 | Kapitel 3 hinzugefügt. Danke an @sirath |
| 13.07.2026 | Health Check in der Docker Compose entfernt, da dieser mit Curl gemacht wird, das aktuelle Image aber kein curl mehr enthält und dieser daher immer fehlschlägt |
| 02.09.2026 | Entry Point entfernt, da das aktuelle Image kein BASH mehr hat |
Als Grundlage meiner Anleitung dient die offizielle Collabora Office Anleitung für Docker.
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik ab v3.6 mit CrowdSec installieren und konfigurieren
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.
nano /opt/containers/collabora/docker-compose.yml
Inhalt
services:
collabora:
image: collabora/code:latest
networks:
proxy:
environment:
aliasgroup1: "https://nextcloud.euredomain.de:443"
server_name: "collabora.euredomain.de"
DONT_GEN_SSL_CERT: "YES"
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
username: admin
password: admin
cap_add:
- MKNOD
logging:
driver: ${LOG_DRIVER:-local}
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.collabora.rule=Host(`collabora.euredomain.de`)"
- "traefik.http.routers.collabora.entrypoints=websecure"
- "traefik.http.routers.collabora.tls.certresolver=http_resolver"
- "traefik.http.routers.collabora.middlewares=default@file"
- "traefik.http.services.collabora.loadbalancer.server.port=9980"
networks:
proxy:
external: trueCode-Sprache: JavaScript (javascript)
Notwendige Anpassungen:
- Collabora Office Nutzername ändern
- Collabora Office Passwort ändern
- eure Domain bei Traefik anpassen (“collabora.euredomain.de”)
- server_name entsprechend Traefik anpassen
Anschließend fügt ihr noch die Domains hinzu, für welche ihr Collabora bereitstellen wollt:
aliasgroup1: "https://nextcloud.euredomain.de:443"
zb:
aliasgroup1: "https://nextcloud.euredomain.de:443"
aliasgroup2: "https://cloud.euredomain.de:443"Code-Sprache: JavaScript (javascript)
3. Traefik Anpassungen
Damit unsere Cloud später Collabora einbinden kann, müssen wir noch eine Anpassung bei Traefik durchführen. Öffnet dazu folgende Datei:
nano /opt/containers/traefik-crowdsec-stack/data/traefik/dynamic_conf/http.middlewares.default-security-headers.ymlCode-Sprache: PHP (php)
Fügt nun entsprechend die Domain eurer Cloud hinzu:
vorher:
http:
middlewares:
...
Content-Security-Policy: "frame-ancestors 'self';"
nachher:
http:
middlewares:
...
Content-Security-Policy: "frame-ancestors 'self' https://nextcloud.euredomain.de;"Code-Sprache: JavaScript (javascript)
Anschließend starten wir Traefik neu:
cd /opt/containers/traefik-crowdsec-stack
docker compose up -d --force-recreate
4. Collabora Office starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/collabora/docker-compose.yml up -d
5. 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:

6. 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:

Im Kapitel 7 erfährt ihr nun, wie ihr Collabora in Nextcloud integriert. Kapitel 8 beschreibt die Integration von Collabora in Seafile.
7. 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” oder “Nextcloud Office” aus. Es handelt sich um das selbe Programm. Irgendwie wechselt sich regelmäßig der Name.


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.

8. Collabora in Seafile integrieren
Dazu solltet ihr Seafile nach dieser Anleitung bereits installiert haben. Anschließend öffnet ihr folgende Datei:
nano /opt/containers/seafile/seafile-data/seafile/conf/seahub_settings.py
Hier fügt ihr am Ende folgendes hinzu:
# Collabora Integration
OFFICE_SERVER_TYPE = 'CollaboraOffice'
ENABLE_OFFICE_WEB_APP = True
OFFICE_WEB_APP_BASE_URL = 'https://collabora.euredomain.de/hosting/discovery'
WOPI_ACCESS_TOKEN_EXPIRATION = 30 * 60 # seconds
OFFICE_WEB_APP_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')Code-Sprache: PHP (php)
Noch anzupassen:
- OFFICE_WEB_APP_BASE_URL = die Domain eures Collabora Servers
Nun müsst ihr Seafile neu starten.
docker compose -f /opt/containers/seafile/docker-compose.yml down
docker compose -f /opt/containers/seafile/docker-compose.yml up -d
Anschließend könnt ihr eine neue Datei erstellen und in diese ganz bequem schreiben:



Hallo zusammen,
hat wunderbar funktioniert- nur bekomme ich die Anzeigesprache nicht auf Deutsch umgestellt. Kann das wer nachvollziehen bzw mir Tipps geben?
Danke
Hallo Roland,
ich habe es gerade getestet. Die Anleitung funktioniert bei mir.
Wo genau bekommt du die 404?
Hallo Christian,
habs nochmal komplett neu aufgesetzt du hast recht läuft auch bei mir jetzt… vllt einfach kaputt gespielt ^^
Dank
Viele Grüße
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 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
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.
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.
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?
bei mir funktioniert:
https://collabora.MEINEDOMAIN.de/browser/dist/admin/admin.html
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?