Collabora pour Nextcloud

Collabora est une suite bureautique en ligne basée sur LibreOffice avec édition collaborative, qui prend en charge tous les formats principaux de documents, feuilles de calcul et fichiers de présentation et fonctionne dans tous les navigateurs modernes.

Cette installation de Collabora se fait via Docker avec au préalable un Nextcloud et un NGINX installés en standalone. Lest’s Encrypt sera également utilisé ici.

Prérequis

Dans mon cas j’ai plusieurs domaines et sous-domaines :

  • monDomaine.fr : Le nom de domaine principal qui pointe vers un message de bienvenue dans /home/user/www/index.html.
  • cloud.mondomaine.fr : Le dous-domaine pour accéder à Nextcloud.
  • office.mondomaine.fr : Le sous-domaine pour accéder à Collabora via le container Docker.

Ces sous domaines sont tous opérationnel au niveau des DNS.

Notes : J’ai eu des problèmes avec Collabora, je soupçonne un problème de DNS avec une création de sous domaine trop récente lors de mes tests.

Collabora et Docker

La commande Docker ci dessous va télécharger et exécuter le container collabora/code sur le port 9980. Il faudra penser à ouvrir le port sur le firewall.

# docker run -t -d -p 9980:9980 -e "domain=cloud.monDomaine.com" --cap-add MKNOD collabora/code

OU

# docker run -t -d -p 9980:9980 -e "domain=cloud\\.monDomaine\\.fr" --cap-add MKNOD collabora/code

La valeur de domain correspond où votre serveur Nextcloud est installé.

Parfois il faudra relancer docker # systemctl restart docker.

**Note **: On dirait que le démarrage est “lent”, long à être pris en compte.
**Note **: Il semblerait que le navigateur puisse garder en cache l’ancien container.

Problèmes Collabora et firewall

Lorsque la configuration du firewall est relancé Collabora ne fonctionnera plus. Il faudra relancer Docker et le container et patienter car il semblerait que la prise en compte soit lente (cache navigateur ?).

Certificat Let’s Encrypt

Dans un premier temps faites un essaie :

# certbot certonly --dry-run --webroot -w /var/lib/letsencrypt/ -d monDomaine.fr -d www.monDomaine.fr -d cloud.monDomaine.fr -d collabora.monDomaine.fr

Si vous n’avez pas de message d’erreur vous pouvez lancer la vraie commande.

# certbot certonly --webroot -w /var/lib/letsencrypt/ -d monDomaine.fr -d www.monDomaine.fr -d cloud.monDomaine.fr -d collabora.monDomaine.fr

NGINX et Let’s Encrypt

On va utiliser NGINX en tant que reverse-proxy pour que la connexion SSL soit valide sur le navigateur.

Dans un même fichier de conf NGINX monDomaine.fr.conf où se situe à la fois la configuration de mondomain.fr et de cloud.monDomaine.fr (mais il est tout à fait possible de séparer les fichiers par sous-domaines) il faut ajouter pour office.monDomaine.fr :

server {
listen 80;
server_name office.monDomaine.fr;
return 301 https://$host$request_uri;
}

server {

listen 443 ssl http2;
server_name office.monDomaine.fr;

# Path to Certificate and path to key
ssl_certificate /etc/letsencrypt/live/monDomaine.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monDomaine.fr/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;
}

# main websocket
location ~ ^/lool/(.*)/ws$ {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}

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

# Admin Console websocket
location ^~ /lool/adminws {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}

}

Lier Collabora à Nextcloud

Activer l’API

Dans le panel d’administration se trouve l’API qui permet de faire le lien entre votre serveur Collabra et votre Nextcloud. Pour vous y rendre :

  • Cliquer sur votre pseudo en haut à droite
  • Cliquer sur + Applications
  • Cliquer sur Intégration dan le menu à gauche
  • Chercher Collabora
  • Télécharger/Activer Collabore

Configurer Collabora

Dans le menu Paramètres (cliquer sur votre pseudo en haut à droite > Paramètres), le menu Collabora en ligne devrait se trouver sur votre gauche.
Dans la partie URL (et port) du serveur Collabora Online mettre l’adresse de votre serveur Collabora, dans notre cas c’est office.monDomaine.fr :

Problèmes rencontrés

Solutions multiples pour problèmes multiples :

  • Relancer Docker # Systemctl restart Docker
  • Mettre des \ avant chaque . dans le nom de domaine de la commande Docker
  • Patienter si vous avez récemment modifier vos DNS

Documentation

https://nextcloud.com/collaboraonline/
https://www.collaboraoffice.com/code/docker/

> Partager <