Nextcloud liefert von Haus aus keine Dokumentbearbeitung im Browser mit. Dafür brauchst du einen separaten Editor-Server, und die beiden verbreiteten Optionen sind Collabora Online und OnlyOffice Document Server. Diese Anleitung zeigt beide Wege als Docker-Container hinter einem nginx-Reverse-Proxy und die Anbindung an Nextcloud per occ.
Was ist Nextcloud Office?
Nextcloud Office ist die in Nextcloud integrierte Office-Suite, die Text-, Tabellen- und Präsentationsdateien direkt im Browser bearbeitet und dafür einen separaten Editor-Server benötigt, entweder Collabora Online oder OnlyOffice Document Server.
Die eigentliche Rendering- und Bearbeitungslogik läuft nie in der Nextcloud-Instanz selbst. Nextcloud stellt über das WOPI-Protokoll nur Datei und Zugriffstoken bereit, der Office-Server holt sich das Dokument ab und liefert die Oberfläche an den Browser aus. Beide Komponenten müssen sich deshalb gegenseitig über HTTPS erreichen können.
graph TD
A["Browser des Nutzers"] -->|HTTPS| B["nginx Reverse Proxy"]
B -->|"cloud.example.com"| C["Nextcloud (PHP-FPM)"]
B -->|"office.example.com"| D["Collabora oder OnlyOffice Container"]
D -->|"WOPI: Datei abrufen und speichern"| C
C -->|"Dokument-URL und Zugriffstoken"| A
Collabora oder OnlyOffice: was passt besser?
Collabora Online basiert auf LibreOffice und arbeitet nativ mit ODF-Formaten, während OnlyOffice Document Server auf die OOXML-Formate von Microsoft Office optimiert ist und deren Layout beim Hin- und Herkonvertieren zuverlässiger erhält.
| Kriterium | Collabora Online (CODE) | OnlyOffice Document Server |
|---|---|---|
| Engine | LibreOffice | eigene Engine, OOXML-nah |
| Bestes Format | .odt, .ods, .odp |
.docx, .xlsx, .pptx |
| Nextcloud-App | richdocuments |
onlyoffice |
| Standard-Port im Container | 9980 | 80 |
| Nutzerlimit der Free-Variante | CODE: ca. 20 gleichzeitige Nutzer | Community: 20 gleichzeitige Verbindungen |
| Absicherung | WOPI-Allowlist | JWT-Secret |
Beide Varianten sind in der freien Version für kleine Teams ausgelegt. Wer überwiegend Word- und Excel-Dateien austauscht, fährt mit OnlyOffice besser. Wer eine LibreOffice-nahe Darstellung und ODF als Leitformat will, nimmt Collabora.
Passende Infrastruktur bei centron
Zum Mitmachen braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff, stundengenau abgerechnet und in Sekunden startklar. Cloud-Server mieten →
Voraussetzungen
- Ein Linux-Host mit Docker Engine 24.0 oder neuer und dem Plugin
docker composev2 - Eine laufende Nextcloud-Instanz ab Version 29, erreichbar unter
https://cloud.<deine-domain> - Eine zweite DNS-A-Record-Subdomain, z. B.
office.<deine-domain>, mit gültigem TLS-Zertifikat - nginx als Reverse Proxy auf dem Host, mindestens 4 GB RAM für den Office-Container
- Root- oder
sudo-Zugriff
Für den Test eignet sich eine skalierbare Cloud-VM mit mindestens zwei vCPUs. Der Office-Server ist CPU-lastig, sobald mehrere Dokumente parallel offen sind, und lässt sich dort ohne Neuinstallation nachträglich vergrößern.
Lege für die Container ein Arbeitsverzeichnis an:
$ sudo mkdir -p /opt/nextcloud-office
$ cd /opt/nextcloud-officeCollabora Online mit Docker starten
Der Collabora-Container wird über eine docker-compose.yml gestartet und lauscht ausschließlich auf 127.0.0.1:9980, damit er nur über den Reverse Proxy erreichbar ist.
# /opt/nextcloud-office/docker-compose.yml
services:
collabora:
image: collabora/code:24.04.13.2.1
container_name: collabora
restart: unless-stopped
ports:
- "127.0.0.1:9980:9980"
environment:
- aliasgroup1=https://cloud.<deine-domain>:443
- server_name=office.<deine-domain>
- username=admin
- password=<starkes-admin-passwort>
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
cap_add:
- MKNODDrei Werte entscheiden über den Erfolg:
aliasgroup1: die vollständige URL deiner Nextcloud inklusive Schema und Port. Fehlt sie oder passt sie nicht exakt, verweigert Collabora die WOPI-Anfrage mitUnauthorized WOPI host.server_name: die öffentliche Adresse des Office-Servers. Ohne diesen Wert erzeugt Collabora hinter einem Proxy falsche URLs für den WebSocket-Aufbau.extra_params: schaltet internes TLS ab und teilt Collabora mit, dass der Proxy TLS terminiert.
Prüfe den aktuellen Tag von collabora/code auf Docker Hub, bevor du pinnst. Starte anschließend:
$ sudo docker compose up -d
$ sudo docker compose logs -f collaboraIm Log muss coolwsd: Ready to accept connections erscheinen.
OnlyOffice Document Server mit Docker starten
Der OnlyOffice-Container wird mit aktiviertem JWT gestartet, veröffentlicht Port 80 nur lokal auf 127.0.0.1:8082 und legt Daten, Logs und Cache in persistenten Volumes ab.
Erzeuge zuerst ein Secret:
$ openssl rand -hex 32Dann die Compose-Datei:
# /opt/nextcloud-office/docker-compose.yml
services:
onlyoffice:
image: onlyoffice/documentserver:8.2
container_name: onlyoffice
restart: unless-stopped
ports:
- "127.0.0.1:8082:80"
environment:
- JWT_ENABLED=true
- JWT_SECRET=<dein-32-byte-secret>
- JWT_HEADER=Authorization
volumes:
- ./onlyoffice/data:/var/www/onlyoffice/Data
- ./onlyoffice/log:/var/log/onlyoffice
- ./onlyoffice/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/filesSeit Version 7.2 ist JWT standardmäßig aktiv. Setzt du kein Secret, generiert der Container beim ersten Start ein eigenes, und die Verbindung aus Nextcloud scheitert mit Fehler beim Herunterladen der Datei. Die drei Volumes sind Pflicht: ohne sie verlierst du bei jedem Container-Update den Konvertierungs-Cache und die Datenbank der offenen Sitzungen.
$ sudo docker compose up -d
$ sudo docker exec onlyoffice documentserver-healthcheck.sh
trueReverse Proxy konfigurieren
Der Reverse Proxy terminiert TLS für die Office-Subdomain und leitet alle Anfragen inklusive WebSocket-Upgrade an den lokalen Container-Port weiter. Ohne die Upgrade-Header bleibt der Editor beim Ladebalken stehen.
# /etc/nginx/sites-available/office.conf
server {
listen 443 ssl;
http2 on;
server_name office.<deine-domain>;
ssl_certificate /etc/letsencrypt/live/office.<deine-domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.<deine-domain>/privkey.pem;
client_max_body_size 512M;
location / {
# Collabora: 9980, OnlyOffice: 8082
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 36000s;
}
}Aktivieren und neu laden:
$ sudo ln -s /etc/nginx/sites-available/office.conf /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginxNextcloud-App verbinden
Die Anbindung erfolgt über occ. Die Befehle unten gehen von einer Nextcloud im Container nextcloud aus. Bei einer klassischen Installation ersetzt du das Präfix durch sudo -u www-data php /var/www/nextcloud/occ.
Collabora anbinden
$ docker exec -u www-data nextcloud php occ app:install richdocuments
$ docker exec -u www-data nextcloud php occ config:app:set richdocuments wopi_url --value="https://office.<deine-domain>"
$ docker exec -u www-data nextcloud php occ config:app:set richdocuments public_wopi_url --value="https://office.<deine-domain>"
$ docker exec -u www-data nextcloud php occ richdocuments:activate-configErgänze die WOPI-Allowlist um das Netz, aus dem der Collabora-Container spricht. Sie steuert, welche Quell-IPs überhaupt WOPI-Anfragen stellen dürfen:
$ docker exec -u www-data nextcloud php occ config:app:set richdocuments wopi_allowlist --value="172.16.0.0/12,10.0.0.0/8"OnlyOffice anbinden
$ docker exec -u www-data nextcloud php occ app:install onlyoffice
$ docker exec -u www-data nextcloud php occ config:app:set onlyoffice DocumentServerUrl --value="https://office.<deine-domain>/"
$ docker exec -u www-data nextcloud php occ config:app:set onlyoffice jwt_secret --value="<dein-32-byte-secret>"Der abschließende Schrägstrich in DocumentServerUrl gehört dazu, das JWT-Secret muss zeichengenau dem JWT_SECRET des Containers entsprechen.
Plane für den produktiven Betrieb Speicher und Auslastung ein: Der Konvertierungs-Cache von OnlyOffice wächst mit der Zahl geöffneter Dokumente, und der Office-Container reagiert empfindlich auf CPU-Engpässe. Auf einer Cloud-VM mit dedizierten vCPUs lässt sich beides unabhängig von der Nextcloud-Instanz skalieren.
Verifikation
Prüfe zuerst von außen, ob der Office-Server über die öffentliche URL antwortet.
Für Collabora liefert der Discovery-Endpunkt eine XML-Liste der unterstützten Formate:
$ curl -s https://office.<deine-domain>/hosting/discovery | head -n 3
<?xml version="1.0" encoding="utf-8"?>
<wopi-discovery>
<net-zone name="external-https">Für OnlyOffice antwortet der Healthcheck mit true:
$ curl -s https://office.<deine-domain>/healthcheck
trueÖffne danach in Nextcloud eine neue Datei über + → Neues Dokument. Der Editor muss innerhalb weniger Sekunden mit Symbolleiste erscheinen. Bleibt die Seite leer, öffne die Browser-Konsole und sieh nach, ob der WebSocket-Aufbau auf office.<deine-domain> fehlschlägt.
Troubleshooting
| Symptom | Ursache | Fix |
|---|---|---|
Unauthorized WOPI host |
aliasgroup1 passt nicht exakt zur Nextcloud-URL |
Schema, Host und Port :443 angleichen, Container neu starten |
| Editor lädt endlos | WebSocket-Header fehlen im Proxy | Upgrade und Connection "upgrade" in nginx setzen |
Fehler beim Herunterladen der Datei |
JWT-Secret weicht ab | jwt_secret in Nextcloud und JWT_SECRET im Container abgleichen |
| Speichern schlägt still fehl | Nextcloud für den Container nicht auflösbar | DNS im Container prüfen, notfalls extra_hosts in Compose setzen |
413 Request Entity Too Large |
nginx-Limit zu klein | client_max_body_size auf mindestens 512M erhöhen |
Bei DNS-Problemen im Split-Horizon-Setup hilft ein expliziter Eintrag:
extra_hosts:
- "cloud.<deine-domain>:<oeffentliche-ip>"Fazit
Die Einrichtung steht und fällt mit drei Details: der exakten Nextcloud-URL in aliasgroup1 beziehungsweise DocumentServerUrl, dem übereinstimmenden JWT-Secret bei OnlyOffice und den WebSocket-Headern im Reverse Proxy. Pinne die Image-Tags statt latest zu verwenden, sonst reißt ein unbemerktes Major-Update die WOPI-Verbindung auf. Als nächsten Schritt lohnt sich ein Blick auf die Zugriffsbeschränkung per Gruppen in den App-Einstellungen, damit der Office-Server nicht ungewollt an jedem Dokument arbeitet.
Weiterlesen
- Nextcloud aktualisieren: Updater, occ und Rollback-Plan
- Nextcloud All-in-One mit Docker installieren
- Nextcloud auf Ubuntu 24.04 mit nginx installieren
- Nextcloud sichern und wiederherstellen: Daten, Datenbank, Config
- Nextcloud mit Docker Compose betreiben
- Nextcloud, ownCloud oder Seafile: Welche Lösung wofür?
- Nextcloud per WebDAV einbinden: Linux, Windows, macOS
- Welcher Server für Nextcloud? RAM, CPU und Storage dimensionieren
- Was ist Nextcloud? Funktionsweise, Komponenten und Einsatz
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.