AppsDockerNextcloudVPS

Bereitstellung OnlyOffice mit Docker und Apache2 als Reverse Proxy auf Ubuntu 16.04 LTS

Heute möchte ich Euch zeigen wie Ihr die Alternative zu Collabora Online Office, Only Office Documentserver, mit Docker und Apache2 als Reverse Proxy in Betrieb nehmt. Dabei sichern wir den Zugriff mit einem Passwort ab, so dass nur Euch bekannte Nextcloud-Instanzen darauf zugreifen können.

Voraussetzungen:

– Ubuntu VPS mit root-Zugriff
– LAMP-Stack installiert (Apache2 würde auch reichen)
– Certbot installiert
– Reverse Proxy Module in Apache2 aktiviert
– Docker installiert
– A-Record im DNS für entsprechenden vHost

Sollten Vorraussetzungen fehlen, müssen wir diese natürlich wieder schaffen.

LAMP-Stack:

sudo apt-get install lamp-server^

Benötigte Apache2-Module aktivieren:

sudo a2enmod proxy proxy_http proxy_ajp rewrite deflate headers proxy_balancer proxy_connect proxy_html proxy_wstunnel authz_core authn_core setenvif ssl

Docker:
Version aus den offiziellen Paketquellen:

sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

oder direkt von Docker:

sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh
sudo systemctl enable docker.service
sudo systemctl start docker.service

Certbot:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Im Anschluss können wir fortfahren und den vHost für OnlyOffice anlegen.

Anlegen Apache2-vHost:

Wir legen uns einen neuen vHost für Apache2 an:

sudo nano /etc/apache2/sites-available/002-onlyoffice.conf

und fügen den folgenden Inhalt ein:

<VirtualHost *:80>
ServerName onlyoffice.your-domain.tld
</VirtualHost>

aktivieren den vHost und starten Apache2 neu:

sudo a2ensite 002-onlyoffice.conf
sudo systemctl restart apache2

Nun erstellen wir für den vHost die LetsEncrypt-Zertifikate mit certbot:

certbot --apache

vhost auswählen und am Ende „redirect“ auswählen.

Die von certbot erstellte vHost.conf bearbeiten wir nun:

sudo nano /etc/apache2/sites-available/002-onlyoffice-le-ssl.conf

und setzen unterhalb der Zeile „ServerName“ den folgenden Block ein:

SSLProxyEngine on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder on

SetEnvIf Host "^(.*)$" THE_HOST=$1
RequestHeader setifempty X-Forwarded-Proto https
RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e
ProxyAddHeaders Off

ProxyPassMatch (.*)(\/websocket)$ "ws://127.0.0.1:9981/$1$2"
ProxyPass / "http://127.0.0.1:9981/"
ProxyPassReverse / "http://127.0.0.1:9981/"

Am Ende noch einmal Apache2 neu starten:

sudo systemctl restart apache2

Docker Container starten:

Wenn Docker installiert ist, können wir den OnlyOffice Documentserver mit dem folgenden Befehl starten. Bitte darauf achten, dass Ihr den Secret-Key anpasst:

docker run -i -t -d -p 127.0.0.1:9981:80 -e JWT_ENABLED='true' -e JWT_SECRET='your-secret-key' --restart=always onlyoffice/documentserver

wenn ausgeführt, prüfen wir mit:

docker ps

ob der Container läuft:

Zur Kontrolle rufen wir noch unsere OnlyOffice-Domain im Browser auf und prüfen, ob wir das folgende Resultat sehen:

Nextcloud:

Jetzt können wir unsere Nextcloud-Instanz anbinden. Dazu installieren wir die App „OnlyOffice“ aus dem App-Store in unserer Nextcloud und aktivieren diese.

In den Einstellungen finden wir jetzt einen neuen Punkt „ONLYOFFICE“ in dem wir unseren DNS-Namen und unser Secret (Erweiterte Servereinstellungen) eintragen müssen:

Nachdem wir dies gespeichert haben, können wir die Dokumente direkt in der Nextcloud mit OnlyOffice bearbeiten:

Das war es für heute und viel Spaß 🙂

Wenn der Artikel Euch geholfen hat, dann freue ich mich wie immer über Feedback oder Ihr teilt ihn einfach!

9 Gedanken zu „Bereitstellung OnlyOffice mit Docker und Apache2 als Reverse Proxy auf Ubuntu 16.04 LTS

  1. Hallo und vielen Dank für das Tutorial!
    Ich habe nur ein Problem: Unter der eigentlichen Adresse des Document Servers läuft alles, man sieht also das Welcome Dokument. Aber unter Nextcloud (Vollkommen anderer Server, normaler webspace, kein vServer mit sudo-Rechten) nach der Einrichtung (inkl. dem richtigen Secret Key) wird auch alles gespeichert in den ONLYOFFICE EInstellungen, aber beim Aufruf gibt es nur die Fehlermeldung „ONLYOFFICE cannot be reached. Please contact admin“. Zuerst dachte ich, es liegt an der aktivierten Verschlüsselung der Nextcloud, aber auch bei deaktivierter Verschlüsselung tritt der Fehler weiter auf… Irgendeinen Tipp, woran das liegen könnte?
    In den logs von NC zeigt sich immer ein error in der „setting.php“ des ONLYOFFICE-Plugins, meist in Zeile 93, wo der Befehl „edit“ aufgerufen wird…. Daher bin ich da auch nicht schlauer. Vielleicht hast Du ja mit Deiner Erfahrung eine Ahnung, was ich noch versuchen kann?

    Viele Grüße, Ulf

      1. Hallo Markus!
        Vielen Dank für Deine Antwort und Hilfsbereitschaft! Tjaaaa….wie immer ist es einfacher als man denkt: Der dümmste anzunehmende User, also ich selber, hat sich reingelegt. 🙂 Funktioniert alles! Es lag an meinen umatrix-Einstellungen im Browser, nicht an Nextcloud, und nicht an Deiner Konfigurations-Anleitung!

        Eine Frage habe ich aber noch: Weißt Du auch eine Konfiguration für nginx, die so schön funktioniert wie Deine hier für Apache?

        Viele Grüße!

  2. Hallo Markus, danke für das Tutorial. Ich habe aber noch ein Problem: Bei mir läuft der OnlyOffice Server neben Apache. Der CommunityServer benötigt Port 443, wie Apache auch. Wie kann ich OnlyOffice auf einen anderen Port als 443 umstellen?

  3. Super, vielen Dank! Nach 50 Std. rumprobieren um die richtige apache2 conf für onlyoffice-documentserver(docker) zu finden, war dies ein Volltreffer. Ich habe noch eine Problemstellung: openKM (läuft unter Tomcat) mit HTTPS. Alle configs, die ich bis jetzt gefunden habe funktioren leider nicht.
    Gruss Guenter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.