Ein klassisches Anwendungsgebiet für „die Cloud“ ist das Erstellen und die Bearbeitung von Office-Dokumenten. Diese können dann meistens direkt im Browser auch durch mehrere Benutzer gleichzeitig editiert werden. Nextcloud bietet dieses Feature nicht direkt out-of-the-box, allerdings kann die selbstgehostete Cloud leicht durch Apps erweitert werden. Genau hier setzt ONLYOFFICE an: Durch diese Erweiterung kann Nextcloud einfach um Online-Office-Funktionalitäten erweitert werden.
Dieser Artikel beschreibt daher die Installation und Konfiguration von ONLYOFFICE mittels Docker und das Zusammenspiel mit einer bestehenden Nextcloud-Instanz. Wie immer liegt das Augenmerk v.a. auf der Sicherheit aller beteiligten Systeme.
Achtung: Dieser Artikel ist nicht mehr aktuell. Das hier gezeigte Setup hat eine erhebliche Einschränkung: Der Zugriff auf Office-Dokumente ist hiermit nicht aus dem Internet, sondern nur aus dem lokalen Netzwerk (LAN) möglich.
In einem Folgeartikel wird ein verbessertes Setup gezeigt, bei dem diese Probleme nicht auftreten: Nextcloud: Online-Office mit ONLYOFFICE (mit eigener Subdomain)
Update-Historie (letztes Update 09.11.2018)- 09.11.2018:
- Link auf den neuen Artikel über Nextcloud/ONLYOFFICE hinzugefügt.
- 04.11.2018:
- Hinweis auf die Einschränkungen des in diesem Artikel erwähnten Setups hinzugefügt.
Inhalt
ONLYOFFICE vs Collabora
Bevor es an die Installation geht, noch ein Hinweis: ONLYOFFICE ist nur eine Möglichkeit, Nextcloud um Online-Office-Funktionalitäten zu erweitern. Eine Alternative dazu ist Collabora. Die Installation und Einrichtung von Collabora habe ich bereits im Artikel Nextcloud: Online-Office mit Collabora beschrieben. Nun stellt sich natürlich die Frage, auf welche Lösung man setzen sollte. Hier gibt es keine eindeutige Empfehlung: Beide Lösungen integrieren sich gut in Nextcloud und bieten ähnliche Features.
Die Unterschiede zwischen den Office-Lösungen weden in diesem Artikel detailliert beschrieben. Aber Achtung: der Vergleich wurde von ONLYOFFICE veröffentlicht, daher ist es nicht auszuschließen, dass hier eine Lösung per se besser abschneidet. Der Artikel ist aber trotzdem interessant, da er auch die Unterschiede in der technischen Umsetzung beider Lösungen beleuchtet.
Was für den Endanwender sicherlich am wichtigsten ist: Collabora kommt aus der LibreOffice-Ecke und bietet daher die beste Unterstützung für die OpenDocument-Formate. Bei der Entwicklung von ONLYOFFICE wurde von Anfang an Wert auf die OOXML-Formate (Office Open XML – die von Microsoft Office bevorzugten Formate) gelegt. Nach eigenen Angaben unterstützt ONLYOFFICE die Microsoft Office Formate zu 100%.
Daher werden Anwender, die hauptsächlich mit Microsoft Office arbeiten, wohl eher die Lösung von ONLYOFFICE bevorzugen. Wer dagegen meist LibreOffice/OpenOffice nutzt, sollte sich Collabora mal näher anschauen.
Am besten einfach mal selbst beide Lösungen ausprobieren: ONLYOFFICE und Collabora können parallel installiert werden, so dass man sich nicht sofort auf eine Office-Variante festlegen muss.
Installation und Konfiguration von ONLYOFFICE
ONLYOFFICE hat einige Abhängigkeiten, so dass eine manuelle Installation durchaus aufwändig ist. Daher beschreibt der Artikel die Installation der Office-Lösung mittels Docker. Dadurch kann ONLYOFFICE in wenigen Schritten schnell und einfach installiert werden.
Voraussetzungen
Folgende Voraussetzungen sind für den Betrieb von ONLYOFFICE zu erfüllen:
- Ein System, auf dem Docker installiert ist. Im Rahmen des Artikels setze ich Ubuntu Server ein, allerdings sollten die Schritte auch auf andere Distributionen übertragbar sein. Wie Docker selbst installiert wird, wurde bereits im Artikel Docker auf Ubuntu Server erklärt.
- ONLYOFFICE ist recht speicherintensiv. Daher sollte auf dem entsprechenden PC/VM mindestens 4 GB RAM verfügbar sein (besser noch 6 GB). Aus genau diesem Grund wird ONLYOFFICE auch auf einem Raspberry Pi (Affiliate-Link) nicht optimal laufen. Auch wenn es prinzipiell möglich ist, ONLYOFFICE auf einem solchen Kleinst-Rechner zu betreiben, wird die Performance hier zu wünschen übriglassen.
- Nextcloud muss über eine gesicherte SSL-Verbindung erreichbar sein. Wer die Cloud wie im Artikel Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban beschrieben installiert hat, ist bestens vorbereitet, da hier ein SSL-Zertifikat von Let’s Encrypt zum Einsatz kommt.
Häufig liest man, dass ONLYOFFICE nicht auf demselben Rechner wie Nextcloud installiert werden sollte, da es hier zu Problemen kommen könnte. Dies trifft allerdings nur dann zu, wenn ONLYOFFICE manuell installiert wird. Wenn die Office-Lösung wie hier beschrieben über Docker läuft, dann kann ONLYOFFICE problemlos auf der gleichen Maschine wie Nextcloud betrieben werden.
Es ist aber natürlich auch möglich, ONLYOFFICE auf einem anderen Rechner (z.B. eine zweite virtuelle Maschine) zu installieren. In diesem Fall müssen nur die IP-Adressen entsprechend angepasst werden.
Vorbereitung: Zertifikat erstellen
Die Kommunikation zwischen Nextcloud und ONLYOFFICE muss über eine gesicherte SSL-Verbindung erfolgen. Hier kann der Einfachheit halber ein selbst signiertes Zertifikat zum Einsatz kommen.
Es wäre auch möglich, ein eigenes Zertifikat von Let’s Encrypt speziell für die ONLYOFFICE-Verbindung zu nutzen. Der Aufwand wäre hier allerdings etwas höher, da sämtliche Requests dann durch den nginx Gateway-Host geleitet werden oder die Zertifikate immer manuell kopiert werden müssten (Let’s Encrypt Zertifikate haben nur eine Gültigkeitsdauer von 90 Tagen).
Ein selbst signiertes Zertifikat ist hier das Mittel der Wahl, da es einfach erzeugt werden kann und die Verbindung trotzdem verschlüsselt ist. Auch muss man hier keinerlei Anpassungen am Webserver vornehmen, was eine zusätzliche Fehlerquelle wäre.
Das Zertifikat wird durch die folgenden Befehle angelegt:
mkdir -p /app/onlyoffice/DocumentServer/data/certs cd /app/onlyoffice/DocumentServer/data/certs openssl genrsa -out onlyoffice.key 4096 openssl req -new -key onlyoffice.key -out onlyoffice.csr openssl x509 -req -days 3650 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt openssl dhparam -out dhparam.pem 4096 chmod 400 onlyoffice.key chmod 400 onlyoffice.crt chmod 400 onlyoffice.csr chmod 400 dhparam.pem
- Beim Befehl openssl req -new -key onlyoffice.key -out onlyoffice.csr wird man nach dem „Common Name“ gefragt (Common Name (e.g. server FQDN or YOUR name)). Hier ist einfach die IP des lokalen Systems anzugebnen (z.B. 192.168.178.60). Ebenso kann man ein „challenge password“ angeben. Dieses kann man einfach leer lassen (einfach mit Enter bestätigen).
- Achtung: Die Erzeugung der sog. Diffie-Hellmann-Parameter mit einer Länge von 4096 Bit (openssl dhparam -out dhparam.pem 4096) kann u.U. sehr lange dauern. Auf schwacher Hardware kann das schon einmal mehrere Stunden in Anspruch nehmen. Wer nicht so lange warten möchte, kann die Schlüssel-Länge auf 2048 Bit reduzieren (openssl dhparam -out dhparam.pem 2048).
- Das Zertifikat hat eine Gültigkeit von 3650 Tagen (10 Jahre). Hier kann bei Bedarf auch eine andere Gültigkeitsdauer angegeben werden.
Installation in einem Schritt
Die Installation von ONLYOFFICE erfolgt dann dank Docker mit nur einem einzigen Befehl:
docker run --name=ONLYOFFICEDOCKER -i -t -d -p 4433:443 -e JWT_ENABLED='true' -e JWT_SECRET='geheimes-secret' --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Folgende Punkte gilt es hier zu beachten:
- Da der Webserver bereits auf dem Port 443 (HTTPS) lauscht, kann der Docker-Container nicht den gleichen Port belegen. Der Parameter -p 4433:443 sorgt dafür, dass der Container selbst mit dem Port 443 (intern) arbeitet, nach außen wird jedoch der Port 4433 genutzt.
- Die nächsten zwei Parameter (-e JWT_ENABLED=’true‘ -e JWT_SECRET=’geheimes-secret‘) sorgen dafür, dass zur Kommunikation mit dem Container ein sog. JSON Web Token benötigt wird. Im Grunde genommen handelt es sich dabei um ein Passwort („geheimes-secret“ – hier sollte man natürlich ein eigenes Passwort wählen), welches später in Nextcloud hinterlegt werden muss, damit die Verbindung zum ONLYOFFICE Container aufgebaut werden kann. Dies verhindert, dass der ONLYOFFICE-Container „unbemerkt“ von anderen Verbindungen genutzt werden kann.
- Mit –restart=always wird angegeben, dass der Container bei jedem Systemstart hoch gefahren wird. Damit „überlebt“ der Docker-Container auch Neustarts des Systems.
- Der letzte Parameter (-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver) definiert ein sog. Volume: Alle Dateien, die im Verzeichnis /app/onlyoffice/DocumentServer/data des Hosts liegen, werden innerhalb des Containers im Verzeichnis /var/www/onlyoffice/Data onlyoffice/documentserver bereit gestellt. Diese Funktion wird benötigt, damit der Container das zuvor erzeugte Zertifikat nutzen kann.
Nun wird der ONLYOFFICE-Container heruntergeladen (ca. 650 MB), was je nach Internetverbindung ein paar Minuten dauern kann.

Ob der Container ordnungsgemäß läuft, kann man testen, indem man über den Browser eine Verbindung aufbaut (die URL dazu ist in unserem Fall https://192.168.178.60:4433). Durch den Einsatz des selbst signierten Zertifikats wird der Browser eine Warnung ausgeben, das stört uns an dieser Stelle allerdings nicht.

Nextcloud: ONLYOFFICE App aktivieren
Damit ONLYOFFICE nun aus Nextcloud heraus angesprochen werden kann, braucht man noch die entsprechende App. Man findet diese im App-Store von Nextcloud in der Kategorie Büro & Text.

Nextcloud-Konfiguration anpassen
Bevor nun die Verbindung zu ONLYOFFICE in Nextcloud hinterlegt werden kann, muss noch eine kleine Anpassung an der Konfiguration von Nextcloud erfolgen. Dazu wird die Konfiguration mit folgendem Befehl auf der Konsole geöffnet:
nano /var/www/nextcloud/config/config.php
Hier wird nun am Ende der Datei (aber vor der letzten schließenden Klammer) ein Eintrag hinzugefügt:
'onlyoffice' => array ( 'verify_peer_off' => true, ),
Dieser Schritt ist zwingend erforderlich, da Nextcloud sonst die Verbindung zu ONLYOFFICE auf Grund des selbst signierten Zertifikats nicht zulässt.
Am Schluss sollte der ganze Rechner einmal neu gestartet werden:
reboot now
Verbindung zwischen Nextcloud und ONLYOFFICE herstellen
Der letzte Schritt zu einer Online-Office-Lösung mit Nextcloud ist nun nur noch das Hinterlegen der Verbindungs-Details zwischen der Cloud und ONLYOFFICE.
Dazu in Nextcloud einfach in die Einstellungen gehen. Unter Verwaltung > ONLYOFFICE findet man nun die entsprechenden Einstellungen:
- Serviceadresse der Dokumentbearbeitung: Hier wird die IP-Adresse des Systems angegeben, auf dem der entsprechende Docker-Container läuft. In unserem Beispiel hat er PC die IP 192.168.178.60, daher wird hier https://192.168.178.60:4433 angegeben. Wichtig ist hier der Port, der auch beim Starten des Docker-Containers angegeben wurde (4433).
- Geheimer Schlüssel (freilassen, um zu deaktivieren): Hier ist das JWT-Token anzugeben, welches beim Starten des Docker-Containers angegeben wurde.
- Alle anderen Felder kann man leer lassen.

Nach einem Klick auf Speichern sollte eine Erfolgsmeldung kommen und die Verbindung zwischen Nextcloud und ONLYOFFICE wurde erfolgreich konfiguriert.
Online-Office im Browser
In der Datei-Ansicht von Nextcloud können nun einfach Office-Dokumente angelegt werden bzw. hochgeladen werden. Mit einem Klick werden diese nun mit ONLYOFFICE geöffnet und man kann mit der Bearbeitung beginnen.

Update von ONLYOFFICE
Von Zeit zu Zeit erscheinen nun neue Versionen des Docker-Containers von ONLYOFFICE. Um hier ein Update durchzuführen, sind nur wenige Schritte erforderlich.
Zunächst muss die ID des laufenden Containers mit folgendem Befehl ermittelt werden:
docker ps
Der Container wird gestoppt und entfernt:
docker stop <Container-ID> docker rm <Container-ID>
Die neue Version des Containers wird über diesen Befehl herunter geladen:
docker pull onlyoffice/documentserver
Nun kann der aktualisierte Container wie gewohnt gestartet werden:
docker run --name=ONLYOFFICEDOCKER -i -t -d -p 4433:443 -e JWT_ENABLED='true' -e JWT_SECRET='geheimes-secret' --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Troubleshooting
Manchmal kann es passieren, dass die Verbindung zum ONLYOFFICE-Server nicht auf Anhieb klappen will. Die Probleme können aber meist relativ schnell aus dem Weg geräumt werden.
Fehler beim Aufruf von ONLYOFFICE über den Browser
Um zu prüfen, ob ONLYOFFICE ordnungsgemäß läuft, kann man die IP der Maschine direkt im Browser aufrufen (in diesem Beispiel: https://192.168.178.60:4433). Wenn hier nur eine Fehlermeldung erscheint, dass die Website nicht erreichbar ist, sollte der laufende Docker-Container überprüft werden.
Zunächst wird die Container-ID ermittelt:
docker ps
Anschließend kann man sich die Logs des Containers anzeigen lassen:
docker logs <Container-ID>
Hier kann es vorkommen, dass ähnliche Meldungen wie diese angezeigt werden:
* Starting PostgreSQL 9.5 database server [ OK ] * Starting RabbitMQ Messaging Server rabbitmq-server [ OK ] Starting redis-server: redis-server. Starting supervisor: supervisord. * Starting nginx nginx [ OK ] Generating AllFonts.js, please wait...Done onlyoffice-documentserver:docservice: stopped onlyoffice-documentserver:docservice: started onlyoffice-documentserver:converter: stopped onlyoffice-documentserver:converter: started * Reloading nginx configuration nginx [ OK ] root@35b07178f48a:/# * Starting PostgreSQL 9.5 database server [ OK ] * Starting RabbitMQ Messaging Server rabbitmq-server * FAILED - check /var/log/rabbitmq/startup_\{log, _err\} [fail] Starting redis-server: redis-server. Waiting for connection to the localhost host on port 5672 Waiting for connection to the localhost host on port 5672 Waiting for connection to the localhost host on port 5672 Waiting for connection to the localhost host on port 5672
Hier gibt es momentan wohl noch hin und wieder Probleme (siehe GitHub-Issues hier und hier). In diesem Fall hilft es meistens, den Docker-Container oder besser noch den ganzen PC neu zu starten (zur Not auch mehrmals).
Fehlermeldung beim Einbinden von ONLYOFFICE in Nextcloud
Wenn beim Konfigurieren der Verbindung zum ONLYOFFICE-Server eine Fehlermeldung auftritt (Fehler beim Anschließen (Bad Request oder Timeout Fehlermeldung)), sollte man zunächst mal das Log von Nextcloud überprüfen. Hier sollte meinst ein Hinweis auf das konkrete Problem zu finden sein.
Folgende Log-Meldung weist z.B. auf die fehlende Anpassung der config.php von Nextcloud in Bezug auf ONLYOFFICE hin (siehe hier):
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed at /var/www/nextcloud/apps/onlyoffice/lib/documentservice.php#351
Fazit
Dank des verfügbaren Docker-Container für ONLYOFFICE kann Nextcloud schnell und einfach um Online-Office-Funktionen ergänzt werden. Da prinzipiell auch kein zweiter PC/VM zum Einsatz kommen muss, ist dies eine sinnvolle Erweiterung jeder Nextcloud-Installation.
Ihr konntet ONLYOFFICE mit diesem Tutorial erfolgreich installieren oder hattet mit der Vorgehensweise noch Probleme? Oder bevorzugt ihr Collabora als Online-Office-Lösung für Nextcloud? Dann hinterlasst doch einfach einen Kommentar.
Weiterführende Artikel
- Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban
- Ubuntu Server 18.04 LTS als Hyper-V Gastsystem installieren und optimal einrichten
- Docker auf Ubuntu Server
- Nextcloud: Online-Office mit Collabora
Hallo Jan,
ich habe Deine Anleitung befolgt und bekomme den Container auch erfolgreich gestartet. Die Einrichtung in der NC funktioniert auch. Ein Document anzulegen funktioniert ebenso. Wenn ich es öffnen möchte kommt allerdings nur ein weisser Bildschirm, da wo in der NC das OnlyOffice Document erscheinen sollte.
In den Logfiles des Containers und vom NGINX steht nix drin.
Hast Du eine Idee, wo ich schauen könnte?
Viele Grüße
Thomas
Hi Thomas,
den Docker-Conteiner bzw. den kompletten Rechner hast du sicherlich schon ein paar mal neu gestartet, oder?
Wenn es zu Fehlern gekommen ist, dann hat das bei mir bisher immer geholfen.
Um einen einfacheren Zugriff auf die Logs des Containers zu erhalten, kannst du auch ein zusätzliches Volume einhängen:
mkdir -p /app/onlyoffice/DocumentServer/logs
docker run --name=ONLYOFFICEDOCKER -i -t -d -p 4433:443 -e JWT_ENABLED='true' -e JWT_SECRET='geheimes-secret' --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
Erscheinen dann weitere Logs unter /app/onlyoffice/DocumentServer/logs (auf der lokalen Maschine)?
Gruß,
Jan
Hallo Jan,
mit
ocker run –name=ONLYOFFICEDOCKER -i -t -d -p 4433:443 -e JWT_ENABLED=’true‘ -e JWT_SECRET=’geheimespw‘ –restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
kommt nach dem Download des images ein
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused „exec: \“-v\“: executable file not found in $PATH“: unknown
:-/
Hi Thomas,
sorry, da habe ich wohl den Befehl an sich falsch angegeben. Korrekt sollte dieser lauten:
docker run --name=ONLYOFFICEDOCKER -i -t -d -p 4433:443 -e JWT_ENABLED='true' -e JWT_SECRET='geheimes-secret' --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice onlyoffice/documentserver
Damit sollte der Container auf jeden Fall mal gestartet werden können.
Gruß,
Jan
Hallo Jan,
Nach Deinem letzten Vorschlag funktioniert es nun.
Vielen Dank für Deine Unterstützung
Thomas
Hallo Jan,
mal wieder ein super Artikel. Danke dafür.
Ich habe jedoch ein kleines Problem. Vielleicht kannst du mir da ja weiterhelfen.
Ich habe immer wieder Probleme mit OnlyOffice, wie du in deinem Troubleshooting auch berichtet hast:
* Starting RabbitMQ Messaging Server rabbitmq-server *
FAILED – check /var/log/rabbitmq/startup_\{log, _err\}
[fail]
Starting redis-server: redis-server.
Waiting for connection to the localhost host on port 5672
durch mehrere Neustarts oder aber auch durch den Neustart des Dockers läuft OnlyOffice irgendwann.
Ein ganz anderes Problem ist jedoch, dass wenn OnlyOffice läuft, ich nur lokal darauf zugreifen kann. Ich habe es gerade über einen VPN und über einen Smartphone-Hotspot versucht… OnlyOffice läd leider nicht.
Hast du eine Idee, an was das liegen könnte?
Diese Meldung taucht auch im Nextcloud Log auf seitdem ich OnlyOffice installiert habe:
Fatal webdav Doctrine\DBAL\Exception\DriverException: An exception
occurred while executing ‚INSERT INTO `oc_file_locks` (`key`,`lock`,`ttl`)
SELECT ?,?,? FROM `oc_file_locks` WHERE `key` = ? HAVING COUNT(*) = 0‘
with params [„files\/75e2e7e07e75a29f4a32cc1714c0a7d6“, 1, 1531429453,
„files\/75e2e7e07e75a29f4a32cc1714c0a7d6“]: SQLSTATE[40001]:
Serialization failure: 1213 Deadlock found when trying to get lock; try restarting
transaction
Könnte es etwas damit zu tun haben?
Vielen Dank schon mal.
Grüße Stefan
Hallo Stefan,
für den Fehler, dass OnlyOffice manchmal nicht gestartet werden kann, habe ich leider auch noch keine 100 prozentige Lösung.
Der Zugriff „von remote“ funktioniert bei mir problemlos. Der Fehler aus dem NC-Log hat damit glaube ich recht wenig zu tun. Hast du schonmal die Logs des Docker-Containers nach einem Fehlversuch angesehen?
Gruß,
Jan
Hallo Jan,
Docker Log während einem lokalen Zugriff:
docker logs 05f330829f2b
* Starting PostgreSQL 9.5 database server [ OK ]
* Starting RabbitMQ Messaging Server rabbitmq-server [ OK ]
Starting redis-server: redis-server.
Starting supervisor: supervisord.
* Starting nginx nginx [ OK ]
Generating AllFonts.js, please wait…Done
onlyoffice-documentserver:docservice: stopped
onlyoffice-documentserver:docservice: started
onlyoffice-documentserver:converter: stopped
onlyoffice-documentserver:converter: started
* Reloading nginx configuration nginx [ OK ]
Log während einem fehlerhaften Zugriff von Außerhalb (Mobilfunknetz):
docker logs 05f330829f2b
* Starting PostgreSQL 9.5 database server [ OK ]
* Starting RabbitMQ Messaging Server rabbitmq-server [ OK ]
Starting redis-server: redis-server.
Starting supervisor: supervisord.
* Starting nginx nginx [ OK ]
Generating AllFonts.js, please wait…Done
onlyoffice-documentserver:docservice: stopped
onlyoffice-documentserver:docservice: started
onlyoffice-documentserver:converter: stopped
onlyoffice-documentserver:converter: started
* Reloading nginx configuration nginx [ OK ]
root@05f330829f2b:/# * Starting PostgreSQL 9.5 database server [ OK ]
* Starting RabbitMQ Messaging Server rabbitmq-server * FALED – check /var/log/rabbitmq/startup_\{log, _err\}
[fail]
Starting redis-server: redis-server.
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
…
Danach ist auch die Verbindung von intern nicht mehr möglich.
Scheint also wohl der gleiche Fehler wie bei den Startproblemen zu sein.
Warum das aber über einen lokalen Zugriff nicht auftritt, versteh ich nicht wirklich.
Werde da wohl warten müssen bis das ganze über ein Update behoben wird.
Wenn du oder wer anders eine Idee hat, wie ich das beheben kann, dann wäre ich sehr dankbar.
Also vielen Dank schon mal ;)
Grüße Stefan
Hi Stefan,
ja, ich denke, da muss man einfach auf ein neues Docker-Image von Onlyoffice warten. Der Fehler ist hier auch schon bekannt, es gibt hier bereits einige Issues auf GitHub.
Gruß,
Jan
Hallo Stefan,
kurz nicht nachgedacht, dann den Fehler bemerkt. Wie und wo lässt sich das „geheime-secret“ nachträglich ändern ohne Docker wieder neu aufzusetzen. Im übrigen bin ich von deiner Internetseite sehr begeistert, ermöglicht sie doch learning by doing bei gleichzeitigem Erklären, was da so im Hintergrund passiert. Vielen Dank für den nicht selbstverständlichen Einsatz!
LG Frank
Hallo Frank,
das ist ganz einfach: Hier musst du nur den laufenden Docker-Container stoppen und neu starten.
Also docker stop ONLYOFFICEDOCKER und anschließend nochmal den Befehl docker run –name=ONLYOFFICEDOCKER … mit dem geänderten secret ansetzen.
Gruß,
Jan
Hallo Jan,
vielen Dank für die wie immer sehr hilfreiche Antwort und entschuldige die falsche Anrede.
LG
Frank
Hallo Frank,
kein Problem. Konntest du den Container nun mit einem anderen Secret neu starten können?
Gruß,
Jan
Hallo,
erst mal mein Lob für die Anleitungen auf diesen Seiten. Ich habe mir damit den Nextcloud-Server installiert (unter Ubuntu 16.04) und anschließend Docker um dann noch Onlyoffice zum Laufen zu bringen. Ich bin den Anleitungen aufs kleinste gefolgt und habe nur die erforderlichen Dinge abgeändert. Es läuft alles stabil. Ich hatte nur das Problem, dass nach dem Hochfahren des Servers der Dokumenten-Server von Docker nicht starten wollte. Ich hatte zwar den Bildschirm entsprechend, aber das Dokument wurde nicht geöffnet. Ich stellte dann fest dass Docker nebst Onlyoffice nach dem Systemstart nicht mehr lief. Ich habe einen Cronjob zugefügt, der 3 Minuten nach Systemstart den Docker-Container neu startet.
Jetzt gibt es aber noch ein Problem: Ich bekomme kein Dokument über Onlyoffice geöffnet, bevor ich die Adresse (https://meinserver.de:4433) aufgerufen habe. Der Browser meckert über das selbsterstellte Zertifikat, ich besatätige die Ausnahme und die Anzeige erscheint, dass der Dokumentenserver läuft. Erst dann kann ich über Nextcloud problemlos Dokumente öffnen, bearbeiten etc. Wenn ich jetzt von der Arbeit (Büro) auf Nextcloud zugreife, funktioniert die Anmeldung, aber ich bekomme kein Dokument geöffnet, da ich diesen Aufruf der IP-Adresse des Dokumentenserver nicht machen kann. Ich kann zwar über die öffentliche IP des DynDns-Dienstes gehen mit Port 4433, aber ich kann die Sicherheitsausnahme im Browser nicht bestätigen. Kann man das mit den Zertifikaten ändern? Oder warum meckert das System über die selbst erstellten Zertifikate? Soweit ich verstanden habe, kommuniziert Nginx mit den LetsEncrypt-Zertifikaten nach aussen. Die selbst erstellten Zertifikate dienen der Verständigung zwischen Nginx und Onlyoffice. Dürfen diese dann öffentlich zwischen meinen Browser und Onlyoffice laufen? Es wäre schön, wenn es eine Lösung für das Problem gibt.
Erstmal vielen Dank.
Gruß,
Norbert
Hallo Norbert,
dass du immer erst einmal deine Domain mit Port 4433 aufrufen musst, ist nicht normal. Daher erst einmal die Frage: Wie sieht deine Konfiguration genau aus?
Hast du Nextcloud und Docker/OnlyOffice auf dem gleichen Rechner installiert?
Wie kannst du „von außen“ den Dockument-Server über Port 4433 erreichen? Hast du hier eine Port-Freigabe für 4433 im Router konfiguriert? Das sollte eigentlich nicht notwendig sein, da die Kommunikation zu OnlyOffice Netzwerk-intern bleiben sollte (ob nun auch dem gleichen Rechner oder unterschiedlichen Rechnern ist dabei egal).
Dass du eine Zertifikats-Warnung beim Aufruf von https://meinserver.de:4433 bekommst, ist wieder normal. Das liegt am selbst signierten Zertifikat, was (ander als bei Let’s Encrypt) nicht verifiziert werden kann.
Wir sollten nun erst einmal herausfinden, warum zunächst immer ein Aufruf von https://meinserver.de:4433 notwendig ist, damit OnlyOffice mit Nextcloud zusammen arbeiten kann.
Was sagen denn die Logs des Containers (wie hier beschrieben)?
Gruß,
Jan
Hallo Jan,
Danke für die Antwort.
1.) Nextcloud und Docker/Onlyoffice sind auf dem gleichen Rechner, da ich den Rechner als eigene Cloud einsetze und daher unabhängig von meinem normalen Rechner sein soll.
2.) Ich kann den Dokumentenserver von aussen zwar erreichen über https:// meinecloud.de:4433, aber im Browser erscheint die Sicherheitswarnung und diese bekomme ich nicht als Ausnahme bestätigt. Intern von https://192.168.xx.xx:4433 kein Problem mit der Ausnahme zur Sicherheitswarnung.
3.) Demzufolge ist auch der Port 4433 im Router weitergeleitet an den Server, denn sonst könnte ich nicht testen ob der Dokumentenserver läuft, 4.) Das Log von Nextcloud bringt keine Fehlermeldung, die von Docker und dem Container:
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
Waiting for connection to the localhost host on port 5672
* Starting PostgreSQL 9.5 database server [ OK ]
* Starting RabbitMQ Messaging Server rabbitmq-server [ OK ]
Starting redis-server: redis-server.
Starting supervisor: supervisord.
* Starting nginx nginx [ OK ]
Generating AllFonts.js, please wait…Done
onlyoffice-documentserver:docservice: stopped
onlyoffice-documentserver:docservice: started
onlyoffice-documentserver:converter: stopped
onlyoffice-documentserver:converter: started
* Reloading nginx configuration nginx
5.) Konfiguration config.php:
‚oc42yzel73wl‘,
‚passwordsalt‘ => ‚8awneSmkYK0Mht/pnaYypfjAu9X2Ug‘,
’secret‘ => ‚JdlM2gCIx9xzJ/xinI1WhlhcBmLaFD6EixBJNNVzg1JUcd16‘,
‚trusted_domains‘ =>
array (
0 => ‚meinecloud.de‘,
1 => ‚192.168.xx.xx‘,
),
‚datadirectory‘ => ‚/var/nextcloud_data‘,
‚overwrite.cli.url‘ => ‚http://meinecloud.de/nextcloud‘,
‚dbtype‘ => ‚mysql‘,
‚version‘ => ‚13.0.4.0‘,
‚dbname‘ => ’nextcloud_db‘,
‚dbhost‘ => ‚localhost‘,
‚dbport‘ => “,
‚dbtableprefix‘ => ‚oc_‘,
‚mysql.utf8mb4‘ => true,
‚dbuser‘ => ’nextcloud_db_user‘,
‚dbpassword‘ => ‚Passwort‘,
‚installed‘ => true,
‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘,
‚overwriteprotocol‘ => ‚https‘,
‚logtimezone‘ => ‚Europe/Berlin‘,
‚auth.bruteforce.protection.enabled‘ => false,
‚onlyoffice‘ =>
array (
‚verify_peer_off‘ => true,
),
‚maintenance‘ => false,
‚loglevel‘ => 2,
);
Gruß
Norbert
Hallo Norbert,
also ich erkenne hier keine Auffälligkeiten.
Allerdings kann es nicht sein, dass du erst einmal https:// meinecloud.de:4433 aufrufen musst, dass es klappt. Auch das Port-Forwarding für 4433 ist eigentlich überflüssig und ich würde es auch wieder entfernen.
Welche URL hast du in den Nextcloud-Admin-Settings für OnlyOffice angegeben? Ich würde hier zunächst https://127.0.0.1:4433 ausprobieren, anschließend die lokale IP (also https://192.168.xx.xx:4433).
Wenn das System in einem Zustand ist, wo kein Dokument geöffnet werden kann (also vor dem ersten Aufruf von https:// meinecloud.de:4433): Hast du hier schonmal probiert, den Docker-Container einfach neu zu starten (zur Not auch mehrmals)?
Gruß,
Jan
Hallo Jan,
ich hatte zwar geschrieben, dass es funktioniert, aber ich habe es jetzt von der Arbeit ausprobiert und da funktioniert es weiterhin nicht. Auch zu Hause funktionierte es heute morgen nicht. Also alles auf Anfang.
Ich vermute mal stark, es liegt an den selbstgeklöppelten Zertifikaten zwischen Onlyoffice und Nextcloud. Die LetsEncrypt-Zertifikate sind nicht einsetzbar?
Gruß
Norbert
Hallo Norbert,
schade, dein vorheriger Kommentar klang so positiv.
Lag uwischen den Zeitpunkten, wo es funktioniert hat und wo es nicht mehr funktioniert hat, ein Neustart des Rechners? Hast du nochmal die Logs des Containers gecheckt?
Ich kann mir nicht vorstellen, dass es an den selbst erstellten Zertifikaten liegt. Durch die Angabe von ‚verify_peer_off‘ => true, in der config.php sollte das Zertifikat problemlos akzeptiert werden. Du kannst natürlich auch mal probieren, ein Let’s Encrypt Zertifikat zu nutzen. Dies muss dann nur in das Verzeichnis /app/onlyoffice/DocumentServer/data/certs kopiert werden (Container danach neu starten).
Ich bin momentan auch etwas überfragt, denn diese Fehlerkonstellation habe ich noch nicht beobachten können. Vielleicht wäre es hilfreich, hier mal im Nextcloud-Forum nachzufragen, oder einen Issue auf bei OnlyOffice (GitHub) zu erstellen.
Würde mich natürlich interessieren, wo das Problem lag, sofern du eine Lösung findest.
Gruß,
Jan
Hallo Jan,
folgende Dinge habe ich gemacht bzw. ausprobiert:
1.) Portweiterleitung für Port 4433 im Router deaktiviert. Allerdings keine Besserung.
2.) Mehrere Male den Docker-Container neu gestartet. Keine Besserung.
3.) Anschlußeinstellungen von Onlyoffice in Nextcloud-Admin-Settings angepasst. Ich habe hier mal alle Felder ausgefüllt mit den Serveradressen. Die ersten beiden mit https:// 192.168.xx.xx:4433. Das letzte Feld mit der externen Serveradresse https://meinserver.de/nextcloud. Diese waren in Deinem Anleitungsbild nicht ausgefüllt. Gespeichert, ging ohne Meckern.
Tja, und dann passierte es. Nach einem Reboot öffneten sich alle Textdateien bzw. Tabellen plötzlich ohne Murren und ich brauchte auch nicht mehr meine Serverseite separat aufrufen.
Übrigens funktionierte https:// 127.0.0.1:4433 nicht.
Ja, jetzt läuft alles. Trotzdem Danke für die Hilfe, die mich doch in die richtige Richtung gelenkt hat. Manchmal ist es recht einfach, man kommt nur nicht drauf.
Gruß
Norbert
Hallo Jan,
ich hatte den Rechner zwar neu gestartet, aber bei meinem Desktop-Rechner Firefox nicht geschlossen. Daher fuhr der Server hoch und ich hatte mit dem noch offenen Firefox die Serveradresse erneut aufgerufen. Dadurch dass ich vorher das selbsterstellte Zertifikat im Browser schon als Ausnahmeregeel akzeptiert hatte, war dieses noch aktiv und daher öffneten sich die Dokumente in Onlyoffice diesmal ohne Murren. Auf der Arbeit bzw. am nächsten Morgen hatte ich ein frisches Browserfenster und daher wurde das Zertifikat nicht mehr akzeptiert. Es hängt also deutlich am Zertifikat. Ich habe exakt die gleiche Installation als virtuelle Maschine. Daher eignet sich diese jetzt zum experimentieren. Ich werde versuchen die LetsEntcrypt-Zertifikate einzufügen. Vielleicht hilft das ja.
Gruß
Norbert
Hallo Norbert,
ich habe da wenig Hoffnung, dass es mit einem LE-Zertifikat für OnlyOffice besser wird (das muss auch mit selbst signiertem Zertifikat klappen), aber sag einfach bescheid, wenn ich mich da irren sollte.
Auf jeden Fall immer die Container-Logs checken, wenn es mal wieder nicht geht. Nach einem Neustart habe ich in 90% der Fälle nämlich auch Probleme. Allerdings immer mit dem rabbitmq-server, wie schon im Blogbeitrag beschrieben. Nicht, dass man da zwei Fehler durcheinander wirft.
Gruß,
Jan
Hallo Jan,
nach einigen Recherchen bin ich auf die Seite „https://www.taste-of-it.de/nextcloud-onlyoffice-docker-installation/“ gestossen. Dort wird gut erklärt, dass man die LE-Zertifikate für den Fall kopieren kann.
1.) Alle Zertifikatsdateien im Ordner „/app/onlyoffice/DocumentServer/data/certs/“ löschen
2.) Diese Befehle ausführen:
# 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
Das „domain.tld“ muss gegen die eigene Serveradresse getauscht werden.
3.) 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
4.) Reboot
5.) In den Nextcloud-Einstellungen muss bei den Onlyoffice- Einstellungen das erste Feld mit der Serveradresse von https.//192.168.xx.xx:4433 gegen https://meinecloud.de:4433 getauscht werden. Speichern.
6.) Reboot und … FUNKTIONIERT !
das ist zwar etwas mehr Aufwand, wenn die Zertifakte erneuert werden müssen, aber was solls. Das Ergebnis zählt.
Hallo Norbert,
danke für die Rückmeldug und die ausführliche Anleitung. Ist vielleicht auch für andere interessant, falls mal ähnliche Probleme auftreten.
Dennoch kann ich mir es nicht erklären, warum das selbst signierte Zertifikat nicht funktioniert. Der „Trust“ wird ja eigentlich durch die Änderung an der config.php ausgeknipst. Auf welche Domain hast du das selbst signierte Zertifikat asgestellt. Ich hatte hier einfach die lokale LAN-IP angegeben und keine echte Domain.
Gruß,
Jan
Hallo Jan,
das selbstsignierte Zertifikat war auf die lokale IP ausgestellt. Ich hätte das noch mit der Domain probieren können. Aber über den oben beschriebenen Weg funktioniert es auch. Ich hatte auch heute von der Arbeit aus getestet, auch hier wird jetzt OnlyOffice ohne Murren geöffnet.
Geblieben ist der nötige Cron-Job, der 3 Minuten nach Systemstart den Docker-Container neu startet. Ohne dem läuft der Container nicht. Aber wenn‘s mal läuft dann läuft es auch.
Danke für die Hilfe.
Gruß, Norbert
Hallo Jan,
Klasse Anleitung! Habe viele deiner Projekte nachgebaut, und alles klappt bis auf Onlyoffice: Gleiches Problem wie Norbert nur an dem Punkt an dem er mit Hilfe des Kopieren des öffentlichen Schlüssels (statt des private) dann weiter gekommen ist hakts: Egal ob ich dem Container nur den Port 4433:443 oder die IP 127.0.0.1 und den Port, oder die IP des Webservers und den Port, oder zusätzlich (analog zum colabora – containe) die (sub)domaine übergebe, es wird vom lokalen Browser die Verbindung als unsicher abgelehnt, da das Zertifikat nur für Domaine ‚meine.domaine‘ gelte …(und nicht für die jeweilige lokale IP). Wenn man die Ausnahmeregel hinzu fügt, passiert das gleiche wie bei dem privaten Zertifikat, Onlyoffice lässt sich.starten. Im öffentlichen Netz ist der oo-Server nicht erreichbar, obwohl ich den Port 4433 geöffnet habe findet kein Routing statt..
Es scheint also doch, wie Norbert vermutete, an der Kommunikation onlyoffice-container vs. nginx zu liegen? Hast du noch eine Idee?
Gruß
Georg
Hallo Georg,
hast du folgenden Block in die config.php von Nextcloud mit aufgenommen?
onlyoffice' =>
array (
'verify_peer_off' => true,
),
Das ist nämlich wichtig, da es sich hier eben um ein selbst erstelltes Zertifikat handelt.
Ist OnlyOffice aus dem lokalen Netz dann erreichbar, aber aus dem Internet nicht?
Wenn dem so ist, dann braucht man denke ich wirklich eine eigene Subdomain für OnlyOffice…
Gruß,
Jan
ich habe exakt das selbe Problem wie bisher von Norbert beschrieben.
Es gibt ja folgende Werte, die man in nextcloud für Onlyoffice Serviceadresse eingeben kann:
localhost: Wenn man bei nextcloud 127.0.0.1:4433 bzw. localhost:4433 als Adresse des documentservers von OnlyOffice eingibt, dann überträgt Nextcloud jedem PC, er selbst würde den documentserver hosten und soll onlyoffice von sich selbst laden. Da die Dateien aber nunmal nur auf dem Server liegen (z.B. 192.168.178.10), wird selbst ein PC im selben Netzwerk (z.B. 192.168.178.22) onlyoffice nicht nutzen können, denn 192.168.178.22 sucht die onlyoffice Installation aufgrund der Angabe localhost bei sich selbst. D.h. mit localhost funktioniert onlyoffice nur für den Server selbst.
LAN IP des Servers: mit der LAN IP des Servers (in diesem Fall dann 192.168.178.10) erreichen jetztz schonmal alle Geräte im selben LAN die onlyoffice Installation, also kann z.B. 192.168.178.22 onlyoffice benutzen. Allerdings ist onlyoffice immer noch unnutzbar, wenn man über die Portfreigabe von woanders auf den Server zugreift. Der hat auch eine let’s-encryptete Domain (domain.tld), über die wir die Nextcloud Instanz erreichen, aber die verweist uns – optimalerweise auf dem Strand in Hawaii sitzend – auf die LAN Adresse 192.168.170.10:4433 des Servers. Damit können wir aber von außerhalb des LANs nix anfangen. Grrr. D.h. mit der LAN IP-Adresse des Servers funktioniert onlyoffice auch nur im LAN.
Domain des Servers (bzw. öffentliche IP-Adresse): Wenn man Norberts Anleitung folgt, dann kann man auch vom Hawaii-Strand in onlyoffice entspannende Tabellenkalkulationen oder ähnlich schöne Sache machen :D. Allerdings hat die Sache eine Haken: Man muss zunächst einmal https://domain.tld:4433 öffnen und dann je nach Browser eine Ausnahmegenehmigung für das Zertifikat erstellen, sonst läd das onlyoffice-Frame in Nextcloud nicht und man bekommt dort nur eine rote Zeile à la onlyoffice nicht gefunden. Für mich ist das ok, aber Leute, die sonst google docs benutzen, dazu zu bewegen das zu machen (vllt. weil Sie auch nicht wissen wie das bei Ihrem Gerät geht) ist schwierig.
Ich glaube das Problem liegt auch daran, dass lets encrypt nur über Port 80 und 443 Verschlüsselung anbietet. Die sind aber schon durch nextcloud belegt.
Daher war eine Idee, eine weitere Domain let’s-encryptete domain2.tld auf den mount point von onlyoffice /var/www/onlyoffice/ zu leiten und den onlyoffice Docker mit dem Port 443:443 zu starten. Dann würde man bei nextcloud für onlyoffice https://domain2.tld:443 eingeben. Allerdings lässt sich der Docker nicht starten, weil 443 schon von nextcloud belegt ist. Geht also nicht, außer man wüsste das zu umgehen.
Eine zweite Idee wäre, den mount point von onlyoffice in ein Unterverzeichnis von nextcloud zu legen, alo wenn nextcloud in /var/www/nextcloud/ liegt, dann z.B. /var/www/nextcloud/onlyoffice/. Starten man den Docker nun auf Port 4433, dann müsste https://domain.tld:4433/onlyoffice/ unsere onlyoffice-Seite öffnen. Stattdessen Fehler:Seite nicht gefunden. Wenn man stattdessen Docker mit Port 443 zu starten versucht, geht das wieder nicht, weil 443 ja durch nextcloud belegt ist.
Ich bin ziemlich unerfahren mit apache, extcloud und co, deswegen mache ich hier sicher etwas falsch.
Also meine Frage ist letzlich: Wie kann man den onlyoffice Documentserver per lets-encrypt zertifizieren? Im Artikel schreibst du Jan, dass es neben den selbsterstellten Schlüsseln auch einen letsencrypt-Weg gibt und genau den bräuchte ich.
Auch der Weg über eine zweite Domain ist ja kein Problem, dann nutzt man eben einfach eine kostenlose dyndns wie noip.com, läuft ja eh im Hintergrund.
Wenn Ihr mir helfen könnt dann honoriere ich das gerne auch finanziell. Ich benutze jetzt schon lange google docs und möchte ein bisschen von Google loskommen. Aber ich bekomme keinen meiner Kollegen davon überzeugt meine nextcloud mit OnlyOffice zu nutzen, wenn sie/er vorher diesem extra Aufwand betreiben muss. Dafür ist eben google docs zu einfach zu benutzen.
ich habe die Schritte jetzt nochmal gemacht und dabei ist mir aufgefallen, dass bei mir unter Ubuntu 18.04 /etc/apache2/sites-available im 3. Schritt der Befehl „cat lets-encrypt-x3-cross-signed.pem.txt>>onlyoffice.crt“ trotz root Rechten nicht geklappt hat. Das habe ich wohl übersehen. Da der Befehl einfach den Inhalt von ‚lets-encrypt-x3-cross-signed.pem.txt‘ an den Text, der bereits in ‚onlyoffice.crt‘ ist, anhängt (also sind nachher in ‚onlyoffice.crt der Text aus der originalen ‚onlyoffice.crt‘ und der aus der oriinalen ‚lets-encrypt-x3-cross-signed.pem .txt‘).
Statt
# cat lets-encrypt-x3-cross-signed.pem.txt>>onlyoffice.crt
kann man also auch folgendes machen:
1. /app/onlyoffice/DocumentServer/data/certs/lets-encrypt-x3-cross-signed.pem.txt‘ über den Dateiexplorer öffnen (normal würde man ja nano oder vi nehmen, aber bei mir konnte ich nichts aus nano kopieren)
2. Inhalt kopieren
3. # sudo nano /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
4. kopierten Text einfügen, dann STRG+O zum Speichern, mit ENTER bestätigen und mit STRG+X schließen
Gelernt: Wenn terminal-Sachen nicht gehen, einfach nochmal probieren.
Und ein großes Danke an Jan für den klasse Artikel, Norbert und alle die hier Nützliches geschrieben haben, super!
Hallo Vincent,
ist dein Problem damit nun gelöst?
Ich habe auch schon festgestellt, dass die im Artikel erwähnte Konfiguration versagt, wenn man nicht im lokalen Netzwerk ist. Ich denke mal, dass ich den Artikel nochmal komplett überarbeiten muss – richtig Spass macht die Sache erst, wenn man für OnlyOffice eine eigene Sub-Domain verwendet. Das ist ja im Prinzip mit einem CNAME-Eintrag für die Subdomain leicht realisierbar. Dann ist das Online-Office auch außerhalb des LANs erreichbar.
Gruß,
Jan
Hallo erstmal,
und vielen Dank für den super Artikel. Ich versuche schon seit längerer Zeit OnlyOffice bei mir zum Laufen zu bekommen. Ich kann erst einmal bestätigen, dass man keine eigene Subdomain dafür braucht. Ich komme mit oder ohne Subdomain genau zu dem gleichen Fehlerbild.
Sobald ich eine Datei öffnen möchte, sagt OnlyOffice dass die Datei nicht gespeichert werden kann und schlägt vor die Datei herunterzuladen. Wenn ich im Fehlerlog des Docker Containers schaue steht dort:
[ERROR] nodeJS – postData error: docId = 2701703739;url = http://nextclouddomain/apps/onlyoffice/track?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmaWxlSWQiOjc5ODEzLCJvd25lcklkIjoiU3RlZmZlbiIsInRva2VuIjpudWxsLCJhY3Rpb24iOiJ0cmFjayJ9.Qac-2tV3VPbVgSfFOpfn–wg_JqPQpTpKOEODAKyVF0;data = {„key“:“2701703739″,“status“:1,“users“:[„user“],“actions“:[{„type“:1,“userid“:“user“}]}
Error: Error response: statusCode:301 ;
ich habe die Webserver Config aus dem anderen Artikel fast komplett übernommen, nur ist der Reverse Proxy auf einem anderen Server und ich habe eine Subdomain anstelle des /nextcloud.
Weiß wer woran das liegen kann?
Hi Steffen,
also diese Fehlermeldung ist mir auch noch nicht untergekommen. Der Fehler HTTP 301 heißt übersetzt „Moved Permanently“. Hier würde ich zunächst einmal in das nginx error.log schauen, ob hier irgendein Redirect stattfindet, der verdächtig ist.
Es kann aber auch sein, dass dies ein interner Fehler von OnlyOffice ist. In diesem Fall kann ich hier denke ich nicht groß weiter helfen. Der nächste Anlaufpunkt wäre in diesem Fall das Nextcloud Forum bzw. das GitHub-Repository von OnlyOffice.
Gruß,
Jan
Hallo Jan,
Tolle Anleitung. Mein Onlyoffice Server läuft. Vom Nextcloud bekomme ich Fehler – ConvertedUri on check error: Im Dokumentenservice ist ein Fehler aufgetreten: Error while downloading the document file to be converted.
Wo kann Fehler liegen? Hast eine Idee für mich
Hallo Wlad,
er sagt hier ja schon „im Dokumentenservice“, daher befürchte ich mal, dass es ein OnlyOffice-interner Fehler sein wird.
Gibt es irgendwelche Log-Einträge (Nextcloud-Log bzw. Logs im Docker-Container)?
Gruß,
Jan
Was ich beschreibe ich in der Dokumentation von Onlyoffice unter https://api.onlyoffice.com/editors/nextcloud im Punkt Configuring Nextcloud ONLYOFFICE integration app mit den beiden Bildern anschaulich dargestellt.
Hallo Jan,
habe jetzt auch mal deine Anleitung ausprobiert.
Ich erhalte im Log jetzt folgenden Fehler.
Undefined variable: error at /var/www/nextcloud/apps/onlyoffice/controller/settingscontroller.php#174
Gruß Hans
Hi Hans,
zunächst einmal: Ich habe festgestellt, dass das in diesem Artikel erwähnte Setup eine erhebliche Einschränkung mit sich bringt: Der Zugriff auf Office-Dokumente ist damit nur aus dem lokalen Netzwerk möglich, nicht jedoch über das Internet. Das hängt damit zusammen, dass beim Bearbeiten eines Dokuments immer eine direkte Verbindung zum Office-Server aufgebaut wird. Dies ist in diesem Fall aber eine lokale IP, die über das Internet natürlich nicht erreichbar ist.
Ich habe schon einen Hinweis in diesem Artikel hinzugefügt und arbeite bereits an einem Folge-Artikel, der diese Einschränkungen dann nicht mehr mit sich bringt. Sorry, wenn du nun schon mit dem „falschen“ Artikel gestartet bist.
Zu deinem Fehler: Dies sieht mir eher aus wie ein Fehler im Quellcode der OnlyOffice-App und nicht im gezeigten Setup. Da bin ich leider raus, da ich keinen Überblick über den Quellcode solcher Apps habe.
Gruß,
Jan
Hallo,
monentan habe ich collabora office am laufen, bin aber mit diesem nicht sehr zufriende. Nextcloud habe ich mit deiner Anleitung Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban installiert.
Ich wollte nun Only office testest und konnte den Container auch erfolgreich installieren. Wenn ich die IP 192.168.1.100:4433 eingebe erscheint der Bildschirm wie in deiner Anleitung. Auch die Konfiguration in Nextcloud schaut gut aus. Beim Speichern der Einstellungen erhalte ich die Meldung „Einstellungen erfolgreich aktuallisiert“
Wenn ich nun jedoch versuche ein Office-Dokument zu öffnen bekomme ich die Meldung „ONLYOFFICE ist zur Zeit nicht erreichbar. Bitte wenden Sie sich an Ihren Administrator“
Kannst du mir bei dem Problem bitte weiter helfen?
Vielen Dank
Gruß Andreas
Hallo Andreas,
du bist hier anscheinend noch nach dem alten Tutorial vorgegangen. Dieses hatte massive Einschränkungen.
Für OnlyOffice benötigst du zwingend eine zweite Sub-Domain. Wie du diese erstellst/Konfigurierst und anschließend OnlyOffice einrichten kannst, ist in dem neuen Artikel zu OnlyOffice beschrieben.
Gruß,
Jan
Hallo Jan,
vielen Dank für diese Anleitung. Mein Onlyoffice lief schon seit Monaten stabil mit deiner Anleitung.
Nach meinem Update auf NC 17 ist OnlyOffice weiterhin unter onlyoffice.meinedomain.de erreichbar, aber im Browser-Fenster innerhalb von Nextcloud gibt es nur eine weiße Seite.OnlyOffice erscheint nicht mehr.
Im Protokoll finde ich immer folgedne Zeile: Undefined index: from at /var/www/nextcloud/apps/ojsxc/lib/stanzahandlers/iq.php#86 wenn ich OnlyOffice in NC starte.
Bist du auch der Meinung, dass ich diesen Fehler irgendwo melden sollte? Oder hast du etwa eine gute Idee, was ich machen könnte?
Herzlichen Gruß und Danke im Vorraus
Wulfila
P.S.: Ich habe schon folgendes wahllos und erfolglos versucht:
1. die App OnlyOffice in NC neu installiert
2. OnlyOffice in Docker gelöscht und neu installiert (nach Anleitung oben)
Hallo Wulfila,
OK, du hast also auch den kompletten Docker-Container neu installiert. Das wäre nun mein erster Ansatz gewesen.
Die Fehlermeldung scheint zunächst nicht zu passen, da hier ja nicht die OnlyOffice-App genannt wird.
Schau doch erst einmal in die Logs von nginx und dem Docker-Container selbst, vielleicht findet sich hier ja noch ein Hinweis.
Gruß,
Jan
Hallo Jan,
der Artikel ist zwar bisschen Älter, aber vielleicht kannst du mir weiterhelfen.
Habe Onlyoffice jetzt schon eine Weile laufen, funktioniert alles einwandfrei.
Wollte meine Instanz jetzt aber um den Security Token erweitern.
docker run –name onlyoffice -i -t -d –restart always -p 8080:443 -v /etc/httpd/ssl:/var/www/onlyoffice/Data/certs -e JWT_ENABLED:’true‘ -e JWT_SECRET:’TEST123′ onlyoffice/documentserver
Nachdem ich den Container so gestartet habe, funktioniert es trotzdem ohne das ich das Secret eingebe.
Wenn ich trotzdem ein Secret eingebe in der NextCloud oberfläche, bekomme ich folgende Meldung:
[ERROR] nodeJS – error downloadFile:url=https://xxxxxxx.at/index.php/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.-qSC1RHplU1Eu1CqLlRlagDLDAL9fwvS5zCJlMMTByk;attempt=3;code:null;connect:null;(id=conv_check_1025868086_docx)
Error: Error response: statusCode:403 ;body:
{„message“:“Zugriff verweigern“}
at Request._callback (/var/www/onlyoffice/documentserver/server/Common/sources/utils.js:257:18)
at Request.self.callback (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request. (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1161:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage. (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1083:12)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickCallback (internal/process/next_tick.js:181:9)
Freundliche Grüße
Hallo Andi,
du hast hier unter dem alten Artikel zu OnlyOffice gepostet. Hier basiert die OnlyOffice-Installation noch nicht auf einer eigenen (Sub-)Domain. Das ist mittlerweile allerdings für einen reibungslosen Betrieb notwendig (siehe neuer Artikel hier).
Sind in dem JWT-Secret vielleicht irgendwelche Sonderzeichen, die vielleicht verhindert, dass er dieses Secret richtig annimmt? Ansonsten sollte das eigentlich funktionieren.
Gruß,
Jan
Hallo Jan,
danke für die schnelle Antwort.
Bei mir läuft OnlyOffice schon länger auf einer eigenen Domain.
Ich habe wie oben beschrieben „TEST123“ als Secret genommen, aber es funktioniert ohne Secret. :/
Theoretisch kann jemand der die Domain kennt, mein Onlyoffice in seinem NextCloud auch benutzen, oder?
Freundliche Grüße
Hi Andi,
ja, genau dafür ist dieses Secret ja da: Dass niemand anderes diese OnlyOffice-Instanz verwenden kann, der das Secret nicht kennt.
Hier sind mir jedoch keine weiteren Einstellungen bekannt, wie man dies steuern kann.
Könntest du mir mal den vollständigen Befehl zum Starten des Containers zukommen lassen (gerne auch per Mail). Vielleicht stimmt hier einfach irgend etwas nicht.
Gruß,
Jan
Hallo Jan,
ich habs endlich geschafft, ich beschreibs hier mal kurz, vielleicht hilfts wem anderen oder du willst den Beitrag ergänzen.
Mein eigener Befehl hat bei mir aus irgendeinem Grund nicht funktioniert, der Container ließ sich starten, aber im Container selber war in der local.json nichts eingetragen!
docker run –-name onlyoffice -i -t -d –restart always -p 8080:443 -v /etc/httpd/ssl:/var/www/onlyoffice/Data/certs -e JWT_ENABLED:’true‘ -e JWT_SECRET:’geheimes-secret′ onlyoffice/documentserver
Ich habe mir deinen Befehl genommen und ihn auf mein System angepasst.
docker run –name=onlyoffice -i -t -d –restart=always -p 8080:443 -e JWT_ENABLED=’true‘ -e JWT_SECRET=’geheimes-secret‘ -e JWT_HEADER=’AuthorizationJwt‘ -v /etc/httpd/ssl:/var/www/onlyoffice/Data/certs onlyoffice/documentserver
Mit diesem Befehl hat es die Optionen für die local.json übernommen.
Container öffnen mit dem Befehl: docker exec -it „ContainerID“ /bin/bash
Dann unter /etc/onlyoffice/documentserver/local.json kontrollieren ob das Secret drin steht.
Außerdem musste ich meine config.php ergänzen.
‚onlyoffice‘ =>
array (
‚verify_peer_off‘ => true,
„jwt_secret“ => „geheimes-secret“,
„jwt_header“ => „AuthorizationJwt“
),
Ich hoffe das hilft anderen weiter!
P.S. bei self signed certs muss im Container unter /etc/onlyoffice/documentserver/default.json „rejectUnauthorized“: auf false gesetzt werden!
Freundliche Grüße
Hi Andi,
freut mich, dass es nun läuft.
Herzlichen Dank, dass du deine Erfahrungen hier teilst, ist vielleicht auch für den einen oder anderen interessant.
Du hast eigentlich „nur“ folgendes zum Starten des Containers hinzugefügt (-e JWT_HEADER=’AuthorizationJwt‘), oder?
Ich werde das mal im Auge behalten und den Artikel ggf. anpassen.
Edit: Was mich noch interessieren würde: Wie bist du auf diese Lösung gekommen?
Gruß,
Jan
Hallo, wir haben jetzt NC 18 und da läuft OnlyOffice, allerdings sind bei den Einstellungen wahrscheinlich einträge erforderlich, wie z.B.
– Serveradresse der Dokumentbearbeitung
– Geheimer Schlüssel (freilassen, um zu deaktivieren)
– Serviceadresse der Dokumentbearbeitung für interne Anforderungen vom Server
– Serveradresse für interne Anforderungen vom Dokumentbearbeitung-Service (Anmerkung: da ist die Serveradresse eingetragen)
– und dann ein Häckchen: Verbindung zu Demo OnlyOffice Document Server herstellen (Anm. öffentl. Testserver, 30 Tage)
Für Tipps wäre ich dankbar
Viele Grüße
Norbert
Hallo Norbert,
du hast den Kommentar unter dem alten Artikel über OnlyOffice verfasst. Dieser ist nicht mehr aktuell, weil die Konfiguration ohne eigene Domain für OnlyOffice leider nicht so richtig funktioniert.
Daher halte dich bitte an den neuen Artikel hier.
Hier ist auch im entsprechenden Abschnitt gezeigt, welche Einstellungen in Nextcloud vorzunehmen sind.
Gruß,
Jan
Moin Jan,
ich habe mitlerweile meine Nextcloud hinter einem Revers proxy laufen – dieses auch mit erfolg geschafft. Und die Nextcloud endet jetzt auch direkt im root also ohne /nextcloud – und es lauft jetzt auf dem Apache’n (aber alles ohne Neuinstallion gemacht)
Nur bei Onlyoffice klemmt es jetzt .. da fehlt mir jetzt das KnowHow.
Der Docker funktioniert noch – nur wie bekomme ich jeztz den Reverse Proxy dazu mich zum Docker bzw zum Onlyoffice durchzureich.
Hi Bastian,
das hier ist der alte Artikel für OnlyOffice. Bitte halte dich an den neuen Artikel, da solltest du fündig werden.
Gruß,
Jan
Hallo Jan,
ich habe alles lt. Anleitung gemacht aber erhalte folgende Error im Container:
==> /var/log/onlyoffice/documentserver/docservice/out.log /var/log/onlyoffice/documentserver/metrics/err.log /var/log/onlyoffice/documentserver/metrics/out.log /var/log/onlyoffice/documentserver/nginx.error.log <==
Ich kann auch nicht die Seite aufrufen wie bei dir.
Habe zusätzlich auch nur folgende Dateien im /certs Ordner:
dhparam.pem onlyoffice.csr onlyoffice.key
Hi Timo,
du schreibst das unter das „veraltete“ Tutorial. Das hier geht nur noch in Spezial-Fällen. Bitte halte dich mal an das neue Tutorial. Der größte Unterschied ist hier, dass du für OnlyOffice eine zweite (Sub-)Domain benötigst.
Gruß,
Jan
Hi Jan,
ja habe ich tatsächlich vorhin auch gemerkt als ich den Kommentar davor gelesen habe.
Mit dem neuen Tutorial hat es geklappt auch wenn ich es etwas anders umgesetzt habe (ohne SSL snippet usw)