Projet

Général

Profil

LibreOfficeOnline » Historique » Version 8

Julien Aubé, 29/03/2020 12:27

1 1 Julien Aubé
h1. LibreOfficeOnline
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 7 Julien Aubé
* Instance 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 1 Julien Aubé
h2. Étapes préparatoires
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 2 Julien Aubé
67 3 Julien Aubé
h2. Instanciation des docks
68 2 Julien Aubé
69 2 Julien Aubé
Les étapes suivantes se feront en tant qu'utilisateur , ici @debian@. Il faut que cet utilisateur appartienne au groupe @docker@.
70 2 Julien Aubé
71 2 Julien Aubé
* Créer le ficher @.env@ suivant dans @/home/debian@ : 
72 2 Julien Aubé
73 2 Julien Aubé
<pre>
74 5 Julien Aubé
NEXTCLOUD_DOMAIN=FQDN du domaine de la VM
75 2 Julien Aubé
LO_ONLINE_USERNAME=admin
76 5 Julien Aubé
LO_ONLINE_PASSWORD=mot de passe admin
77 2 Julien Aubé
LO_ONLINE_EXTRA_PARAMS=--o:ssl.enable=false
78 2 Julien Aubé
</pre>
79 2 Julien Aubé
80 2 Julien Aubé
* Créer le ficher @docker-compose.yml@ suivant dans @/home/debian@ :
81 2 Julien Aubé
82 2 Julien Aubé
<pre><code class="yaml">
83 2 Julien Aubé
version: '2'
84 2 Julien Aubé
85 2 Julien Aubé
services:
86 2 Julien Aubé
  app:
87 2 Julien Aubé
    image: nextcloud
88 2 Julien Aubé
    ports:
89 2 Julien Aubé
      - 80:80
90 2 Julien Aubé
    volumes:
91 2 Julien Aubé
      - nextcloud:/var/www/html
92 2 Julien Aubé
    restart:
93 2 Julien Aubé
      always
94 2 Julien Aubé
  online:
95 2 Julien Aubé
    image: libreoffice/online:master
96 2 Julien Aubé
    environment:
97 2 Julien Aubé
      domain: ${NEXTCLOUD_DOMAIN}
98 2 Julien Aubé
      username: ${LO_ONLINE_USERNAME}
99 2 Julien Aubé
      password: ${LO_ONLINE_PASSWORD}
100 2 Julien Aubé
      extra_params: ${LO_ONLINE_EXTRA_PARAMS}
101 2 Julien Aubé
      DONT_GEN_SSL_CERT: 1
102 2 Julien Aubé
    volumes:
103 2 Julien Aubé
      - config-volume:/etc/loolwsd
104 2 Julien Aubé
    cap_add:
105 2 Julien Aubé
      - MKNOD
106 2 Julien Aubé
    ports:
107 2 Julien Aubé
      - "9980:9980"
108 2 Julien Aubé
    restart:
109 2 Julien Aubé
      unless-stopped
110 2 Julien Aubé
volumes:
111 1 Julien Aubé
  config-volume:
112 2 Julien Aubé
  nextcloud:
113 1 Julien Aubé
</code></pre>
114 2 Julien Aubé
115 2 Julien Aubé
* Lancer l'assemblage:
116 2 Julien Aubé
117 1 Julien Aubé
<pre>
118 3 Julien Aubé
~$ docker-compose up -b
119 2 Julien Aubé
</pre>
120 2 Julien Aubé
121 3 Julien Aubé
Le lancement initial est assez long. Il est possible de vérifier le déroulement des opérations avec @docker-compose logs@ .
122 2 Julien Aubé
123 6 Julien Aubé
Si tout se passe bien, l'instance nextcloud est disponible sur http://FQDN . 
124 1 Julien Aubé
Le 1er login requiert le choix du compte administrateur et de la base de donnée (ici sqlite).
125 1 Julien Aubé
126 3 Julien Aubé
* 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 : 
127 1 Julien Aubé
128 1 Julien Aubé
<pre>
129 1 Julien Aubé
Menu de droite -> Applications -> Bureautique et Texte -> Collabora Online .
130 1 Julien Aubé
Menu de droite -> Applications -> Fichers -> Group Folders .
131 1 Julien Aubé
</pre>
132 3 Julien Aubé
133 3 Julien Aubé
* Toujours en tant qu'administrateur, il faut associer le connecteur collabora avec l'instance LibreOfficeOnline :
134 3 Julien Aubé
135 3 Julien Aubé
<pre>
136 3 Julien Aubé
Menu de droite -> Paramètres -> Collabora en Ligne
137 3 Julien Aubé
</pre>
138 3 Julien Aubé
139 5 Julien Aubé
Puis dans le champ @URL (et port) su serveur Collabora Online@ , inscrire @http://FQDN:9980 , et appliquer.
140 3 Julien Aubé
141 4 Julien Aubé
Désormais il est possible de créer (ou importer) dans Nextcloud un fichier .odt, et l'ouvrir en ligne.
142 3 Julien Aubé
143 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.
144 3 Julien Aubé
145 5 Julien Aubé
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.