Projet

Général

Profil

LibreOfficeOnline » Historique » Version 12

Julien Aubé, 29/03/2020 23:00

1 12 Julien Aubé
h1. LibreOffice Online
2 1 Julien Aubé
3 1 Julien Aubé
h2. Objectifs
4 1 Julien Aubé
5 3 Julien Aubé
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.
6 1 Julien Aubé
7 7 Julien Aubé
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.
8 7 Julien Aubé
9 4 Julien Aubé
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".
10 1 Julien Aubé
11 1 Julien Aubé
h2. Principe
12 1 Julien Aubé
13 1 Julien Aubé
Ce projet https://github.com/smehrbrodt/nextcloud-libreoffice-online a servi de modèle.
14 1 Julien Aubé
15 1 Julien Aubé
Les choix sont les suivants:
16 1 Julien Aubé
17 1 Julien Aubé
* VM sous Debian 9. 1.5Go de RAM, 8Go de disque minimum
18 9 Julien Aubé
* Nexcloud pour la gestion des utilisateurs & la présentation des fichiers
19 1 Julien Aubé
* Base de donnée sqlite
20 7 Julien Aubé
* HTTPS à travers LetsEncrypt (non détaillé ici - utilisation de nginx)
21 3 Julien Aubé
* IPv6 activé
22 1 Julien Aubé
* Utilisation de docker & de docker-compose
23 1 Julien Aubé
24 9 Julien Aubé
h2. Installation de Docker
25 2 Julien Aubé
26 2 Julien Aubé
Les étapes suivantes se feront en tant que root:
27 2 Julien Aubé
28 8 Julien Aubé
* Après avoir créé la VM sous Debian (Buster), mettre à jour:
29 1 Julien Aubé
30 2 Julien Aubé
<pre>
31 2 Julien Aubé
# apt-get update; apt-get dist-upgrade
32 2 Julien Aubé
</pre>
33 2 Julien Aubé
34 3 Julien Aubé
* Installer docker-ce et docker-compose:
35 2 Julien Aubé
36 2 Julien Aubé
<pre>
37 2 Julien Aubé
# apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
38 2 Julien Aubé
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
39 2 Julien Aubé
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
40 2 Julien Aubé
# apt-get update
41 2 Julien Aubé
# apt-get install docker-ce docker-ce-cli containerd.io docker-compose
42 2 Julien Aubé
</pre>
43 2 Julien Aubé
44 2 Julien Aubé
* Configurer docker pour activer l'IPv6
45 2 Julien Aubé
46 2 Julien Aubé
Dans @/etc/docker/daemon.json@ : (bien sur remplacer les xxxx par votre préfixe IPv6)
47 2 Julien Aubé
48 2 Julien Aubé
<pre><code class="json">
49 2 Julien Aubé
{
50 2 Julien Aubé
	"ipv6": true,
51 2 Julien Aubé
	"fixed-cidr-v6": "2a03:xxxx:xxxx:xxxx::1/64"
52 2 Julien Aubé
}
53 2 Julien Aubé
</code></pre>
54 2 Julien Aubé
55 2 Julien Aubé
Puis relancer le service docker :
56 2 Julien Aubé
57 2 Julien Aubé
<pre>
58 2 Julien Aubé
# systemctl reload docker
59 2 Julien Aubé
</pre>
60 2 Julien Aubé
61 1 Julien Aubé
* Ajouter l'utilisateur par défaut "debian" dans le groupe docker :
62 2 Julien Aubé
63 2 Julien Aubé
<pre>
64 2 Julien Aubé
# adduser debian docker
65 2 Julien Aubé
</pre>
66 1 Julien Aubé
67 9 Julien Aubé
* Installer git :
68 1 Julien Aubé
69 9 Julien Aubé
<pre>
70 9 Julien Aubé
# apt-get install git
71 9 Julien Aubé
</pre>
72 9 Julien Aubé
73 9 Julien Aubé
74 9 Julien Aubé
h2. Installation de nginx
75 9 Julien Aubé
76 9 Julien Aubé
<pre>
77 9 Julien Aubé
# apt-get install nginx-light
78 9 Julien Aubé
# apt-get install certbot python3-certbot-nginx
79 9 Julien Aubé
</pre>
80 9 Julien Aubé
81 9 Julien Aubé
La mise en place du certificat LetsEncrypt est nécessaire à ce moment, mais ne fait pas partie de la procédure.
82 11 Julien Aubé
@TODO : Insérer un tuto certbot + nginx@
83 9 Julien Aubé
84 9 Julien Aubé
h2. Installation de Nextcloud
85 9 Julien Aubé
86 10 Julien Aubé
Le choix a été fait d'installer nextcloud manuellement:
87 11 Julien Aubé
@TODO: Trouver ici un tuto correct pour nextcloud sous debian en HTTPS@
88 9 Julien Aubé
89 9 Julien Aubé
90 10 Julien Aubé
h2. Instanciation du dock "LibreOffice Online"
91 9 Julien Aubé
92 1 Julien Aubé
Les étapes suivantes se feront en tant qu'utilisateur , ici @debian@. Il faut que cet utilisateur appartienne au groupe @docker@.
93 2 Julien Aubé
94 9 Julien Aubé
<pre>
95 9 Julien Aubé
# git clone https://github.com/smehrbrodt/nextcloud-libreoffice-online.git
96 9 Julien Aubé
</pre>
97 2 Julien Aubé
98 9 Julien Aubé
* Créer le ficher @.env@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ : 
99 9 Julien Aubé
100 1 Julien Aubé
<pre>
101 11 Julien Aubé
NEXTCLOUD_DOMAIN=FQDN du domaine de la VM
102 2 Julien Aubé
LO_ONLINE_USERNAME=admin
103 11 Julien Aubé
LO_ONLINE_PASSWORD=mot de passe admin
104 2 Julien Aubé
</pre>
105 2 Julien Aubé
106 9 Julien Aubé
* Vérifier que le ficher @docker-compose.yml@ suivant dans @/home/debian/nextcloud-libreoffice-online/libreoffice-online@ :
107 2 Julien Aubé
108 2 Julien Aubé
<pre><code class="yaml">
109 2 Julien Aubé
version: '2'
110 2 Julien Aubé
111 2 Julien Aubé
services:
112 2 Julien Aubé
  online:
113 2 Julien Aubé
    image: libreoffice/online:master
114 1 Julien Aubé
    environment:
115 2 Julien Aubé
      domain: ${NEXTCLOUD_DOMAIN}
116 2 Julien Aubé
      username: ${LO_ONLINE_USERNAME}
117 2 Julien Aubé
      password: ${LO_ONLINE_PASSWORD}
118 2 Julien Aubé
      extra_params: ${LO_ONLINE_EXTRA_PARAMS}
119 2 Julien Aubé
      DONT_GEN_SSL_CERT: 1
120 2 Julien Aubé
    volumes:
121 2 Julien Aubé
      - config-volume:/etc/loolwsd
122 2 Julien Aubé
    cap_add:
123 2 Julien Aubé
      - MKNOD
124 2 Julien Aubé
    ports:
125 2 Julien Aubé
      - "9980:9980"
126 2 Julien Aubé
    restart:
127 2 Julien Aubé
      unless-stopped
128 9 Julien Aubé
129 1 Julien Aubé
volumes:
130 2 Julien Aubé
  config-volume:
131 1 Julien Aubé
</code></pre>
132 2 Julien Aubé
133 2 Julien Aubé
* Lancer l'assemblage:
134 2 Julien Aubé
135 1 Julien Aubé
<pre>
136 3 Julien Aubé
~$ docker-compose up -b
137 2 Julien Aubé
</pre>
138 2 Julien Aubé
139 10 Julien Aubé
Le lancement initial est assez long. Il est possible de vérifier le déroulement des opérations avec @docker-compose logs -f@ .
140 2 Julien Aubé
141 10 Julien Aubé
Si tout se passe bien, l'instance nextcloud est disponible sur https://FQDN . 
142 10 Julien Aubé
Le 1er login requiert le choix du compte administrateur et de la base de donnée.
143 1 Julien Aubé
144 10 Julien Aubé
* Une fois loggué en tant qu'administrateur (et près une phase d'administration basique : passage en Français, ...) , il faut installer le connecteur collabora et les Group Folders : 
145 1 Julien Aubé
146 1 Julien Aubé
<pre>
147 1 Julien Aubé
Menu de droite -> Applications -> Bureautique et Texte -> Collabora Online .
148 1 Julien Aubé
Menu de droite -> Applications -> Fichers -> Group Folders .
149 1 Julien Aubé
</pre>
150 3 Julien Aubé
151 10 Julien Aubé
* Toujours en tant qu'administrateur, il faut associer le connecteur collabora avec l'instance LibreOffice Online :
152 3 Julien Aubé
153 3 Julien Aubé
<pre>
154 3 Julien Aubé
Menu de droite -> Paramètres -> Collabora en Ligne
155 3 Julien Aubé
</pre>
156 3 Julien Aubé
157 5 Julien Aubé
Puis dans le champ @URL (et port) su serveur Collabora Online@ , inscrire @http://FQDN:9980 , et appliquer.
158 3 Julien Aubé
159 4 Julien Aubé
Désormais il est possible de créer (ou importer) dans Nextcloud un fichier .odt, et l'ouvrir en ligne.
160 3 Julien Aubé
161 4 Julien Aubé
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.
162 3 Julien Aubé
163 10 Julien Aubé
L'URL http://FQDN:9980/loleaflet/dist/admin/admin.html permet d'obtenir quelques statistiques sur l'instance LibreOffice Online, néanmoins il est souhaitable de bloquer l'accès à ce port depuis internet à l'aide d'une règle de firewall.