Folgen Sie dieser Anleitung und binden Sie Nextcloud Office (aka Collabora Office) in Ihren Nextcloud Server ein, so dass Office Dokumente online (und mobil) bearbeitet werden können. Optional beschreiben wir auch, wie Sie die Microsoft-Schriftarten installieren und in Nextcloud Office einbinden. Folgen Sie dieser Anleitung und passen dabei nur die roten Parameter an.
Wir beginnen mit der Systemvorbereitung:
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
Ab hier geht es wieder für beide Betriebssysteme: weiter:
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 Nextcloud Office 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 Nextcloud Domains und eine Nextcloud Office-Instanz 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
OPTIONAL: Microsoft Schriftarten
Möchten Sie Microsoft Schriftarten anbieten, so folgen Sie bitte diesem Beispiel: Zuerst installieren Sie die Microsoft Schriftarten:
DEBIAN
apt-add-repository contrib non-free -y
UBUNTU
add-apt-repository multiverse -y
Ab hier geht es wieder für beide Betriebssysteme: weiter:
Schriftarten installieren:
apt install ttf-mscorefonts-installer-y
Schriftarten-Cache aktualisieren:
fc-cache -f -v
Nextcloud-Office als Docker starten:
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
Nextcloud Office hinter einem Reverse Proxy
Kommt es zu Verbindungsproblemen während des Öffnens von Office-Dokumenten aus der Nextcloud heraus, so kann ein vorgelagerter Reverse Proxy (HAProxy, nginx-ReverseProxy, nginx Proxy Manager o.Ä.) dafür verantwortlich sein. Ändern Sie in diesem Fall das zugrundeliegende docker-Statement (–add-host domain.tld:ip) und verwenden die IP des vorgelagerten Reverse Proxys (im Beispiel 192.168.0.3):
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:192.168.0.3 --volume "/usr/share/fonts/truetype/:/opt/collaboraoffice/share/fonts/truetype/local/:ro" --restart always collabora/code
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
Speicherbelegung:
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 von Nextcloud Office 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 und ich sehr freuen!