Collabora mit Nextcloud und nginx

Unter Debian 8 und nginx Collabora zum Laufen zu bringen, ist nicht ganz trivial. Aus verschiedenen Forenthreads und Anleitungen habe ich mir die Infos zusammengesucht, mit denen ich nun Collabora problemlos betreiben kann.

Diese Anleitung funktioniert mit Debian 8. Bitte andere ggf. austesten.

Als erstes installiert bitte Docker mit den offiziellen Docker Repos und entfernt ggf. die bisherige Docker Version:

sudo apt-get purge docker-ce

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Danach muss bei Docker unter Debian der Storage Driver auf Device Mapper umgestellt werden. Dabei werden alle bestehenden laufenden Container gelöscht!

nano /etc/default/docker:

DOCKER_OPTS="--storage-driver=devicemapper"

Zusätzlich:

mkdir /etc/systemd/system/docker.service.d
nano /etc/systemd/system/docker.service.d/execWithDeviceMapper.conf

und folgenden Code einfügen:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd://

Bitte überprüft abschließend, ob die letzte Zeile stimmt mittels:

grep ExecStart /lib/systemd/system/docker.service

Nun bitte Docker neu laden und neu starten:

systemctl daemon-reload
service docker reload
service docker restart

Nun installieren wir Collabora. Wer mehreren Nextcloud Instanzen den Zugriff auf Collabora ermöglichen möchte, muss auch alle Domains angeben, von denen Collabora aufgerufen wird:

docker pull collabora/code
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.nextcloud\\.com\|cloud\\.speibox\\.de' --restart always --cap-add MKNOD collabora/code

Die nginx Konfiguration sieht folgendermaßen aus – bitte nimm ein eigene Subdomain:

server {
listen       443 ssl http2;
server_name  office.xy.de;
add_header X-XSS-Protection "1; mode=block"; #Wenn es nicht geht, notfalls deaktivieren

ssl_certificate /etc/letsencrypt/live/xy.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xy.de/privkey.pem;

# static files
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# download, presentation and image upload
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

Ein Reload von nginx genügt. Zum Abschluss noch die Collabora App in Nextcloud installieren und dort die Adresse https://office.xy.de eintragen. Der Port 443 muss nicht mit angegeben werden.

Nähere Infos zum Update von Collabora findest du auf der Seite von Nextcloud.

Nextcloud Hosting?
Wir betreiben eine performante, sichere Nextcloud, deren Daten alle in Deutschland liegen.
More from Benjamin Hartwich

Nützliche Links für´s Bloggen

An der Universität Passau habe ich einen WordPress Kurs konzipiert und durchgeführt....
Read More

2 Comments

  • Danke für die Anleitung! Ich brauchte für meine Nextcloud-Instanz mehrere Anläufe, aber letztendlich hat es nun doch endlich geklappt 🙂

    Kleiner Hinweis: Bei mir war es so, dass es erst funktionierte, als ich in der Browser-Konsole (Entwicklermodus o.ä.) diesen Fehler entdeckte:
    „Error parsing header X-XSS-Protection: 1; mode=block, 1; mode=block, 1; mode=block, 1; mode=block: expected semicolon at character position 14. The default protections will be applied.“

    Nachdem in /etc/nginx/sites-available/collabora.conf diese Zeile hinzugefügt wurde, klappte es dann endlich 🙂

    server {

    add_header X-XSS-Protection „1; mode=block“;

    }

Schreibe einen Kommentar

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