Menü Schließen

Nextcloud ONLYOFFICE Docker Installation

Nextcloud Logo

Nachdem ich Collabora Office mittels Docker CE für Nextcloud 20 installiert habe, werde ich nun die Installation von ONLYOFFICE in Version 6.2 installieren. Auch hier gibt es einen bereits vorbereiteten Docker Container, sodass diese Installation auf die zuvor beschriebene Docker CE Installation aufbaut: https://www.taste-of-it.de/debian-jessie-docker-ce-installation/

Die Installation erfolgt bei mir lokal in einer Testumgebung und hier vorerst nur mittels http. Später füge ich ggf. noch die Konfiguration mittels https und Reverse Proxy hinzu.

ONLYOFFICE Document Server

Dieser dient als Viewer und Editor und zwar für folgende Dokumente:

  • DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

weiterhin ermöglicht er die Bearbeitung von mehreren Personen zeitgleich an dem selben Dokukment.

ONLYOFFICE Voraussetzungen

  • RAM: 4 GB+
  • CPU: dual-core 2 GHz+
  • Swap: 2 GB+
  • HDD: 2 GB+
  • Distribution: 64-bit Red Hat, CentOS oder eine andere kompatible Distribution mit Kernel Version 3.8 oder neuer, 64-bit Debian, Ubuntu eine andere kompatible Distribution mit Kernel 3.8 oder neuer
  • Docker: version 1.9.0 oder neuer

ONLYOFFICE Documentserver Anforderungen je Useranzahl

Number of concurrent active usersMinimal hardware server configuration
less than 100Single core Intel Sandy Bridge or better processor running at 2.8 GHz,
2 GB RAM,
40 GB of free hard disk drive space
100 – 200Dual core Intel Sandy Bridge or better processor running at 2.8 GHz,
2 GB RAM,
80 GB of free hard disk drive space
200 – 400Quad core Intel Sandy Bridge or better processor running at 2.8 GHz,
4 GB RAM,
160 GB of free hard disk drive space

ONLYOFFICE Docker CE Installation in Nextcloud

Installiert wird genauer gesagt der Dokumenten Server von ONLYOFFICE. Es gibt noch eine Version mit Communication und Mailserver, aber die brauche ich nicht.

Sofern Docker CE läuft muss nur dieser Befehl ausgeführt werden:

# docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver

Da bei mir auf Port 80 auch Webseiten geladen werden, änderte ich den Port wie folgt:

# docker run -i -t -d -p 8888:80 --restart=always onlyoffice/documentserver

Wenn ich nun einen eindeutigen Namen wie "OnlyOfficeV1" vergeben möchte, dann wie folgt:

# docker run -i -t -d -p 8888:80 --restart=always --name=OnlyOfficeV1 onlyoffice/documentserver

Das ganze nun noch per SSL und dem https:// Aufruf

Zuerst muss das Verzeichnis in dem die Zertifikate abgelegt werden eingebunden werden:

# docker run --name=OnlyOfficeV1 -i -t -d -p 8888:443 -e JWT_ENABLED='true' -e JWT_SECRET='geheimes-secret' --restart=always -v /app/onlyoffice/DocumentServer/logs:/var/logs/onlyoffice -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver

Die obigen Parameter (-e JWT_ENABLED=’true‘ -e JWT_SECRET=’geheime-secret‘) dienen zur sicheren und eindeutig erlaubten Kommunikation der Nextcloud Webapp mit dem Container. Entsprechend muss dein ‚geheimes-secret‘ in der Konfiguration der Onlyoffice App hinterlegt werden. Dadurch wird sichergestellt, dass der Docker Documentserver nur mit der App kommuniziert die auch das ‚geheimes-secret‘ kennt.

Nextcloud Onlyoffice Docker Secret
Nextcloud Onlyoffice Docker Secret

Nun muss das benötigte Verzeichnis cert erstellt werden:

  • # mkdir /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data/certs

Nun die bereits vorhandenen und von Lets Encrypt erstellten Zertifikate der doman.tld kopieren. Die bereits vorhandenen Symlinks funktionierten hier leider nicht.

  • # cd /app/onlyoffice/DocumentServer/data/certs/
  • # cp -L /etc/letsencrypt/live/domain.tld/cert.pem onlyoffice.crt
  • # cp -L /etc/letsencrypt/live/domain.tld/privkey.pem onlyoffice.key

Abschließend den Docker Container neustarten:

  • # docker restart OnlyOfficeV1

SSL Lets Encrypt Zusatz

Wenn das Zertifikat von z.B. Let’s Encrpyt stammt, dann muss die Chain noch hinzugefügt werden, ansonsten werden die Dokumente aus dem Docker Container nicht zurück in die Nextcloud geschrieben!

  • # cd /app/onlyoffice/DocumentServer/data/certs/
  • # wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt
  • # cat lets-encrypt-x3-cross-signed.pem.txt>>onlyoffice.crt

Prüfung des Zertifikats kann unter: https://www.sslshopper.com/ssl-checker.html durchgeführt werden. Wenn alles in Ordnung ist, dann sieht es wie folgt aus:

SSL Zertifikat Check = ok
SSL Zertifikat Check = ok

Danach den Container stoppen, löschen und neustarten:

  • # docker stop OnlyOfficeV1
  • # docker rm OnlyOfficeV1
  • # # docker run -i -t -d -p 8888:443 --restart=always --name=OnlyOfficeV1
  • docker restart OnlyOfficeV1

Ob der Document Server läuft lässt sich im Browser wie folgt herausfinden:

  • # http://Deine-IP-Adresse:8888
  • # http://Deine-Domain.tld:8888

oder per SSL / https:

  • # http://Deine-IP-Adresse:8888
  • # https://Deine-Domain.tld:8888

Wenn der Server läuft wird folgende Seite geladen:

OnlyOffice Document Server Success
OnlyOffice Document Server Success

Danach muss die App in der Nextcloud installiert werden. Die App findest du unter Apps -> Büro & Text. Nach dem Aktivieren muss noch die Konfiguration unter Administration / Settings erfolgen:

Nextcloud ONLYOFFICE Konfig
Nextcloud ONLYOFFICE Konfig

Hier den obigen Link zum Document Server eintragen. Die Konfiguration in der Nextcloud von OnlyOffice sieht dann z.B. wie folgt aus:

Nextcloud OnlyOffice Settings
Nextcloud OnlyOffice Settings

Wer hier eine Subdomain nutzt, der schreibt diese bei den ersten beiden Feldern davor.

Danach können bestehende Dokumente im ONLYOFFICE Document Server im Browser, wie oben beschrieben, bearbeitet werden. Auch neue Dokumente können erstellt und bearbeitet werden:

Nextcloud ONLYOFFICE Neu
Nextcloud ONLYOFFICE Neu

Onlyoffice Documentserver Docker Update

Anleitung ist hier zu finden: https://www.taste-of-it.de/onlyoffice-update-docker-documentserver-container/

Nextcloud OnlyOffice SSL Error

Bei mir lief die Nextcloud immer recht rund und ich hatte keine Probleme im Betrieb. Nextcloud und OnlyOffice nutzen das selbe SSL Zertifikat. Irgendwann nach einem Update von OnlyOffice gab es das Problem, dass Dokumente nicht mehr geöffnet, sondern heruntergeladen wurden.

ErrorPHPfile_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed at …apps/onlyoffice/lib/documentservice.php#381

Folgende Änderung in der Konfiguration der Nextcloud schafft Abhilfe:

# nano /web/config/config.php

'force_language' => 'de',
'onlyoffice' =>
array(
'verify_peer_off'=>true,
),
);

Das fett geschriebene an die Konfiguration hinzufügen.

Nextcloud OnlyOffice Speichern

Nachdem der Document Server für Nextcloud als App bereitgestellt wurde, habe ich diesen installiert und den Document Server als Docker deinstalliert. Leider hat das speichern der Dateien seither nicht mehr funktioniert und auch eine Lösung gab bis dato scheinbar nicht. Mit Nextcloud 20 bin ich nun wieder auf den Document Server als Dockerinstallation umgestiegen und seither funktioniert auch das speichern wieder.

4 Kommentare

  1. Emanuel

    Es sieht alles so einfach aus, jedoch ist das Tutorial m.E. nicht nutzbar.

    Der „Leie“ liest von oben nach unten und fängt bereits mit falschen Docker-befehlen dadurch an.

    Spätestens aber bei der Erstellung der Zertifikate werden die meißten aufgeben.

    -> mkdir /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data/certs

    Vorallem hier, da nicht gewusst ist, was nun erstellt werden soll. /app/.. oder /var/www/…? Unabhängig davon ist bei mir onlyoffice nicht erreichbar. weder lokal noch mit der ip:8888.

    • JARVIS

      Hallo Emanuel,
      und danke für deine Kritik. Der Artikel kann eigentlich von oben nach unten abgearbeitet werden. Die Docker Befehle waren alle zum Zeitpunkt der Erstellung des Artikels korrekt. Es gibt halt 2 Teile in diesem Artikel, einmal ohne Zertifikat (Aufruf mittels http) und einmal mit Zertifikat (Aufruf mit https). Ok, hätte evtl. besser getrennt werden können… Entsprechend muss aber der Befehl wie im SSL Abschnitt mit dem Pfad zum DocumentServer aufgerufen werden. Dann steht auch das Verzeichnis bis zu Data zur Verfügung und das Verzeichnis certs kann, wie beschrieben, erstellt werden. Ansonsten gerne kommentieren, dann helfe ich soweit ich kann 🙂

  2. Bibi

    hi,

    tolle Anleitung. habe in meinem Nextcloud Server auch onlyoffice integirert. Soweit funktioniert.
    habe 2 Fragen:
    -docker run -i -t -d -p 8888:443 –restart=always –name=OnlyOfficeV1 ==> hier wird ein Argument erwartet.
    -Onlyoffice bearbeitete Dateien werden leider nicht im Nextcloud geschrieben. (habe die chain vom letsencrypt angehängt.)

    Kannst du mir eventuell helfen?
    Viele Grüße

    Bat

    • JARVIS

      Hi Bibi,
      und danke für die positive Rückmeldung. Sofern die Kommentarfunktion hier im Blog nicht spinnt, sind es 2 Bindestriche und nicht 1. Evtl. dies nochmal prüfen. Mein Befehl sieht inzwischen jedoch so aus: „# docker run -i -t -d -p 8888:443 –restart=always –name=OnlyOffice -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice onlyoffice/documentserver“ <- also mit Mount der Pfade. Zu deinem 2. Problem mit dem zurückschreiben der Dokumente, hatte ich ja schon was im Blog geschrieben. Hier nochmal prüfen ob der korrekte Chain verwendet wird. Zudem habe ich die Optionen die ich in der Nextcloud für OnlyOffice konfiguriert habe, darunter hinzugefügt. Die Optionen dort unter Erweitert sind bei einem der letzten Updates von OO in NC hinzugekommen, evtl. fehlen sie bei dir. Viel Erfolg

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert