Nextcloud Office mit Collabora als Docker Container installieren
Einführung
Nextcloud Office basiert auf Collabora und kann verwendet werden, um Office-Dokumente direkt in der Nextcloud-Weboberfläche anzuzeigen und zu bearbeiten.
In diesem Tutorial wird beschrieben, wie man einen eigenen Collabora Online-Server installiert, der mit einer Nextcloud-Instanz verwendet werden kann. Der Collabora Online Server wird mit Let's Encrypt konfiguriert, um den Zugriff über eine gültige SSL-Verbindung zu ermöglichen.
Voraussetzungen
Sie benötigen die folgenden Dinge:
einen Server mit Ubuntu 22.04 (andere Ubuntu's sollten aber auch funktionieren)
eine eigene Domain wie beispiel.com
eine Subdomain Ihrer Domain, die auf Ihren geplanten Collabora-Server zeigt (z.B. mit office.example.com)
eine Nextcloud (für dieses Tutorial hat sie die Domain nextcloud.example.com)
Schritt 1 - Docker Repository konfigurieren
Docker wird benötigt, um den Collabora-Docker-Container auszuführen. Sie müssen das Docker-Repository konfigurieren, um Docker installieren zu können:
apt update
apt install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
„deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable“ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Schritt 2 - Docker installieren
Installieren Sie nun Docker selbst:
apt update
apt install docker-ce docker-ce-cli containerd.io
Schritt 3 - Collabora Container starten
Wenn Docker installiert ist, können Sie nun den Collabora Docker Container starten. Setzen Sie die Domain-Variable auf die Adresse Ihrer Nextcloud-Instanz (aufgrund des Shell-Escapings müssen Sie . durch \\. ersetzen):
docker run -t -d -p 127.0.0.1:9980:9980 -e „domain=nextcloud\.example\.com“ --restart always collabora/code
Der neueste Container wird gezogen und gestartet. Sie können mit docker ps überprüfen, ob er ausgeführt wird.
Optional können Sie auch Docker Compose verwenden. Eine allgemeine Anleitung dazu finden Sie hier.
Schritt 4 - Nginx installieren
Um den Collabora-Container über das Internet verfügbar zu machen, wird ein SSL-Reverse-Proxy verwendet. In diesem Tutorial wird Nginx dafür verwendet.
Installieren Sie Nginx über die Kommandozeile:
apt install nginx
Schritt 5 - Let's Encrypt Certbot über Snap installieren
Für die Netzwerkverbindung wird ein gültiges SSL-Zertifikat benötigt. Um dieses zu generieren, wird der Certbot von Let's Encrypt verwendet. Installieren Sie den Certbot über Snap:
apt install snapd
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
Schritt 6 - SSL-Zertifikate erstellen
Fordern Sie nun die SSL-Zertifikate über Certbot und die Domain Ihres Servers an:
certbot certonly --nginx -d office.example.com
[...]
Zertifikat erfolgreich erhalten.
Das Zertifikat wird gespeichert unter: /etc/letsencrypt/live/office.example.com/fullchain.pem
Der Schlüssel ist gespeichert unter: /etc/letsencrypt/live/office.example.com/privkey.pem
[...]
Hinweis: Speichern Sie die Pfade zur SSL-Zertifizierungs- und Schlüsseldatei so, wie Sie sie im nächsten Schritt benötigen.
Schritt 7 - Konfigurieren Sie Nginx als Reverse Proxy
Fügen Sie die folgende Konfiguration mit einem Texteditor Ihrer Wahl (z. B. nano oder vim) in die Datei /etc/nginx/sites-enabled/collabora ein und ändern Sie die Zeile server_name office.example.com und die beiden SSL-Zertifikatskonfigurationszeilen am Anfang mit Ihrer eigenen Domain:
server {
listen 443 ssl;
# Ändern Sie diese drei Zeilen mit Ihrer eigenen Domain:
server_name office.example.com;
ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;
# statische Dateien
Standort ^~ /browser {
proxy_pass 127.0.0.1;
proxy_set_header Host $http_host;
}
# WOPI-Ermittlungs-URL
Standort ^~ /hosting/discovery {
proxy_pass 127.0.0.1;
proxy_set_header Host $http_host;
}
# Fähigkeiten
location ^~ /hosting/capabilities {
proxy_pass 127.0.0.1;
proxy_set_header Host $http_host;
}
# Haupt-Websocket
Standort ~ ^/cool/(.*)/ws$ {
proxy_pass 127.0.0.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Verbindung „Upgrade“;
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# Download, Präsentation und Bild-Upload
Standort ~ ^/(c|l)ool {
proxy_pass 127.0.0.1;
proxy_set_header Host $http_host;
}
# Admin-Konsole Websocket
Standort ^~ /cool/adminws {
proxy_pass 127.0.0.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Verbindung „Upgrade“;
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
}
Starten Sie nun Nginx neu, um die neue Konfiguration mit dem folgenden Befehl zu laden:
systemctl restart nginx
Schritt 8 - Aktivieren Sie Nextcloud Office in Nextcloud
Der Collabora-Server selbst ist nun vollständig konfiguriert und einsatzbereit. Nun müssen Sie Nextcloud Office in Ihrer Nextcloud konfigurieren.
Aktivieren Sie in Ihrer Nextcloud die App Nextcloud Office. Gehen Sie dazu auf die Weboberfläche Ihrer Nextcloud und öffnen Sie den App-Store (oben rechts -> Apps). Suchen Sie nach Nextcloud Office und aktivieren Sie nur die App Nextcloud Office.
Schritt 9 - Nextcloud Office App konfigurieren
Nach der Installation der App müssen Sie diese noch konfigurieren und ihr mitteilen, wo sich Ihr Collabora Online Server befindet. Gehen Sie dazu in die Einstellungen Ihrer Nextcloud (oben rechts -> Verwaltungseinstellungen) und wählen Sie im linken Menü (unter Verwaltung) Office aus. Wählen Sie dort Eigenen Server verwenden und geben Sie die Adresse Ihres Servers ein (z.B. office.example.com):
Klicken Sie auf die Schaltfläche Speichern, um die Konfiguration zu speichern. Wenn alles korrekt funktioniert, dann sollte der Einstellungsdialog eine funktionierende Verbindung zu Ihrem Collabora-Server anzeigen.
Zusätzlich sollten Sie die Liste Zulassen für WOPI-Anfragen so konfigurieren, dass nur der Collabora-Server Dokumente abrufen darf. Diese Einstellung befindet sich unter den erweiterten Einstellungen und Sie müssen die IPv4- und IPv6-Adresse des Collabora-Servers hinzufügen (z. B. 1.2.3.4,2a01:4f8:aaaa:bbbb:cccc::1).
Schritt 10 - SSL-Zertifikat erneuern
Let's Encrypt-Zertifikate sind nur für einige Monate gültig und müssen dann erneuert werden. Certbot verfügt bereits über einen systemd-Timer für diesen Vorgang, den Sie nur noch aktivieren müssen:
systemctl enable --now snap.certbot.renew.timer
Danach werden Ihre SSL-Zertifikate bei Bedarf automatisch erneuert.
Schritt 11 - Whitelist Ihrer Nextcloud-Instanz für den Zugriff auf Collabora
Derzeit kann jeder auf office.example.com zugreifen. Dieser Abschnitt zielt darauf ab, den Zugriff auf nextcloud.example.com zu beschränken.
Folgen Sie dieser Collabora Online-Anleitung, um die erforderlichen Pakete zu installieren.
Öffnen Sie die Datei /etc/coolwsd/coolwsd.xml und ändern Sie die alias_groups-Konfiguration unter dem Abschnitt storage.
<alias_groups desc=„default mode is ‚first‘ it allows only the first host when groups are not defined. set mode to ‚groups‘ and define group to allow multiple host and its aliases“ mode=„groups“>
<!-- Wenn Sie mehrere wopi-Hosts verwenden müssen, ändern Sie bitte den Modus auf „groups“ und
fügen Sie die Hosts unten hinzu. Wenn ein Host unter mehreren IP-Adressen oder Namen erreichbar ist
oder Namen erreichbar ist, fügen Sie diese als Aliasnamen hinzu. -->
<Gruppe>
<host desc=„Hostname zu erlauben oder zu verweigern.“ allow=„true“>https://nextcloud.example.com</host>
</group>
Fazit
Sie haben nun einen eigenen Collabora-Server konfiguriert und Ihre Nextcloud so eingerichtet, dass sie diesen nutzt. Jedes Office-Dokument sollte nun in der Weboberfläche bearbeitbar geöffnet werden.
Lizenz: MIT