Tutorials  /  Docker

Nextcloud Office einrichten: Collabora oder OnlyOffice

LLudwig · August 2026 ·8 Min. Lesezeit ·Docker, Tutorial

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.

VM

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 compose v2
  • 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:

Konsole
$ sudo mkdir -p /opt/nextcloud-office
$ cd /opt/nextcloud-office

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

yaml
# /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:
      - MKNOD

Drei 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 mit Unauthorized 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:

Konsole
$ sudo docker compose up -d
$ sudo docker compose logs -f collabora

Im 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:

Konsole
$ openssl rand -hex 32

Dann die Compose-Datei:

yaml
# /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/files

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

Konsole
$ sudo docker compose up -d
$ sudo docker exec onlyoffice documentserver-healthcheck.sh
true

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

nginx
# /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:

Konsole
$ sudo ln -s /etc/nginx/sites-available/office.conf /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginx

Nextcloud-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

Konsole
$ 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-config

Ergänze die WOPI-Allowlist um das Netz, aus dem der Collabora-Container spricht. Sie steuert, welche Quell-IPs überhaupt WOPI-Anfragen stellen dürfen:

Konsole
$ 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

Konsole
$ 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:

Konsole
$ 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:

Konsole
$ 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:

yaml
    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

Jetzt 200 € Guthaben sichern

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.

Ludwig Technische Redaktion

Schreibt bei centron über Linux-Administration, Container und Datenbanken – mit Fokus auf Anleitungen, die im Betrieb tatsächlich funktionieren.

Kategorie Docker
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren