Collabora Online für Nextcloud einrichten: CODE per Docker Schritt für Schritt

9 Kommentare Autor: Jürgen (jdo)

Mit Collabora Online bearbeitest Du Texte, Tabellen und Präsentationen direkt in Nextcloud. Du brauchst dafür die App Nextcloud Office (Collabora) und einen Dokumentenserver. Hier richtest Du die kostenlose Collabora Online Development Edition (CODE) per Docker hinter Apache ein. Falls bereits „Nextcloud Office konnte nicht geladen werden“ erscheint, findest Du weiter unten die passenden Prüfungen.

CODE baut auf LibreOffice-Technik auf. Mehrere Benutzer können gleichzeitig an einem Dokument arbeiten. Wer zunächst eine Collabora-Online-Demo ausprobieren möchte, bekommt den Zugang beim Hersteller nach Registrierung und Bestätigung der E-Mail-Adresse.

CODE: eingebauter Server oder eigener Docker-Container?

Die Entwicklungsausgabe CODE eignet sich für Tests, den Heimgebrauch und kleine Teams. Für geschäftskritische Installationen empfiehlt Collabora die unterstützte Enterprise-Ausgabe. Docker allein macht CODE weder schneller noch zu einer Enterprise-Lösung. Bei vielen gleichzeitigen Nutzern lohnt sich ein eigener Dokumentenserver; Hilfe bei der Auswahl gibt der Artikel über Nextcloud-Hosting.

Einfacher geht es mit der zusätzlichen App Collabora Online: Built-in CODE Server: Sie bringt den Server direkt mit, ist laut Nextcloud aber langsamer und weniger gut skalierbar. Für Linux auf x86-64 heißt sie richdocumentscode, für ARM64 richdocumentscode_arm64. Für den Docker-Weg unten brauchst Du diese Zusatz-App nicht.

Auch ein Raspberry Pi kommt infrage: Collabora bietet ARM64-Images und eine Raspberry-Pi-Anleitung an. Entscheidend sind ein passendes 64-Bit-System und genügend Ressourcen für Deine Dokumente und Nutzer.

Vorbereitung: Ubuntu, Docker und zwei Domains

Die Schritte setzen Ubuntu 24.04 LTS, Administratorrechte und eine bereits funktionierende Nextcloud mit gültigem HTTPS-Zertifikat voraus. Apache läuft direkt auf demselben Host wie der CODE-Container. Nutze eine aktuelle, unterstützte Nextcloud-Version; die passende Office-App steht im App Store. Ersetze überall diese Beispieldomains:

  • nextcloud.example.org: Deine vorhandene Nextcloud.
  • office.example.org: der Dokumentenserver. Diese Domain muss im DNS auf Deinen Apache-Host zeigen; die Ports 80 und 443 müssen erreichbar sein.

Für eine neue Docker-Installation verwenden wir die Ubuntu-Pakete. Ist Docker bereits eingerichtet, behältst Du diese Installation. Alternativ gibt es das offizielle Docker-Repository; dessen Pakete solltest Du nicht mit docker.io mischen.

sudo apt update
sudo apt install docker.io apache2 certbot python3-certbot-apache curl
sudo systemctl enable --now docker
sudo a2enmod proxy proxy_wstunnel proxy_http ssl

Apache vorbereiten und HTTPS aktivieren

Lege für die neue Office-Domain /etc/apache2/sites-available/office.conf mit folgendem Inhalt an:

<VirtualHost *:80>
    ServerName office.example.org
</VirtualHost>

Aktiviere die Seite. Lade Apache nur nach erfolgreicher Konfigurationsprüfung neu und fordere anschließend das Zertifikat an:

sudo a2ensite office.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
sudo certbot --apache --redirect -d office.example.org

Certbot richtet das Zertifikat und die HTTPS-Umleitung ein. Mit sudo apache2ctl -S findest Du den zugehörigen VirtualHost für Port 443 und seine Datei. Die Proxy-Regeln aus dem nächsten Abschnitt gehören in genau diesen HTTPS-VirtualHost.

Collabora Online per Docker starten

Lade zunächst das Image:

sudo docker pull collabora/code
Download des CODE-Images mit docker pull
Der Download des Docker-Images, aufgenommen 2018. Versionsangaben und Größen ändern sich.

In aliasgroup1 gehört die Nextcloud-Adresse. Die Office-Adresse trägst Du später in Nextcloud ein. Diese Verwechslung führte schon bei der ursprünglichen Einrichtung 2018 zur Fehlersuche. Vergib außerdem eigene Zugangsdaten für die Admin-Konsole:

sudo docker run -t -d --name collabora \
  -p 127.0.0.1:9980:9980 \
  -e 'aliasgroup1=https://nextcloud.example.org:443' \
  -e 'username=DEIN-ADMINNAME' \
  -e 'password=DEIN-LANGES-PASSWORT' \
  --restart unless-stopped --cap-add MKNOD \
  collabora/code

Die Backslashes am Zeilenende setzen den Befehl fort. Die Nextcloud-Adresse wird hier als vollständige URL ohne Regex-Escapes eingetragen. Port 9980 ist nur am lokalen Host erreichbar. Der Container verwendet in diesem Beispiel auch intern TLS; die folgenden Proxy-Ziele passen dazu.

Apache-Reverse-Proxy für Collabora konfigurieren

Füge diese Regeln innerhalb des HTTPS-VirtualHosts für office.example.org ein. Die von Certbot angelegten Zertifikatszeilen bleiben erhalten. Die Reihenfolge der WebSocket-Regeln vor der allgemeinen /cool-Regel ist wichtig:

AllowEncodedSlashes NoDecode
ProxyPreserveHost On
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

ProxyPass /browser https://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser https://127.0.0.1:9980/browser

ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery

ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities

ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon
ProxyPass /cool/ws wss://127.0.0.1:9980/cool/ws nocanon
ProxyPass /cool/adminws wss://127.0.0.1:9980/cool/adminws

ProxyPass /cool https://127.0.0.1:9980/cool
ProxyPassReverse /cool https://127.0.0.1:9980/cool

Die abgeschaltete Prüfung betrifft das selbst signierte Zertifikat des Containers hinter 127.0.0.1. Die öffentlichen Zertifikate für Nextcloud und Office müssen gültig sein. Prüfe erneut die Konfiguration und lade Apache bei Syntax OK neu:

sudo apache2ctl configtest
sudo systemctl reload apache2

Die aktuellen Pfade heißen /browser und /cool. Hast Du Collabora früher mit den alten Pfaden eingerichtet, ersetze die früheren /loleaflet– und /lool-Regeln. Andere Proxy-Aufbauten beschreibt das Nextcloud-Admin-Handbuch.

Nextcloud Office mit dem Server verbinden

  1. Installiere und aktiviere unter Apps → Office & Text die App Nextcloud Office (Collabora), intern richdocuments.
  2. Öffne die Verwaltungseinstellungen → Nextcloud Office beziehungsweise Office. Wähle Verwende deinen eigenen Server.
  3. Trage https://office.example.org ein und speichere. Bei dieser Proxy-Konfiguration gehört Port 9980 nicht in die öffentliche Adresse.
  4. Beschränke die Allow list for WOPI requests auf die IP-Adressen, von denen Dein Collabora-Server Nextcloud tatsächlich erreicht. Bei Docker oder einem vorgeschalteten Proxy kann das eine andere Adresse als die öffentliche Server-IP sein.
  5. Lege in der Dateien-App über das Plus-Menü ein Dokument an und prüfe Öffnen, Bearbeiten und erneutes Öffnen nach dem Speichern.

Du kannst die Nutzung und das Bearbeiten auf bestimmte Gruppen beschränken. Neue Dateien verwenden standardmäßig OpenDocument: ODT, ODS und ODP. Mit der OOXML-Option entstehen stattdessen DOCX, XLSX und PPTX.

Neues Office-Dokument über das Plus-Menü in Nextcloud erstellen
Das Plus-Menü für neue Dokumente in Nextcloud 14, aufgenommen 2018. Der Ablauf bleibt ähnlich.

Nextcloud Office konnte nicht geladen werden

Prüfe bei dieser Meldung zuerst den Verbindungsweg. Eine erreichbare Startseite beweist noch nicht, dass Dokumente geladen werden können:

  • Nextcloud zu CODE: Rufe die beiden Endpunkte unten vom Nextcloud-Server und im Browser auf. Discovery muss XML liefern, Capabilities JSON. Eine Anmeldeseite oder ein Proxy-Fehler ist keine gültige Antwort.
  • CODE zu Nextcloud: Der Dokumentenserver muss https://nextcloud.example.org/status.php erreichen können. Prüfe DNS, Firewall und Zertifikatskette auch für das Container-Netz.
  • „Unauthorized WOPI host“: Kontrolliere aliasgroup1. Dort muss die Nextcloud mit passendem Protokoll und Port erlaubt sein. Änderungen an Docker-Umgebungsvariablen erfordern einen neu erstellten Container.
  • Abgewiesene WOPI-Anfragen: Kontrolliere in Nextcloud die WOPI-Allowlist und die tatsächlich erkannte Absender-IP im Log. Diese Liste regelt den Zugriff von CODE auf Nextcloud; aliasgroup1 regelt die Gegenrichtung.
  • Grauer Editor oder Verbindungsabbruch: Prüfe die WebSocket-Weiterleitung für /cool/ws und /cool/(.*)/ws, die Proxy-Pfade und die Logs beider Anwendungen.
curl -fsS https://office.example.org/hosting/discovery
curl -fsS https://office.example.org/hosting/capabilities
sudo docker logs --tail 100 collabora

Bei einer klassischen Nextcloud-Installation unter /var/www/nextcloud liefern diese Befehle den Serverstatus und die eingetragene Office-Adresse. Passe Pfad und PHP-Version an Deine Installation an:

sudo -u www-data php /var/www/nextcloud/occ status
sudo -u www-data php /var/www/nextcloud/occ config:app:get richdocuments wopi_url

Prüfe zusätzlich nextcloud.log im konfigurierten Datenverzeichnis und das Apache-Fehlerlog. Im damaligen Aufbau halfen zeitweise komplette Server-Neustarts. Die Ursache wurde dabei nicht eingegrenzt; ein Neustart ersetzt deshalb keine dieser Prüfungen. Den Befehl occ files:cleanup solltest Du nicht als allgemeinen Office-Cache-Fix verwenden.

CODE aktualisieren oder mit Docker Compose verwalten

Lass vor einem Update alle Bearbeitungen speichern und schließen. Sichere Deine Startparameter und notiere das bisherige Image für einen Rückweg. Danach holst Du das neue Image und entfernst den alten Container:

sudo docker pull collabora/code
sudo docker ps
sudo docker stop collabora
sudo docker rm collabora
Liste laufender Container mit docker ps
docker ps zeigt laufende Container, hier im Screenshot von 2018.

Starte anschließend mit dem vollständigen docker run-Befehl von oben und Deinen bisherigen Einstellungen neu. docker rm entfernt den Container, nicht das Image. Prüfe danach erneut ein Dokument.

Alternativ hält Docker Compose Image, Ports, Umgebungsvariablen und cap_add mit dem Listeneintrag MKNOD in einer compose.yaml fest. Bei Ubuntu-Paketen installierst Du dafür docker-compose-v2. Aus dem Verzeichnis dieser Datei starten sudo docker compose up -d und später sudo docker compose pull gefolgt von sudo docker compose up -d den Dienst beziehungsweise aktualisieren ihn. Wähle einen der beiden Verwaltungswege.

Dokumente bearbeiten, teilen und herunterladen

Du kannst ganz normal schreiben und Text formatieren. Viele Funktionen kennst Du von LibreOffice auf dem Desktop. Auch Tastaturkürzel helfen: Mit Strg + K fügst Du einen Link ein.

Textdokument im Collabora-Editor innerhalb von Nextcloud
Die Textverarbeitung in der ursprünglichen Installation von 2018. Die heutige Oberfläche bietet weitere Funktionen.

Mehrere Benutzer dürfen dasselbe Dokument gleichzeitig bearbeiten. Ob andere nur mitlesen oder Änderungen vornehmen können, hängt von Deinen Freigaberechten ab.

Anzeige mehrerer Benutzer in einem gemeinsam bearbeiteten Dokument
Gemeinsame Bearbeitung in Collabora Online, aufgenommen 2018.

Über das Datei-Menü kannst Du Dokumente herunterladen oder exportieren, etwa als PDF, ODF oder Microsoft-Office-Datei. Die verfügbaren Formate hängen vom Dokumenttyp ab.

Exportmenü für PDF, OpenDocument und Microsoft-Word-Dateien
Die frühere Menüansicht „Herunterladen als“ von 2018 zeigt typische Exportformate.

Für weitere Aufgaben findest Du Anleitungen zu FTP-Zugriff mit Nextcloud und kostenlosen Übersetzungen in Nextcloud. Collabora Office für Android und iOS bearbeitet Dateien auch mobil; für Android verlinkt der Hersteller ein zusätzliches F-Droid-Repository.

Admin-Konsole und Statistiken öffnen

Die Admin-Konsole erreichst Du unter https://office.example.org/browser/dist/admin/admin.html. Melde Dich mit username und password aus dem Container-Start an. Dort siehst Du unter anderem geöffnete Dokumente, aktive Benutzer und den Speicherverbrauch.

Verwaltungsansicht mit Benutzerzahl, offenen Dokumenten und Speicherverbrauch
Die Admin-Konsole im Jahr 2018.

Aktualisiert am 04.10.2026 um 13:39 Uhr von Henry.




 Alle Kommentare als Feed abonnieren

9 Kommentare zu “Collabora Online für Nextcloud einrichten: CODE per Docker Schritt für Schritt”

  1. Markus says:

    Ich würde gerne Collabora auf meinem hausinternen NAS installieren. Würde dies auch mit der IP-Adresse des NAS statt einer Domain und Subdomain funktionieren?

    • jdo says:

      Hmmm ... da hast Du mich nun kalt erwischt, da ich das nicht weiß. Ich benutze aber intern auch eine Domain und keine IP-Adresse.

      Dafür gibt es mehrere Möglichkeiten. Ich verwende meine DDNS Domain, die ich im Pi-Hole in den DNS-Einstellungen unter Local domain name hinterlegt habe.

      Früher habe ich intern auch immer die IP-Adresse verwendet, aber das ist mit einem Zugriff von außen immer ein riesiges Drama gewesen - wo bin wann und wie greife ich auf was zu. Seit ich die Domain benutze, ist das alles kein Problem mehr und ein Zertifikat von Let's Encrypt funktioniert damit auch.

      Willst Du es rein intern halten, sollte aber Zeroconf funktionieren. Also mit einer .local-Domain sollte es schon klappen, habe ich aber noch nie ausprobiert.

      Ich hoffe, das hilft irgendwie weiter.

  2. sokai says:

    Hey, danke für die schöne Anleitung!

    Ich habe ein ähnliches Setup, allerdings ufw als Firewall. Und iwie bekomme ich den Docker-Container nicht erreicht …
    Es gibt ne Menge (verschiedener) Infos zu Docker + ufw I'm Netz, alles iwie nicht trivial.

    Meine Frage: Benutzt du ieine Firewall?
    Wenn ja: Welche + wie ist die (für das Beschriebene) konfiguriert?
    Wenn nein: Weshalb nicht?

    Danke vorab + Grüße!

    • jdo says:

      Hi, ich benutze keine Firewall. Mein Server ist ein VPS bei Contabo und es sind nur wenige Ports aus dem Internet erreichbar. Genauer gesagt sind es 80, 443 und 22.

      Vor Brute-Force-Angriffen schütze ich mich mit fail2ban, beziehungsweise ist meine WordPress-Loging-Seite noch mit einem Apache-Passwort via .htpasswd abgesichert.

      Services, die nicht aus dem Internet erreicht werden sollen, öffnen auch keinen Port dahin. Bisher hat das gereicht. 🙂

  3. CMB says:

    Moin,

    danke für deine Anleitung. Leider bekomme ich folgende Fehlermeldung wenn ich eine Datei anklicke:

    Collabora Online konnte nicht geladen werden. Bitte versuche es später noch einmal.

    Den Server habe ich mehrfach neu gestartet.

    Wenn ich die URL https://office.tttttt.example-abcd.org/loleaflet/dist/admin/admin.html aufrufe, bekomme ich folgende Fehlermeldung:

    Proxy Error
    The proxy server received an invalid response from an upstream server.
    The proxy server could not handle the request
    Reason: Error reading from remote server

    Nextcloud: tttttt.example-abcd.org/nextcloud
    Dokumentenserver: office.tttttt.example-abcd.org

    Das Dockerabbild habe ich wie folgt gestartet:

    docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=\\tttttt\\.example-abcd.\\.org\\/nextcloud' -e "username=EIN-ANWENDER" -e "password=EIN-PASSWORT" --restart always --cap-add MKNOD collabora/code

    Kannst Du mir helfen?

    Danke für Deine Bemühungen

    CMB

    • jdo says:

      Hi,
      also auf den ersten Blick fällt mir auf:

      "domain=\\tttttt\\.example-abcd.\\.org\\/nextcloud" <- das ist nicht die Domain, das ist die URL zur Nextcloud. Versuche es mal ohne "\\/nextcloud" Klappt es dann?

  4. Christian says:

    Hi,
    kannst du mir kurz erklären, ob man auch eine zweite DNS (von noip) braucht?
    Oder wird der Office-Server nicht direkt von außen angesprochen sondern nur über nextcloud?
    Ich kenne mich mit Domain Namen nicht so gut aus.
    Ist der office.example.org nur Intern relevant? Oder würdest du auch von außerhalb über die Domain auf den Office-Server zugreifen.(Wie bei Nextcloud)

    • jdo says:

      Hallo,

      die Nextcloud kommuniziert mit dem Office-Server über das Netzwerk. Deswegen hinterlegst Du eine Domain oder eine IP-Adresse in der Nextcloud App.

      Bei mir liegt die Office-Instanz aber auf einem externen Server und ich will die Kommunikation via HTTPS über ein Zertifikat von Let's Encrypt haben. Damit ich eines bekomme, brauche ich aber einen Domain-Namen.

      Ohne Domain-Name könnte ich zwar ein selbst signiertes Zertifikat ausstellen lassen, aber da ist mir der Weg via Let's Encrypt lieber.

      Dass der Office-Server über einen eigenen Namen von überall aus erreichbar ist, hat einen weiteren Vorteil. Ich könnte mehr als eine Nextcloud-Instanz damit arbeiten lassen. Mache ich auch, weil meine Test-Nextcloud ebenfalls darauf Zugriff hat.

      Intern geht das vielleicht schon ohne Domain-Name, ich habe es aber nicht ausprobiert. Aber via Docker sollte sich das schnell und einfach herausfinden lassen.

  5. […] _eine andere vom Nextcloud-Forum, die hilfreich war _mal wieder leicht verständlich, daher super: Bitblokes – allerdings nur für http _Decatec für eine echte sichere Implementierung auf ngix _die, an […]

Antworten