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!