Nextcloud mit ONLYOFFICE

Nextcloud mit Only Office

Folgen Sie dieser Anleitung um ONLYOFFICE in ihre besthende Domäne zu integrieren
und alle gebräuchlichen Officedokumente lesen, bearbeiten und erzeugen zu können.
Egal ob Microsoft- oder Libre-Office.
Sie müssen lediglich noch den TCP-Port 8443 in Ihrer Firewall (o. Router) öffnen:

Bereiten Sie im Anschluß an die Portfreigabe Ihren Server für die Verwendung von Docker vor. Entfernen Sie dafür die Standard Dockersoftware, installieren dann alle notwendigen Module nach und öffnen in der lokalen ufw zusätzlich zu Ihrer vorgeschalteten Firewall (o. Router) den TCP-Port 8443:

sudo -s
apt remove docker docker-engine docker.io
apt install apt-transport-https ca-certificates curl software-properties-common -y
ufw allow 8443/tcp
Ubuntu:
sed -i '$adeb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable' /etc/apt/sources.list
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Debian:
sed -i '$adeb [arch=amd64] https://download.docker.com/linux/debian stretch stable' /etc/apt/sources.list
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Aktualisieren Sie Ihren Server und installieren dann Docker-CE:

apt update && apt install docker-ce -y

Stellen Sie sicher, dass Docker funktioniert. Führen Sie dazu das folgende Statement aus:

docker run hello-world

Wenn das funktioniert hat, dann beginnen Sie mit dem Download und der Installation des ONLYOFFICE Documentservers (latest):

docker pull onlyoffice/documentserver

Weitere Releases können Sie hier ermitteln und ggf. durch die Angabe des Releases eine dedizierte Version

Beispielsweise:
docker pull onlyoffice/documentserver:5.4.2.46

herunterladen und verwenden.

Es werden ca. 650 MB heruntergeladen und verifiziert.

Im Anschluß daran wird der Webserver nginx angepasst:

nano /etc/nginx/nginx.conf

Ergänzung:
upstream onlyoffice-docker {
server 127.0.0.1:8443;
}

user www-data;
...
}
http {
server_names_hash_bucket_size 64;
upstream onlyoffice-docker {
server 127.0.0.1:8443;
}
upstream php-handler {
server unix:/run/php/php7.4-fpm.sock;
}
...

Überprüfen Sie die /etc/nginx/ssl.conf bzgl. der Verwendung von TLS v. 1.2, welches von ONLYOFFICE zwingend benötigt wird:

...
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384';
ssl_ecdh_curve X448:secp521r1:secp384r1:prime256v1;
...

Starten Sie den Webserver nginx und PHP neu:

service php7.4-fpm restart && service nginx restart

Erzeugen Sie neue Ordner und kopieren Ihre SSL-Zertifikate (bspw. Let’s Encrypt Zertifikate) hinein:

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp /etc/letsencrypt/rsa-certs/privkey.pem /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
cp /etc/letsencrypt/rsa-certs/fullchain.pem /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt cp /etc/ssl/certs/dhparam.pem /app/onlyoffice/DocumentServer/data/certs/dhparam.pem chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

Hinweis:
Dieser Schritt muss nach jeder Zertifikatserneuerung wiederholt werden und könnte bspw. durch ein per CRONJOB automatisiertes Skript (exemplarisch renewal.sh) ausgeführt werden:

nano /root/renewal.sh
#!/bin/bash
sudo -u acmeuser "/home/acmeuser/.acme.sh"/acme.sh --cron --home "/home/acmeuser/.acme.sh"
/usr/sbin/service nginx stop
/usr/sbin/service mysql restart
/usr/sbin/service redis-server restart
/usr/sbin/service php7.4-fpm restart
/usr/bin/docker restart ONLYOFFICEDOCKER
/usr/sbin/service nginx restart
exit 0
chmod +x /root/renewal.sh
(crontab -l ; echo "@weekly /root/renewal.sh 2>&1") | crontab -u root -

Starten Sie nun den ONLYOFFICE-Dockercontainer mit dem folgenden Einzeiler. Passen Sie dazu bitte ‚yoursecret nach Ihrem Bedarf an.

docker run --name=ONLYOFFICEDOCKER -i -t -d -p 8443:443 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_ENABLED='true' -e JWT_SECRET='yoursecret' --restart=always onlyoffice/documentserver

Warten Sie einen kurzen Moment ab und überprüfen dann die Erreichbarkeit des ONLYOFFICE-Servers:

https://your.dedyn.io:8443/

Wählen Sie sich in Ihre Nextcloud als Administrator ein und aktivieren dort die ONLYOFFICE-App.

Wechseln Sie in die Einstellungen und tragen Ihre Nextcloud-Domäne (https://your.dedyn.io:8443) inkl. des TCP-Ports 8443 ein. Setzen Sie zudem das von Ihnen vergebene Passwort ‚yoursecret‚.

Ab sofort können Sie Ihre Office-Dokumente lesen, bearbeiten und auch neue Officedokumente direkt in Ihrer Nextcloud erzeugen:

Wie aktualisieren Sie den Dockercontainer?

Stop:

docker stop ONLYOFFICEDOCKER

Entfernen:

docker rm ONLYOFFICEDOCKER

Aktualisierung laden:

docker pull onlyoffice/documentserver

Neustart

docker run --name=ONLYOFFICEDOCKER -i -t -d -p 8443:443 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_ENABLED='true' -e JWT_SECRET='yoursecret' --restart=always onlyoffice/documentserver

Die Installation Ihres Nextcloudservers und der ONLYOFFICE Suite wurde erfolgreich abgeschlossen und so wünsche ich Ihnen viel Spaß mit Ihren Daten in Ihrer privaten Cloud. Über eine Spende würden sich meine Frau, meine Zwillinge und ich sehr freuen!

© Carsten Rieger IT-Services


Hilfestellungen rund um DOCKER:

Status der Dockercontainer:

docker ps
docker image list

Speicherbelgung:

docker system df

Speicherplatz freigeben:

docker system prune

Achtung, das entfernt:
– alle gestoppten container
– alle Netzwerke, die nicht von mindestens einem Container verwendet werden
– dangling images
– build cache