Collabora Online
Updated 6 Mai 2020
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
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 :
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 :
... 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.
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.
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.