OnlyOffice und Seafile mit lokaler IP verwenden

Die Online-Editoren von OnlyOffice sind eine beliebte Ergänzung zur Sync & Share Lösung Seafile. So einfach die Integration von OnlyOffice auch scheint, kontaktieren uns leider immer wieder frustrierte Administratoren, die OnlyOffice einfach nicht mit Seafile verknüpft kriegen. Der Grund für diese Probleme liegt in den meisten Fällen in der Verwendung von alten Seafile und OnlyOffice Versionen oder eines selbst erzeugten Zertifikats – häufig in Kombination mit der Verwendung von lokalen IP-Adressen. Dieser Artikel gibt eine Hilfestellung, wie man auch mit diesem Setup eine funktionierende Integration von OnlyOffice und Seafile erreicht.

Typische Integration von OnlyOffice mit Seafile

Im englischen Seafile Manual sind die notwendigen Schritte zur Integration von OnlyOffice mit Seafile umfangreich beschrieben. Die offizielle Empfehlung ist es, dass sowohl Seafile als auch OnlyOffice über eine öffentliche URL erreichbar sein sollten. Onlyoffice kann dabei entweder als Unterverzeichnis eines Seafile Systems (z.B. …/onlyofficeds) oder als Subdomain (onlyofficeds.domain.de) installiert werden. Auch bei der Art der Installation gibt es zwei Alternativen. Onlyffice kann entweder als Docker-Container oder direkt aus den Paketquellen installiert werden.

Egal für welche Art der Installation man sich entscheidet, sobald ein Onlyoffice zur Verfügung steht sollte, genügt es in den seahub_settings.py den folgenden Code-Block einzutragen. Schon sollte die Integration funktionieren.

# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http{s}://{your OnlyOffice server's domain or IP}/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')

Dieses Setup funktioniert einwandfrei, wenn sowohl Seafile als auch OnlyOffice über eine öffentlich erreichbare URL mit einem gültigen SSL-Zertifikat erreichbar sind. Insbesondere in Zeiten von Let’s Encrypt stellt dies typischerweise auch kein Problem mehr dar. Die Probleme entstehen typischerweise dann, wenn entweder OnlyOffice oder Seafile nicht über ein gültiges Zertifikat verfügen.

OnlyOffice Welcome Page

Ein problematisches Szenario könnte z.B. so aussehen: auf einem Sever mit der lokalen IP-Adresse 192.168.1.14 ist sowohl Seafile und auch OnlyOffice als Docker-Variante installiert. Der lokale Webserver ist so konfiguriert, dass die Onlyoffice Welcome Page zuverlässig über 192.168.1.14/onlyofficeds angezeigt wird. Trotzdem funktioniert die Integration von Seafile nicht. Beim Aufruf eines Office-Dokuments öffnet sich zwar OnlyOffice im Browserfenster, aber es kommt zu einer Fehlermeldung. Je nach Seafile Version können die Fehlermeldungen unterschiedlich lauten: Entweder es erscheint schlicht ein Error oder ein Warnhinweis, dass das Dokument kann nicht gespeichert werden etc.

OnlyOffice Fehlermeldung

Wieso entsteht dieses Problem?

Das Problem ist, dass die Kommunikation in beide Richtungen erfolgt. Seafile fragt beim OnlyOffice Server nach und OnlyOffice schickt Informationen an Seafile. In der Seafile Konfiguration kann man angeben, dass die Verifikation von SSL Zertifikaten nicht erforderlich ist. Bei OnlyOffice kann man diesen Parameter nicht setzen. Hier wird erwartet, dass die Seafile URL über ein gültiges Zertifikat verfügt. Man kann sich das also vereinfacht so vorstellen: Seafile schickt die Datei an OnlyOffice. OnlyOffice verarbeitet diese Informationen und will seine Antwort an Seafile schicken, stellt jedoch fest, dass die Kommunikation mit Seafile nicht den Anforderungen entspricht.

Wie löst man dieses Problem?

Am Ende ist die Lösung so einfach wie trivial. In OnlyOffice-Dokumentenserver muss eingestellt werden, dass die Kommunikation mit Seafile über eine Verbindung mit einem selbst erzeugten Zertifikat erfolgen darf. Dafür genügt es einen Konfigurationsparameter zu ändern und den Dokumentenserver neu zu starten.


# Absprung in den OnlyOffice-Docker Container (nur notwendig bei Docker-Installationen)
$ docker exec -it  /bin/bash

# Der OnlyOffice-Parameter "rejectunauthorized" muss auf "false" geändert werden
nano /etc/onlyoffice/documentserver/default.json muss ein Parameter umgestellt werden.

# Neustart von OnlyOffice und ggf. verlassen des Containers
$ supervisorctl restart all
$ exit

Danach sollte es, ohne Probleme möglich sein Office Dokumente aus Seafile an OnlyOffice zu übergeben und damit zu arbeiten. Die Kommunikation zwischen Seafile und OnlyOffice läuft weiterhin verschlüsselt per HTTPS ab, jedoch wird ab sofort von beiden Softwarelösungen nicht mehr ein beglaubigtes Zertifikat gefordert.

OnlyOffice öffnet sich zwar, aber es kommt zum Fehler beim Speicher

OnlyOffice Fehler beim Speichern in Seafile

Dieses Verhalten sollte nur bei älteren Seafile Versionen auftreten. Nach einem Update auf die neueste Seafile Version sollte dieser Fehler verschwinden. Hintergrund ist, dass in älteren Seafile Versionen der Parameter Verify_ssl_… nicht konsequent umgesetzt wurde. So gibt es einzelne Views, wie z.B. der für den Speichervorgang von OnlyOffice verantwortlich ist, in denen weiterhin eine abgesicherte Verbindung erforderlich ist. Möchte man partout nicht auf eine neuere Seafile Version aktualisieren, muss man die entsprechenden Dateien identifizieren und entsprechend anpassen. So müsste man z.B. bei der Version 7.0.4 Professional Edition folgende Änderung durchführen.


# alte Version von /home/seafile/seafile-server-latest/seahub/seahub/onlyoffice/views.py
requests.post(update_url, files=files)

# neue Version von /home/seafile/seafile-server-latest/seahub/seahub/onlyoffice/views.py
requests.post(update_url, files=files, verify=False)

Nach dieser Änderung ist ein Neustart von Seafile und Seahub notwendig.

OnlyOffice und Seafile – es funktioniert

Machen Sie sich das Leben leicht und nutzen Sie sowohl für Seafile als auch OnlyOffice Let’s Encrypt Zertifikate und öffentlich erreichbare URLs. So vermeiden Sie Stolpersteine, wie sie in diesem Artikel beschrieben sind. Wenn Sie trotzdem entgegen der Empfehlung selbst-erzeugte Zertifikate verwenden wollen, müssen Sie um die Details von OnlyOffice und Seafile wissen und die entsprechenden Konfigurationsanpassungen vornehmen. Ich wünsche viel Spaß mit OnlyOffice und Seafile.