Collabora mit Nextcloud auf Ubuntu 16.04 TLS
Ich bin schon eine ganze Weile von OwnCloud weg. Um genau zu sagen, seit es die NextCloud Version 11 gibt.

Diese Installationsanleitung "Collabora Online Server mit Nextcloud auf Ubuntu 16.04 TLS, Installationsanleitung" ist veraltet. Eine Überarbeitete Anleitung finden Sie hier: "Nextcloud Installation inkl. Collabora Online".
Ich bin schon eine ganze Weile von OwnCloud weg. Um genau zu sagen, seit es die NextCloud Version 11 gibt. Warum ich gewechselt habe, liegt alleine daran, dass ich mein Office auf einen CloudSpeicher verlegen wollte. Ich habe daher mir das ganze angesehen und verschiedene Anleitungsseiten durch gelesen. Dabei bin ich immer auf eins gestoßen; Warum so umständlich, geschweige Warum nicht klar und deutlich erklärt. Ich habe vor allem immer gelesen, dass einige immer diese Fehlermeldung bekommen "Zugriff verboten". Daher habe ich mir mal die Aufgabe gemacht und meine einfache Anleitung hier zu präsentieren heute.
Dies ist eine Server Installationsanleitung/Tutorial über Collabora Online Server mit Nextcloud auf einen Ubuntu 16.04 TLS Server. Getestet wurde das ganze auf einem Mini-Server mit 1x CPU, 512 MB Arbeitsspeicher, 100 GB Traffic und einer 10 GB SSD-Festplatten-Kapazität.
Collabora Online ist ein self-hostable und LibreOffice-based open source online office suite. Zu Deutsch: Ein Office-Programm womit man Dokumente, Excel und Präsentationen erstellen und darstellen kann. Folgende Features sind enthalten:
- Basic Editierungen
- High fidelity, WYSIWYG-Editor umgebung
- Support für DOC, DOCX, PPT, PPTX, XLS, XLSX und ODF Dokument-Formate
- Import und ansehende Visionen, Publisher und 100+ Features und mehr
- Shared Editierungen von mehreren Personen gleichzeitig
Voraussetzungen
Es wird davon ausgegangen, dass Sie über eine Top-Level-Domain mit Sub-Domain Funktion besitzen. Wenn Sie die Nextcloud-Server auf eine Sub-Domain laufen lassen möchten, benötigen Sie mindestens zwei Sub-Domains. Bsp. cloud.domain.de und office.domain.de.
Sie sollten mindestens die Anforderungen erfüllen, wie oben bereits erwähnt habe. Mit weniger Leistung liegen keine Test-Ergebnisse vor. Der Collabora Online Server und der Nextcloud Server können auf demselben Server oder auf zwei verschiedenen Servern laufen. Dieses Tutorial zeigt, wie man Collabora Online Server auf Ubuntu 16.04 TLS mit einem Docker-Image von Collabora und Nextcloud Installiert.
Ich gehe bei meiner Installationsanleitung davon aus, dass Sie Apache2, MySQL und der zugehörigen Komponenten bereits Verfügung. Also legen wir mal los:
Step 1: Installation Docker auf Ubuntu 16.04 TLS
Wenn Sie die neueste Docker-Version wünschen, können Sie Docker aus dem Docker-APT-Repository installieren. Aus Gründen der Vereinfachung werden wir die Installation aus dem Standard-Ubuntu-Software-Repository installieren. Öffnen Sie daher eine Konsole, womit Sie sich als ROOT-User auf Ihren Server einloggen.
sudo apt update sudo apt install docker.io
Nach der Installation sollte der Docker-Daemon automatisch gestartet sein. Sie können den Status folgenden Befehl abfragen:
systemctl status docker
Wenn es nicht laufen sollte, dann starten Sie den Daemon mit diesem Befehl:
sudo systemctl start docker
und fügen Sie eine Autostart im Bootvorgang hinzu mit:
sudo systemctl enable docker
Standardmäßig verwendet Docker Speichertreiber auf Ubuntu. Um es mit dem Online-Office von Collabora zu arbeiten, müssen Sie auf den Geräteträger-Treibertreiber wechseln, indem Sie die folgenden Anweisungen befolgen.
Erstelle folgenden Ordner:
sudo mkdir /etc/systemd/system/docker.service.d
Erstelle folgende Datei in dem erstellten Ordner:
sudo nano /etc/systemd/system/docker.service.d/DeviceMapper.conf
Kopiere folgenden Text in die erstellte Datei:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd://
Speicher die Datei und schließe die Datei. Starte den Systemd und starte den Docker Daemon neu:
sudo systemctl daemon-reload sudo systemctl restart docker
Geben Sie nun den folgenden Befehl ein und Sie sehen, dass der verwendete Speichertreiber „devicemapper“ ist.
sudo docker info
Output, nachdem Befehl sollte sein:
Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 1 Server Version: 1.13.1 Storage Driver: devicemapper Pool Name: docker-253:1-515579-pool
Die Zeile: Storage Driver: devicemapper ist dabei Grün beschriftet.
Step 2: Installation und Erstellung Collabora Online Server mit Docker
Führen Sie den folgenden Befehl aus, um das neueste Collabora Online Development Edition-Image aus dem Docker-Hub zu ziehen.
sudo docker pull collabora/code
Führen Sie dann diesen Docker-Container aus. Ersetzen Sie cloud\\.domain\\.de mit Ihrer Nextcloud Server-Domain.
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.domain\\.de' --restart always --cap-add MKNOD collabora/code
Der Collabora Online Server wird auf dem Port 9980 von localhost (127.0.0.1) abhören, wie durch die Ausgabe dieses Befehls zu sehen sein sollte:
sudo netstat -lnpt
Step 3: Setup Reverse Proxy
Nextcloud Server benötigt ein TLS/SSL Zertifikat auf dem Collabora Online Server, also müssen wir einen virtuellen Host erstellen, dem virtuellen Host einen Domainnamen geben, TLS/SSL Zertifikat installieren und einen Reverse Proxy einrichten.
Zuerst sehen wir uns das ganze mit Apache2
Setup Apache2 Virtual Host
Führen Sie den folgenden Befehl aus, um eine virtuelle Host-Datei zu erstellen. Ersetzen Sie den Domain-Namen durch Ihre Domain-Namen für den Online-Server von Collabora. Vergessen Sie nicht, einen A-Datensatz für diesen Domain-Namen zu erstellen, sofern nötig ist im DNS-Einstellungen.
Ersetzen Sie office.domain.de mit Ihrer Sub-Domain, die Sie für Collabora Online Server verwenden möchten.
sudo nano /etc/apache2/sites-available/office.domain.de.conf
Kopiere folgenden Text in die erstellte Datei. Bitte darauf achten, dass der ServerName Ihre Sub-Domain benennen müssen:
ServerName office.domain.de
Speicher die Datei und schließe die Datei. Aktiviere diesen virtuellen Host mit folgendem Befehl:
sudo a2ensite office.domain.de.conf
Und nun starten wir den Apache2 Server einmal neu:
sudo systemctl restart apache2
HTTPS hilft uns, das eine MAN-IN-THE-MIDDLE-Angriff und Passwort-Sniffing zu verhindern. Wir können ein kostenloses TLS/SSL Zertifikat von Let‘s Encrypt CA empfehlen. Zuerst installieren wir den certbot Client. Der Client wird immer noch im Ubuntu-Repository benannt. Der folgende Befehl installiert das Client- und Apache-Plugin:
sudo apt install letsencrypt python-letsencrypt-apache
Geben Sie nun den folgenden Befehl ein, um ein kostenloses TLS/SSL Zertifikat zu erhalten. Ersetzen Sie "deine-email-adresse" und "office.domain.de" entsprechend mit Ihren Angaben.
sudo letsencrypt --apache --agree-tos --email deine-email-adresse -d office.domain.de
Sie werden jetzt aufgefordert, einfach (Easy) oder sicher (Secure) zu wählen. Es wird empfohlen, sicher (Secure) zu wählen, damit alle http-Anfragen auf https umgeleitet werden.
Sobald Sie ausgewählt haben auf Secure (Sicher), klicken Sie auf OK und dann wird ein kostenloses TLS/SSL Zertifikat erstellt und auf dem virtuellen Apache-Host Installiert.
Einrichten des Apache2 Reverse Proxy
Um den Verkehr mit Apache zu verarbeiten, führen Sie die folgenden Befehle aus, um jedes dieser Apache-Module zu aktivieren.
sudo a2enmod proxy proxy_wstunnel proxy_http ssl
Führen Sie dann den folgenden Befehl aus, um die neue, von Let‘s Encrypt (certbot) Client erstellte virtuelle Hostdatei zu bearbeiten. Dabei bitte wieder beachten, dass Sie "office.domain.de" entsprechend mit ihrer Sub-Domain benennen.
sudo nano /etc/apache2/sites-enabled/office.domain.de-le-ssl.conf
Fügen Sie folgenden Text in die Datei ein. Beachten Sie, dass Sie ab "# Encoded slashes [....]" bis zur "" nur einfügen. Und beachten Sie, dass bei Ihnen nicht "office.domain.de" steht, sondern bereits Ihre Sub-Domain. So sollte die Datei nun dann aussehen.
ServerName office.domain.de SSLCertificateFile /etc/letsencrypt/live/office.domain.de/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/office.domain.de/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf # Encoded slashes need to be allowed AllowEncodedSlashes NoDecode # Container uses a unique non-signed certificate SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of LibreOffice Online ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery # Main websocket ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool https://127.0.0.1:9980/lool ProxyPassReverse /lool https://127.0.0.1:9980/lool
Speicher die Datei und schließe die Datei. Und nun starten wir den Apache2 Server einmal neu:
sudo systemctl restart apache2
Final Step: Kommunikation Nextcloud zu Collabora Online Server
Um Ihren Nextcloud-Server mit dem Online-Server von Collabora zu verbinden, müssen Sie zuerst die APP Collabora Online installieren. Danach gehen Sie in die Administration von Nextcloud und klicken dann Links in Ihrem Menü auf „Collabora Online“. Dort tragen Sie dann Ihre Domain zum Collabora Server ein. In diesem Fall wäre es „https://office.domain.de“. Speichern Sie das ganze und da war es. Jetzt sollte Collabora Online Server in Ihrer Nextcloud Server Umgebung funktionieren.
Folgende Tipps und Hinweise habe ich noch für euch:
Wichtig: Nextcloud Server und Collabora Online Server benötigen jeweils eins TLS/SSL. In meiner Installationsanleitung habe ich erklärt, wie Sie ein TLS/SSL Zertifikat erstellen. Das Gleiche müssen Sie ggf. keine andere Möglichkeit haben für die Sub-Domain „cloud.domain.de“ ebenfalls ein TLS/SSL Zertifikat erstellen. Schaue dir daher nochmal die Schritte ab diesen Befehl an. Denken Sie auch daran, dass Sie ein VirtualHost, wie bereits oben erklärt, für die Sub-Domain dann anlegen müssen.
sudo letsencrypt --apache --agree-tos --email deine-email-adresse -d cloud.domain.de
Tipp: Erhalten Sie noch die Meldung: "Einige Dateien haben die Integritätsprüfung nicht bestanden" können Sie das ggf. mit folgendem Befehl lösen. Sie müssen dazu in der Konsole im Hauptverzeichnis Ihrer Nextcloud-Installation sein.
find . -name @eaDir -exec rm -rf {} \;
Tipp 2 zum Thema Docker (Containers): Wenn Sie die Docker Containers einmal löschen müssen. Können Sie das wie folgt tun. Stoppen Sie zunächst Docker mit folgendem Befehl:
docker stop $(docker ps -a -q)
und nun löschen Sie die Docker Containers:
docker rm $(docker ps -a -q)
und danach starten Sie Docker wieder:
docker start $(docker ps -a -q)
Tipp 3: Erscheint beim Aufruf der Nextcloud Server Umgebung das php-cUrl und/oder php-Zip fehlt. Dann installieren Sie dies einfach mit folgendem Befehl nach:
sudo apt install php-curl php-zip
Starten Sie dann den Apache2 Server neu mit folgendem Befehl:
sudo systemctl restart apache2
Tipp 4: Gegebenenfalls können in der Nextcloud Server Umgebung noch einige „Sicherheits- & Einrichtungswarnungen“ erscheinen wie PHP-Memory nicht eingerichtet, so könnt Ihr dies wie folgt tun. Ich habe mich dazu entschlossen, "APCu" zu nutzen. Das Installiert Ihr wie folgt:
sudo apt install php-apcu
und nicht vergessen, den Apache2 wieder neu starten:
sudo systemctl restart apache2
Ihr müsst nun in der Nextcloud Installation in der "/config/config.php" folgenden Eintag noch setzen:
'memcache.local' => '\\OC\\Memcache\\APCu',
Nun sollte Ihre Collabora Online Server mit Docker Containers und Nextcloud Server funktionieren. Wenn Ihr Fragen oder Probleme habt, so könnt Ihr unten gerne die Kommentarfunktion nutzen.
Viel Spaß mit Nextcloud und Collabora!
Weblinks: