Collabora Online, LibreOffice dans Nextcloud (Nextcloud >12 | Débian >9)

Explication d'une installation d'une instance Nextcloud couplé à Collabora online afin d'éditer des documents Word ou Excel.

Il y a aussi une partie Let's Encrypt pour les certificat.

Source : https://www.dadall.info/blog/index.php?article597/installer-collaboraonline-avec-nextcloud

Source : https://nextcloud.com/collaboraonline/

https://www.woinux.fr/installer-collabora-online-code-pour-nextcloud-12-sous-debian-8-828

Prérequis:

  • Un nom de domaine.
  • Avoir une instance Nextcloud sur son serveur avec un certificat SSL valide.
  • Activer ces modules apache:
a2enmod proxy
a2enmod proxy_wstunnel
a2enmod proxy_http
  • Un slip propre.

Installation de Docker:

On commence par les dépendances qui vont bien :

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

On enchaîne sur la clé GPG du dépôt :

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

On ajoute le dépôt dan le sources.list :

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

Pour finir, on installe notre nouveau jouet et c'est parti !

apt-get update && apt-get install docker-ce

Mise en place du conteneur de Collabora:

On le télécharge :

docker pull collabora/code

On le lance :

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=votre\.instancenextcloud\.com' --restart always --cap-add MKNOD collabora/code

Laissez bien les "\" comme c'est par contre entrez l'adresse de votre instance Nextcloud.

Configuration du Vhost apache:

<VirtualHost *:80>
        ServerName collabora.mydomain.tld

        # Redirection vers le HTTPS
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =collabora.mydomain.tld
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

Activation du Vhost:

a2ensite collabora.conf

A partir de la il reste à appliquer le certificat ssl valide avec let's encrypt.

Pour rappel:

Installation de Let'sEncrypt:

cd /usr/local/sbin

wget https://dl.eff.org/certbot-auto 

chmod a+x /usr/local/sbin/certbot-auto

Création du certificat pour Collabora

certbot-auto --apache -d collabora.example.com

Repondez "2" à la question.

Le Vhost https:

<VirtualHost *:443>
        ServerName collabora.mydomain.tld:443

        <Location />
                Require all granted
        </Location>

        ErrorLog /var/log/apache2/collabora-error.log
        CustomLog /var/log/apache2/collabora-access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/collabora.mydomain.tld
/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/collabora.mydomain.tld
/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLProtocol             all -SSLv2 -SSLv3
        SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-$
        SSLHonorCipherOrder     on

        # 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

</VirtualHost>

Attention de bien remplacer les trois occurrences de « collabora.mydomain.tld » par le sous-domaine que vous aurez créé pour Collabora Online (et non celui de votre instance Nextcloud) !

Activer Collabora:

Maintenant, pour terminer, allez donc activer l'application en la configurant avec le sous-domaine de votre instance : https://votre.instance.com. Pensez bien à cliquer sur "Appliquer" si vous ne voulez pas risquer de devenir chèvre...

Tous ces efforts vous permettront de cliquer paisiblement sur ces 3 nouvelles options :

Cet article à été largement inspiré de:

https://www.woinux.fr/installer-collabora-online-code-pour-nextcloud-12-sous-debian-8-828

et de

https://nextcloud.com/collaboraonline/

Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec une *

Quelle est le cinquième caractère du mot 3dkuaz ? :