LibreOfficeOnline » Historique » Version 9
Version 8 (Julien Aubé, 29/03/2020 12:27) → Version 9/12 (Julien Aubé, 29/03/2020 16:48)
h1. LibreOfficeOnline
h2. Objectifs
Si Etherpad et Ethercalc peuvent suffire à des besoins ponctuels, ils se montrent parfois insuffisant pour des groupes de travail plus important et manquent de fonctionnalités.
Les services de Google (Drive, ...) sont souvent utilisé à leur place, mais si l'on veux s'en défaire, la solution LibreOffice Online est une alternative viable.
Ce document explique comment installer sur une VM une instance de NextCloud et LibreOffice Online à destination d'un petit groupe - dans mon cas un groupement d'achat local bio appelé "poivron rouge".
h2. Principe
Ce projet https://github.com/smehrbrodt/nextcloud-libreoffice-online a servi de modèle.
Les choix sont les suivants:
* VM sous Debian 9. 1.5Go de RAM, 8Go de disque minimum
* Nexcloud Instance nexcloud pour la gestion des utilisateurs & la présentation des fichiers
* Base de donnée sqlite
* HTTPS à travers LetsEncrypt (non détaillé ici - utilisation de nginx)
* IPv6 activé
* Utilisation de docker & de docker-compose
h2. Installation de Docker Étapes préparatoires
Les étapes suivantes se feront en tant que root:
* Après avoir créé la VM sous Debian (Buster), mettre à jour:
<pre>
# apt-get update; apt-get dist-upgrade
</pre>
* Installer docker-ce et docker-compose:
<pre>
# apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# apt-get update
# apt-get install docker-ce docker-ce-cli containerd.io docker-compose
</pre>
* Configurer docker pour activer l'IPv6
Dans @/etc/docker/daemon.json@ : (bien sur remplacer les xxxx par votre préfixe IPv6)
<pre><code class="json">
{
"ipv6": true,
"fixed-cidr-v6": "2a03:xxxx:xxxx:xxxx::1/64"
}
</code></pre>
Puis relancer le service docker :
<pre>
# systemctl reload docker
</pre>
* Ajouter l'utilisateur par défaut "debian" dans le groupe docker :
<pre>
# adduser debian docker
</pre>
* Installer git :
<pre>
# apt-get install git
</pre>
h2. Installation de nginx
<pre>
# apt-get install nginx-light
# apt-get install certbot python3-certbot-nginx
</pre>
La mise en place du certificat LetsEncrypt est nécessaire à ce moment, mais ne fait pas partie de la procédure.
(TODO : Insérer un tuto certbot + nginx)
h2. Installation de Nextcloud
Le choix a été fait d'installer nextcloud manuellement en suivant la procédure ici :
(TODO: Trouver ici un tuto correct)
h2. Instanciation du dock "LibreOfficeOnline" des docks
Les étapes suivantes se feront en tant qu'utilisateur , ici @debian@. Il faut que cet utilisateur appartienne au groupe @docker@.
<pre>
# git clone https://github.com/smehrbrodt/nextcloud-libreoffice-online.git
</pre>
* Créer le ficher @.env@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ @/home/debian@ :
<pre>
NEXTCLOUD_DOMAIN=FQDN du domaine de la VM
LO_ONLINE_USERNAME=admin
LO_ONLINE_PASSWORD=mot de passe admin
LO_ONLINE_EXTRA_PARAMS=--o:ssl.enable=false
</pre>
* Vérifier que Créer le ficher @docker-compose.yml@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ @/home/debian@ :
<pre><code class="yaml">
version: '2'
services:
app:
image: nextcloud
ports:
- 80:80
volumes:
- nextcloud:/var/www/html
restart:
always
online:
image: libreoffice/online:master
environment:
domain: ${NEXTCLOUD_DOMAIN}
username: ${LO_ONLINE_USERNAME}
password: ${LO_ONLINE_PASSWORD}
extra_params: ${LO_ONLINE_EXTRA_PARAMS}
DONT_GEN_SSL_CERT: 1
volumes:
- config-volume:/etc/loolwsd
cap_add:
- MKNOD
ports:
- "9980:9980"
restart:
unless-stopped
volumes:
config-volume:
nextcloud:
</code></pre>
* Lancer l'assemblage:
<pre>
~$ docker-compose up -b
</pre>
Le lancement initial est assez long. Il est possible de vérifier le déroulement des opérations avec @docker-compose logs@ .
Si tout se passe bien, l'instance nextcloud est disponible sur http://FQDN .
Le 1er login requiert le choix du compte administrateur et de la base de donnée (ici sqlite).
* Une fois loggué en administrateur (et près une phase d'administration basique : passage en Français, ...) , il faut installer le connecteur collabora et les Group Folders :
<pre>
Menu de droite -> Applications -> Bureautique et Texte -> Collabora Online .
Menu de droite -> Applications -> Fichers -> Group Folders .
</pre>
* Toujours en tant qu'administrateur, il faut associer le connecteur collabora avec l'instance LibreOfficeOnline :
<pre>
Menu de droite -> Paramètres -> Collabora en Ligne
</pre>
Puis dans le champ @URL (et port) su serveur Collabora Online@ , inscrire @http://FQDN:9980 , et appliquer.
Désormais il est possible de créer (ou importer) dans Nextcloud un fichier .odt, et l'ouvrir en ligne.
La gestion des groupes & des utilisateurs se fait sur l'instance Nextcloud, l'utilisation du plugin Group Folder permet à des utilisateurs de modifier le même document y compris simultanément.
L'URL http://FQDN:9980/loleaflet/dist/admin/admin.html permet d'obtenir quelques statistiques sur l'instance LibreOfficeOnline, néanmoins il est souhaitable de bloquer l'accès à ce port depuis internet à l'aide d'une règle de firewall.
h2. Objectifs
Si Etherpad et Ethercalc peuvent suffire à des besoins ponctuels, ils se montrent parfois insuffisant pour des groupes de travail plus important et manquent de fonctionnalités.
Les services de Google (Drive, ...) sont souvent utilisé à leur place, mais si l'on veux s'en défaire, la solution LibreOffice Online est une alternative viable.
Ce document explique comment installer sur une VM une instance de NextCloud et LibreOffice Online à destination d'un petit groupe - dans mon cas un groupement d'achat local bio appelé "poivron rouge".
h2. Principe
Ce projet https://github.com/smehrbrodt/nextcloud-libreoffice-online a servi de modèle.
Les choix sont les suivants:
* VM sous Debian 9. 1.5Go de RAM, 8Go de disque minimum
* Nexcloud Instance nexcloud pour la gestion des utilisateurs & la présentation des fichiers
* Base de donnée sqlite
* HTTPS à travers LetsEncrypt (non détaillé ici - utilisation de nginx)
* IPv6 activé
* Utilisation de docker & de docker-compose
h2. Installation de Docker Étapes préparatoires
Les étapes suivantes se feront en tant que root:
* Après avoir créé la VM sous Debian (Buster), mettre à jour:
<pre>
# apt-get update; apt-get dist-upgrade
</pre>
* Installer docker-ce et docker-compose:
<pre>
# apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# apt-get update
# apt-get install docker-ce docker-ce-cli containerd.io docker-compose
</pre>
* Configurer docker pour activer l'IPv6
Dans @/etc/docker/daemon.json@ : (bien sur remplacer les xxxx par votre préfixe IPv6)
<pre><code class="json">
{
"ipv6": true,
"fixed-cidr-v6": "2a03:xxxx:xxxx:xxxx::1/64"
}
</code></pre>
Puis relancer le service docker :
<pre>
# systemctl reload docker
</pre>
* Ajouter l'utilisateur par défaut "debian" dans le groupe docker :
<pre>
# adduser debian docker
</pre>
* Installer git :
<pre>
# apt-get install git
</pre>
h2. Installation de nginx
<pre>
# apt-get install nginx-light
# apt-get install certbot python3-certbot-nginx
</pre>
La mise en place du certificat LetsEncrypt est nécessaire à ce moment, mais ne fait pas partie de la procédure.
(TODO : Insérer un tuto certbot + nginx)
h2. Installation de Nextcloud
Le choix a été fait d'installer nextcloud manuellement en suivant la procédure ici :
(TODO: Trouver ici un tuto correct)
h2. Instanciation du dock "LibreOfficeOnline" des docks
Les étapes suivantes se feront en tant qu'utilisateur , ici @debian@. Il faut que cet utilisateur appartienne au groupe @docker@.
<pre>
# git clone https://github.com/smehrbrodt/nextcloud-libreoffice-online.git
</pre>
* Créer le ficher @.env@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ @/home/debian@ :
<pre>
NEXTCLOUD_DOMAIN=FQDN du domaine de la VM
LO_ONLINE_USERNAME=admin
LO_ONLINE_PASSWORD=mot de passe admin
LO_ONLINE_EXTRA_PARAMS=--o:ssl.enable=false
</pre>
* Vérifier que Créer le ficher @docker-compose.yml@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ @/home/debian@ :
<pre><code class="yaml">
version: '2'
services:
app:
image: nextcloud
ports:
- 80:80
volumes:
- nextcloud:/var/www/html
restart:
always
online:
image: libreoffice/online:master
environment:
domain: ${NEXTCLOUD_DOMAIN}
username: ${LO_ONLINE_USERNAME}
password: ${LO_ONLINE_PASSWORD}
extra_params: ${LO_ONLINE_EXTRA_PARAMS}
DONT_GEN_SSL_CERT: 1
volumes:
- config-volume:/etc/loolwsd
cap_add:
- MKNOD
ports:
- "9980:9980"
restart:
unless-stopped
volumes:
config-volume:
nextcloud:
</code></pre>
* Lancer l'assemblage:
<pre>
~$ docker-compose up -b
</pre>
Le lancement initial est assez long. Il est possible de vérifier le déroulement des opérations avec @docker-compose logs@ .
Si tout se passe bien, l'instance nextcloud est disponible sur http://FQDN .
Le 1er login requiert le choix du compte administrateur et de la base de donnée (ici sqlite).
* Une fois loggué en administrateur (et près une phase d'administration basique : passage en Français, ...) , il faut installer le connecteur collabora et les Group Folders :
<pre>
Menu de droite -> Applications -> Bureautique et Texte -> Collabora Online .
Menu de droite -> Applications -> Fichers -> Group Folders .
</pre>
* Toujours en tant qu'administrateur, il faut associer le connecteur collabora avec l'instance LibreOfficeOnline :
<pre>
Menu de droite -> Paramètres -> Collabora en Ligne
</pre>
Puis dans le champ @URL (et port) su serveur Collabora Online@ , inscrire @http://FQDN:9980 , et appliquer.
Désormais il est possible de créer (ou importer) dans Nextcloud un fichier .odt, et l'ouvrir en ligne.
La gestion des groupes & des utilisateurs se fait sur l'instance Nextcloud, l'utilisation du plugin Group Folder permet à des utilisateurs de modifier le même document y compris simultanément.
L'URL http://FQDN:9980/loleaflet/dist/admin/admin.html permet d'obtenir quelques statistiques sur l'instance LibreOfficeOnline, néanmoins il est souhaitable de bloquer l'accès à ce port depuis internet à l'aide d'une règle de firewall.