Änderungsstand: 2023-10-26
Lange habe ich hierfür getestet. Nun funktioniert es auch mit mehreren Nextcloud-Instanzen.
2025 –> Neuer Guide – -> hier!
Collabora als Docker installieren:
(Ich verwende, wie immer, Compose)
sudo mkdir -p /home/dockervolumes/collabora
cd /home/dockervolumes/collabora && sudo nano docker-compose.yml
Folgendes dort einfügen (vorher eigene Werte überprüfen):
version: '3.9'
services:
collabora:
image: collabora/code
container_name: collabora
restart: unless-stopped
cap_add:
- MKNOD
ports:
- '9980:9980'
environment:
- domain=troubadix.duckdns.org
####
# Bei mehreren Nextcloudanwendungen fällt der vorherige Schritt weg und folgendes (aliasgroup) wird stattdessen verwendet:
##
# - aliasgroup1=https://troubadix.duckdns.org
# - aliasgroup2=https://troubadix2.duckdns.org
# - aliasgroup3=https://troubadix3.duckdns.org
##
- username=admin
- password=SICHERESPASSWORT
- "extra_params=--o:ssl.enable=false --o:ssl.termination=true"
volumes:
- "/etc/localtime:/etc/localtime:ro"
Speichern mit Strg-x, y, Enter
Anschließend die „yml“ starten mit:
cd /home/dockervolumes/collabora && sudo docker compose up -d
Das Dockerimage wird heruntergeladen und der Docker mit der eingetragenen Konfiguration gestartet.
Zugriff von außen einrichten:
Nun füge ich in meinem „Nginx Proxy Manager“ einen neuen Host hinzu:
- Details:
- Domain Names: collabora.duckdns.org (eigene Domain verwenden und statt collabora.duckdns.org ruhig etwas ausgefallenes verwenden, wie z.B. crkdpsurgsjdlczerhdjsvzdge.duckdns.org).
- Scheme: http
- Hostname: eigene Server-IP-Adresse
- Forward Port: 9980
- Block Common Exploits: Yes
- Websocket Support: Yes
- SSL:
- Request a new SSL Certificate
- Force SSL: Yes
- HTTP/2 Support: Yes
- HSTS Enabled: Yes
- Save
Aufruf im Browser:
Collabora-Domainname –> Ein OK erscheint im Browserfenster.
Das Controll-Interface rufe ich im Browser auf:
http s://Collabora-Domainname/browser/dist/admin/admin.html
oder
http://Server-IP:9980/browser/dist/admin/admin.html
Zugangsdaten wie in der Compose-Datei festgelegt.

Ich verwende 4 verschiedene Nextcloud-Instanzen (Tests mit verschiedenen Datenbanken) und verwende eine Instanz von Collabora:

Folgender Schritt wird von „mrzapp“ empfohlen (siehe Quellangabe) und wird erledigt (xxx steht für den jeweiligen Pfad zu Nextcloud):
sudo nano /xxx/nextcloud/nginx/site-confs/default.conf
Folgendes am Ende dieser Datei einfügen (Zeile 3 anpassen!):
# Collabora
server {
server_name collabora.duckdns.org;
location / {
proxy_pass http://localhost:1001;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
# static files
location ^~ /loleaflet {
proxy_pass https://localhost:1001;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:1001;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/lool/(.*)/ws$ {
proxy_pass https://localhost:1001;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/lool {
proxy_pass https://localhost:1001;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /lool/adminws {
proxy_pass https://localhost:1001;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# Hosting capabilities, such as mobile support
location ^~ /hosting/capabilities {
proxy_pass https://localhost:1001;
proxy_set_header Host $http_host;
}
}
Strg-x, y, Enter
Nextcloud-Docker neu starten.
Fertig.
.
.
.
Quelle(n):
https://gist.github.com/mrzapp/08947dd861bc826c4e02cee2d4da51ae
https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html