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 users | Minimal hardware server configuration |
---|---|
less than 100 | Single core Intel Sandy Bridge or better processor running at 2.8 GHz, 2 GB RAM, 40 GB of free hard disk drive space |
100 – 200 | Dual core Intel Sandy Bridge or better processor running at 2.8 GHz, 2 GB RAM, 80 GB of free hard disk drive space |
200 – 400 | Quad 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.
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:
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:
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:
Hier den obigen Link zum Document Server eintragen. Die Konfiguration in der Nextcloud von OnlyOffice sieht dann z.B. wie folgt aus:
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:
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.
Error | PHP | file_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.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
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.
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 🙂
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
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