Kontakt

Carsten Rieger IT Services
Am Danglfeld 8 | 83132 Pittenhart
Telefon: 08624.9009794
E-Mail: info@c-rieger.de

Nextcloud mit Nextcloud Office für eine oder multiple Domains

turnserver
Nextcloud mit Nextcloud Office Docker

Folgen Sie dieser Anleitung und binden Sie Collabora Office in Ihren Nextcloud Server ein, so dass Office Dokumente online (auch mobil) bearbeitet werden können. Sie müssen nur die roten Parameter anpassen. Wir beginnen mit der Systemvorbereitung und entfernen das native docker und richten notwendige Tools ein:

apt remove docker docker-engine docker.io
apt install apt-transport-https ca-certificates curl software-properties-common -y

Ubuntu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Debian:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Aktualisieren Sie das System und installieren docker-ce (docker community edition):

apt update && apt install docker-ce -y

Testen Sie docker

docker run hello-world

und das Ergebnis sollte in etwa meinem entsprechen:

Laden Sie nun den Collabora Docker herunter:

docker pull collabora/code

Es werden zirka 500 MB heruntergeladen und verifiziert. Im Anschluss daran passen wir den Webserver nginx für die Nutzung der Collabora Software an: (Quelle: Link)

github: https://codeberg.org/criegerde/nextcloud-office/src/branch/master/etc/nginx/conf.d/nextcloud.conf

Fügen Sie den roten Block zu Ihrer bestehenden Webserverkonfiguration hinzu:

nano /etc/nginx/conf.d/nextcloud.conf
...
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)                { return 404; }

### Start Collabora Online ###
 # static files
 location ^~ /browser {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }
 # WOPI discovery URL
 location ^~ /hosting/discovery {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }
 # Capabilities
 location ^~ /hosting/capabilities {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }
 # main websocket
 location ~ ^/cool/(.*)/ws$ {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $http_host;
   proxy_read_timeout 36000s;
 }
 # download, presentation and image upload
 location ~ ^/(c|l)ool {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }
 # Admin Console websocket
 location ^~ /cool/adminws {
   proxy_pass https://127.0.0.1:9980;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $http_host;
   proxy_read_timeout 36000s;
 }
### End Collabora Online ###

location ~ \.php(?:$|/) {
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
...
}

Quelle: Collabora

Starten Sie nun zuerst den Webserver

service nginx restart

und ermitteln dann das Netzwerkinterface von Docker.

ip --br a

Ihnen werden alle gebundenen Netzwerke angezeigt, relevant ist aber nur das entsprechende Docker-Interface:

[...]
docker0 UP 172.17.0.1/16 fe80::42:b6ff:fe32:ca91/64
[...]

Starten Sie dann den Docker-Container:

docker run -t -d -p 127.0.0.1:9980:9980 -e "aliasgroup1=https://your.dedyn.io:443,https://your\\.dedyn\\.io:443" -e "username=AdminName" -e "password=Your-Secret" --name NEXTCLOUDOFFICE --memory="4G" --memory-swap="4G" -e "lang=de_DE" -e "dictionaries=de_DE en_GB en_US" -e "extra_params=--o:home_mode.enable=true" --add-host your.dedyn.io:172.17.0.1 --restart always collabora/code

Möchten Sie mehrere Domains nutzen, so folgen Sie bitte diesem Beispiel:

docker run -t -d -p 127.0.0.1:9980:9980 -e "aliasgroup1=https://your.dedyn.io:443,https://your\\.dedyn\\.io|your_second\\.dedyn\\.io:443" -e "aliasgroup2=https://your_second.dedyn.io:443" -e "username=AdminName" -e "password=Your-Secret" --name NEXTCLOUDOFFICE --memory="4G" --memory-swap="4G" -e "lang=de_DE" -e "dictionaries=de_DE en_GB en_US" -e "extra_params=--o:home_mode.enable=true" --add-host your.dedyn.io:172.17.0.1 --add-host your_second.dedyn.io:172.17.0.1 --restart always collabora/code

Quelle: Collabora

Möchten Sie bereits installierte Microsoft Schriftarten anbieten, so folgen Sie bitte diesem Beispiel:

docker run -t -d -p 127.0.0.1:9980:9980 -e "aliasgroup1=https://your.dedyn.io:443,https://your\\.dedyn\\.io:443" -e "username=AdminName" -e "password=Your-Secret" --name NEXTCLOUDOFFICE --memory="4G" --memory-swap="4G" -e "lang=de_DE" -e "dictionaries=de_DE en_GB en_US" -e "extra_params=--o:home_mode.enable=true" --add-host your.dedyn.io:172.17.0.1 --volume "/usr/share/fonts/truetype/:/opt/collaboraoffice/share/fonts/truetype/local/:ro" --restart always collabora/code

Sehen Sie sich die Logdatei an um einen ordnungsgemäßen Start sicherzustellen:

docker logs NEXTCLOUDOFFICE

Um Parameter der DOckerinstanz anlaysieren zu können nutzen Sie docker inspect

docker inspect NEXTCLOUDOFFICE

Treten DNS Fehler auf, so erzeugen Sie eine json Datei:

nano /etc/docker/daemon.json

Fügen Sie alle Zeilen ein

{
"dns": ["192.168.2.1"]
}

(angenommen, der DNS sei 192.168.2.1) und starten Docker neu:

service docker restart

Melden Sie sich in der Nextcloud an und aktivieren als Administrator die neue ‚Nextcloud Office‘ App:

Wechseln Sie in die Collabora Einstellungen und tragen dort Ihre Domain (https://ihre.domain.de) ein:

Ergänzen Sie die ‚Allow list for WOPI requests‚, in unserer Anleitung 172.17.0.1/16 ( « das Docker-Subnetz):

Ab sofort können Sie Nextcloud mit einer integrierten Officelösung verwenden!


Nextcloud Office bietet zudem eine kleine Statistik- und Administrationsoberfläche. Diese erreichen Sie über den Aufruf im Browser:

https://ihre.domain.de/browser/dist/admin/admin.html

Wie aktualisieren Sie den Docker container?

Stop:

docker stop NEXTCLOUDOFFICE

Entfernen:

docker rm NEXTCLOUDOFFICE

Aktualisierung laden:

docker pull collabora/code

Neustart

docker run -t -d -p 127.0.0.1:9980:9980 -e "aliasgroup1=https://your.dedyn.io:443,https://your\\.dedyn\\.io:443" -e "username=AdminName" -e "password=Your-Secret" --name NEXTCLOUDOFFICE --memory="4G" --memory-swap="4G" -e "lang=de_DE" -e "dictionaries=de_DE en_GB en_US" -e "extra_params=--o:home_mode.enable=true" --restart always collabora/code

Aktualisierung der Nextcloud Templates:

sudo -u www-data php /var/www/nextcloud/occ richdocuments:update-empty-templates

Es steht Ihnen auch ein Nextcloud-Updateskript inklusive der Nextcloud-Office-Docker-Aktualisierung zur Verfügung.

wget -O update.sh -q https://codeberg.org/criegerde/nextcloud/raw/branch/master/skripte/update-nc-office.sh

Hilfestellungen rund um DOCKER:

» https://hub.docker.com/r/collabora/code/tags

Status der Docker container:

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

Die Installation Ihres Nextcloudservers und der Collabora Office Suite wurde erfolgreich abgeschlossen und so wünsche ich Ihnen viel Spaß mit Ihren Daten in Ihrer privaten Cloud. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge u würden sich meine Frau, meine Zwillinge und ich sehr freuen!