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.

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.
Hinweis zu dieser Anleitung
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.

AnkerFolgende 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: