Collabora Online

Updated 6 Mai 2020

Collabora Online

Collabora Online est une suite bureautique collaborative basée sur LibreOffice, qui prend en charge tous les principaux formats de documents, tableurs et présentations et peut être lancée dans n'importe quel navigateur actuellement disponible.

Pour pouvoir utiliser Collabora Online, vous aurez besoin d'un conteneur Docker pour éditer vos documents ainsi que de Nextcloud.

Installer et configurer Nextcloud

Installez et configurez Nextcloud en suivant les instructions du manuel.

Configurer un serveur Collabora Online

Docker sera utilisé pour faire fonctionner la partie serveur. Cet outil permet d'automatiser le déploiement et la gestion d'applications dans un environnement virtuel au niveau du système d'exploitation.

Installer Docker et le paquet de gestion des cgroups :

emerge -a app-emulation/docker

Exécutez cgconfig pour créer un CGroup pour systemd :

/etc/init.d/cgconfig start

Faire fonctionner Docker dans votre conteneur LXC

Si vous utilisez Docker dans un conteneur LXC avec Nextcloud sur un système hôte, chargez tous les modules du noyau nécessaires et ajoutez-les au démarrage automatique :

modprobe -a br_netfilter ip_tables nf_conntrack_netlink nf_nat nf_nat_ipv4 overlay xt_conntrack

echo -e "br_netfilter\nip_tables\nnf_conntrack_netlink\nnf_nat\nnf_nat_ipv4\noverlay\nxt_conntrack" > /etc/modules-load.d/docker.conf

Démarrez Docker et ajoutez-le au démarrage automatique :

/etc/init.d/docker start

rc-update add docker

Vous devez obtenir et démarrer le conteneur Collabra Online pour Nextcloud. Attention à la double barre oblique inversée.

Note

Nextcloud et Collabora Online doivent utiliser le même protocole (HTTP ou HTTPS).

Créer et utiliser un conteneur HTTP

Si vous voulez utiliser le protocole HTTP, c'est simple : démarrez le conteneur en spécifiant le domaine sur Nextcloud.

docker run --name office -t -d -p 9980:9980 -e 'DONT_GEN_SSL_CERT=true' -e 'extra_params=-o:ssl.enable=false' -e 'domain=cloud\\.example\\.org' --restart always --cap-add MKNOD collabora/code

Une fois cette opération terminée, un conteneur nommé office~ sera créé et démarrera. Le conteneur démarrera automatiquement au démarrage du système, quand le démon Docker sera lancé.

Créer et utiliser un conteneur HTTPS

Si vous voulez utiliser le protocole HTTPS, démarrez le conteneur en exécutant la commande suivante, en spécifiant le certificat, la clé privée et le domaine sur Nextcloud :

FULLCHAIN="/etc/nginx/ssl/cloud.example.org/fullchain.pem"

PRIVKEY="/etc/nginx/ssl/cloud.example.org/privkey.pem"

DOMAINNAME="cloud.example.org"

docker run --name office -t -d -p 9980:9980 -v "${FULLCHAIN}":/etc/loolwsd/ca-chain.cert.pem -v "${PRIVKEY}":/etc/loolwsd/key.pem -v "${FULLCHAIN}":/etc/loolwsd/cert.pem -e 'DONT_GEN_SSL_CERT=true' -e "domain=${DOMAINNAME//./\\.}" --restart always --cap-add MKNOD collabora/code

Une fois cette opération terminée, un conteneur nommé office~ sera créé et démarrera : Le conteneur démarrera automatiquement au démarrage du système, quand le démon Docker sera lancé.

Vérifier le statut du conteneur

Pour afficher le statut de votre conteneur, exécutez :

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
6783472582fe        collabora/code      "/bin/sh -c 'bash st…"   2 minutes ago       Up 2 minutes        127.0.0.1:9980->9980/tcp   office

Pour afficher le journal du serveur, exécutez :

docker logs office
...
Sec-WebSocket-Accept: GAcwqP21iVOY2yKefQ64c0yVN5M=

| ./net/WebSocketHandler.hpp:576
wsd-00019-00020 2019-01-16 13:22:29.629713 [ prisoner_poll ] TRC  #15: Wrote outgoing data 129 bytes.| ./net/Socket.hpp:1053
wsd-00019-00020 2019-01-16 13:22:29.629742 [ prisoner_poll ] INF  ChildProcess ctor [25].| wsd/DocumentBroker.hpp:72
wsd-00019-00020 2019-01-16 13:22:29.629776 [ prisoner_poll ] DBG  Removing socket #15 (of 2) from prisoner_poll| ./net/Socket.hpp:577
wsd-00019-00020 2019-01-16 13:22:29.629800 [ prisoner_poll ] DBG  #15 Thread affinity set to 0 (was 0x7fe823822700).| ./net/Socket.hpp:279
wsd-00019-00020 2019-01-16 13:22:29.629823 [ prisoner_poll ] TRC  Calling addNewChild in disposition's move thing to add to NewChildren| wsd/LOOLWSD.cpp:1879
wsd-00019-00020 2019-01-16 13:22:29.629847 [ prisoner_poll ] TRC  Adding one child to NewChildren| wsd/LOOLWSD.cpp:467
wsd-00019-00020 2019-01-16 13:22:29.629869 [ prisoner_poll ] INF  Have 1 spare child after adding [25].| wsd/LOOLWSD.cpp:471
wsd-00019-00020 2019-01-16 13:22:29.629894 [ prisoner_poll ] TRC  Notifying NewChildrenCV| wsd/LOOLWSD.cpp:474
wsd-00019-00019 2019-01-16 13:22:29.629938 [ loolwsd ] TRC  Have 1 new children.| wsd/LOOLWSD.cpp:3172
wsd-00019-00019 2019-01-16 13:22:29.629979 [ loolwsd ] INF  WSD initialization complete: setting log-level to [warning] as configured.| wsd/LOOLWSD.cpp:3179

Configurer Collabora Online comme une application Nextcloud

Ouvrez le menu Applications, puis recherchez Collabora Online dans la catégorie Bureau et Texte et installez-le.

Installation de Collabora Online dans Nextcloud

Maintenant, accédez aux paramètres de Collabora Online et indiquez le nom du serveur : http://cloud.example.org:9980 ou https://cloud.example.org:9980, selon le protocole que vous utilisez.

Configuration de Collabora Online dans Nextcloud

Mettre à jour Collabora Online

Pour mettre à jour Collabora, il faudra d'abord actualiser l'image Docker, puis créer un nouveau conteneur.

Mettez à jour l'image Collabora :

docker pull collabora/code

Arrêtez et supprimez le container office~ :

docker stop office; docker rm office

Créez et lancez un nouveau conteneur de Collabora, soit pour HTTP soit pour HTTPS, comme décrit ci-dessus.