Cette page décrit l’installation d’un serveur Collabora Online community Edition pas à pas sur un VPS
Collabora Online est une suite bureautique en ligne performante, basée sur LibreOffice qui permet d’éditer et manipuler les principaux formats de documents et surtout le travail en mode collaboratif.
Elle est intégrée dans plusieurs outils Web (OwnCloud, NextCloud, Moodle) sous forme de plugin. Le site officiel est ici .
Ces plugins sont la partie “client” de l’applicatif qui nécessite de se connecter à un serveur. Par exemple, sur l’installation NextCloud Web Hosting chez Gandi il vous faut un serveur auquel connecter le plugin.
Il existe bien un plugin CODE BuiltIn, mais qui est déconseillé pour la production par les éditeurs, et ne peut être installé sur l’Hébergement Web (environnement trop restreint).
L’acronyme CODE pour Collabora Online Developpement Edition, en version community est le serveur qui permet aux applications « clientes », comme le plugin NextCloud, de se connecter et d’accéder aux fonctionnalités.
Nous allons voir comment l’installer rapidement sur un Gandi VPS et ainsi pouvoir y connecter votre plugin NextCloud, ou tout autre “client” nécessitant que vous disposiez d’une partie “serveur”.
Il vous faudra disposer d’un serveur Linux avec les droits “root”.
Vous pourriez opter pour un serveur GandiCloud VPS, qui, je dois dire, serait un excellent choix autant en termes de performances que de fiabilité et coût :)
Vous les trouverez ici :VPS GandiCloud
Pour une petite installation, un serveur de taille basique VR-1 suffit : si nécessaire, vous pourrez toujours augmenter sa taille (et donc ses ressources) par la suite.
Dans cette doc, nous installerons CODE derrière un reverse proxy Nginx qui accueillera les connexions -notamment HTTPS-, mais il est tout à fait possible d’utiliser Apache ou encore de l’installer en stand-alone (sans serveur web en frontal)
Connectez vous en SSH sur le serveur et mettez à jour les paquets systèmes et assurez-vous que cURL est installé
apt update && sudo apt upgrade -y && sudo apt install curl -y
C’est le serveur Web qui va jouer le rôle de reverse proxy : il va accueillir les requêtes entrantes, et les relayer au serveur CODE. C’est donc lui qui va gérer la connexion SSL.
En prérequis, il faut que la machine possède un nom définit au niveau système et au niveau DNS. Ici, nous utiliserons le nom “code.example.com”, à remplacer avec votre propre nom, bien entendu.
Définissez le nom au niveau du système :
Remplacez la ligne existante, par « code.example.com » dans le fichier /etc/hostname
echo code.example.net > /etc/hostname
Puis, Exécutez la commande suivante :
hostname code.example.com
Ici, vous avez trois possibilités : utiliser un certificat auto-signé, un certificat Gandi ou bien un certiticat Let’s Encrypt.
Envisageons ici un certificat standard Let’s Encrypt de 3 mois :
1 installez Certbot : https://certbot.eff.org/
apt install certbot
2 lancez la génération d’un certificat (en utilisant le serveur Nginx) :
certbot certonly -d code.example.com
spécifiez l’option 2 pour le “challenge” 2: Place files in webroot directory (webroot)
et précisez le dossier racine nginx par défaut : /var/www/html
On suppose que le backend sera joignable sur le port CODE par défaut : 9980
Créez le fichier suivant : /etc/nginx/sites-available/code.example.com.conf
Et ajoutez le contenu :
server {
listen 443 ssl;
server_name code.example.com;
ssl_certificate /etc/letsencrypt/live/code.azedsq.store/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/code.azedsq.store/privkey.pem;
# static files
location ^~ /browser {
proxy_pass http://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass http://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass http://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
proxy_pass http://127.0.0.1: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 ~ ^/(c|l)ool {
proxy_pass http://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /cool/adminws {
proxy_pass http://127.0.0.1:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
}
cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/code.example.com.conf /etc/nginx/sites-enabledcode.example.com.conf
Puis, vous pouvez tester la validité de la syntaxe :
nginx -t
Et relancer le service :
systemctl restart nginx
Comment installer CODE sur un VPS GandiCloud¶
Cette page décrit l’installation d’un serveur Collabora Online community Edition pas à pas sur un VPS
Qu’est-ce que CODE ?
Conditions préalables
Configurations initiales
Installation de Nginx
Certificat SSL :
Configuration du vhost :
Activez le “vhost” :
Installation de CODE Community Edition
Ajout du dépôt :
Installation des paquets :
Configuration de CODE :
Configurez votre NextCloud :
Qu’est-ce que CODE ?¶
Collabora Online est une suite bureautique en ligne performante, basée sur LibreOffice qui permet d’éditer et manipuler les principaux formats de documents et surtout le travail en mode collaboratif.
Elle est intégrée dans plusieurs outils Web (OwnCloud, NextCloud, Moodle) sous forme de plugin. Le site officiel est ici .
Ces plugins sont la partie “client” de l’applicatif qui nécessite de se connecter à un serveur. Par exemple, sur l’installation NextCloud Web Hosting chez Gandi il vous faut un serveur auquel connecter le plugin.
Il existe bien un plugin CODE BuiltIn, mais qui est déconseillé pour la production par les éditeurs, et ne peut être installé sur l’Hébergement Web (environnement trop restreint).
L’acronyme CODE pour Collabora Online Developpement Edition, en version community est le serveur qui permet aux applications « clientes », comme le plugin NextCloud, de se connecter et d’accéder aux fonctionnalités.
Nous allons voir comment l’installer rapidement sur un Gandi VPS et ainsi pouvoir y connecter votre plugin NextCloud, ou tout autre “client” nécessitant que vous disposiez d’une partie “serveur”.
Conditions préalables¶
Il vous faudra disposer d’un serveur Linux avec les droits “root”. Vous pourriez opter pour un serveur GandiCloud VPS, qui, je dois dire, serait un excellent choix autant en termes de performances que de fiabilité et coût :)
Vous les trouverez ici :VPS GandiCloud
Pour une petite installation, un serveur de taille basique VR-1 suffit : si nécessaire, vous pourrez toujours augmenter sa taille (et donc ses ressources) par la suite.
Dans cette doc, nous installerons CODE derrière un reverse proxy Nginx qui accueillera les connexions -notamment HTTPS-, mais il est tout à fait possible d’utiliser Apache ou encore de l’installer en stand-alone (sans serveur web en frontal)
Configurations initiales¶
Connectez vous en SSH sur le serveur et mettez à jour les paquets systèmes et assurez-vous que cURL est installé
apt update && sudo apt upgrade -y && sudo apt install curl -y
Installation de Nginx¶
C’est le serveur Web qui va jouer le rôle de reverse proxy : il va accueillir les requêtes entrantes, et les relayer au serveur CODE. C’est donc lui qui va gérer la connexion SSL.
En prérequis, il faut que la machine possède un nom définit au niveau système et au niveau DNS. Ici, nous utiliserons le nom “code.example.com”, à remplacer avec votre propre nom, bien entendu.
Définissez le nom au niveau du système :
echo code.example.net > /etc/hostname
Puis, Exécutez la commande suivante :
hostname code.example.com
Certificat SSL :¶
Ici, vous avez trois possibilités : utiliser un certificat auto-signé, un certificat Gandi ou bien un certiticat Let’s Encrypt.
Envisageons ici un certificat standard Let’s Encrypt de 3 mois :
1 installez Certbot : https://certbot.eff.org/
apt install certbot
2 lancez la génération d’un certificat (en utilisant le serveur Nginx) :
certbot certonly -d code.example.com
spécifiez l’option 2 pour le “challenge”
2: Place files in webroot directory (webroot)
et précisez le dossier racine nginx par défaut : /var/www/htmlConfiguration du vhost :¶
On suppose que le backend sera joignable sur le port CODE par défaut : 9980
Créez le fichier suivant : /etc/nginx/sites-available/code.example.com.conf
Et ajoutez le contenu :
Activez le “vhost” :¶
cd /etc/nginx/sites-enabled ln -s /etc/nginx/sites-available/code.example.com.conf /etc/nginx/sites-enabledcode.example.com.conf
Puis, vous pouvez tester la validité de la syntaxe :
nginx -t
Et relancer le service :
systemctl restart nginx
Installation de CODE Community Edition¶
Vous trouverez la doc officielle ici -pour trouver les repos correspondants à la distribution- : https://www.collaboraoffice.com/code/linux-packages/
Avertissement
Dans l’exemple suivant, le lien du dépôt est valable pour Debian11. Pour toute autre distribution, voyez la liste sur la page citée au-dessus
Ajout du dépôt :¶
Pour Debian 11 :
-> ajoutez le fichier de dépôt ; éditez le fichier :
vi /etc/apt/`sources.list.d/collaboraonline.sources
Et ajoutez ce contenu :
Installation des paquets :¶
Ensuite, installez les paquets coolwsd, code-brand :
apt update && apt install coolwsd code-brand
Configuration de CODE :¶
-> Activez le logging :
Créez le fichier /var/log/coolwsd.log et affectez lui les propriétés root:cool ainsi que les droits 770
touch /var/log/coolwsd.log chown root:cool /var/log/coolwsd.log chmod 770 /var/log/coolwsd.log
-> Désactivez la prise en charge de SSL :
Dans notre exemple, la connexion SSL est gérée par Nginx; il faut donc la désactiver ici sinon le démarrage du service échoue car ne trouve pas les fichiers de certificat.
coolconfig set ssl.enable false
-> spécifiez aussi que le reverse proxy gère le SSL
coolconfig set ssl.termination true
-> ensuite, déclarez le “client” nextcloud qui se connectera :
coolconfig set storage.woopi.host mon.nextcloud.com
Avertissement
Ici mon.nextcloud.com est à remplacer par l’URL de votre installation NextCloud, qui doit être joignable via HTTPS
-> faites en sorte que le serveur CODE ne soit pas directement accessible :
-> définissez un compte admin :
coolconfig set-admin-password
Et redémarrez le service :
systemctl restart coolwsd
Vous pouvez vous connecter à cette interface avec l’URL :
https://code.example.com/browser/dist/admin/admin.html
Configurez votre NextCloud :¶
Depuis le compte “administrateur”, allez dans le menu “applications”
ensuite, dans la liste des catégories d’applications, allez dans la catégorie “bureautique”
puis installez l’application « Nextcloud Office »
ensuite, allez, via le menu, dans “paramètre d’administration”, puis sur « éditez les préférences » “Nextcloud Office” dans la partie “administration” (pas Personnel)
cochez “utiliser votre propre serveur” et saisissez son URL (cochez la désactivation de la vérification du certificat SSL si vous utilisez un certificat autosigné sur votre serveur)
Enregistrez la configuration et si la connexion est fonctionnelle, que le serveur apparait validé avec une jolie coche verte, c’est tout bon.
Vous pouvez alors aller créer un nouveau document dans votre dossier utilisateur : vous devriez voir les nouveaux types de documents disponibles, document texte, feuille de calcul, présentation et diagramme.