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!

Schreibe einen Kommentar

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