Projet

Général

Profil

LibreOfficeOnline » Historique » Version 4

Julien Aubé, 06/04/2019 17:26

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 3 Julien Aubé
Les services de Google (Drive, ...) sont souvent utilisé à leur place, mais si l'on veux s'en défaire, la solution de LibreOffice Online est une alternative viable.
7 1 Julien Aubé
8 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".
9 1 Julien Aubé
10 1 Julien Aubé
h2. Principe
11 1 Julien Aubé
12 1 Julien Aubé
Ce projet https://github.com/smehrbrodt/nextcloud-libreoffice-online a servi de modèle.
13 1 Julien Aubé
14 1 Julien Aubé
Les choix sont les suivants:
15 1 Julien Aubé
16 2 Julien Aubé
* VM sous Debian 9. 1.5Go de RAM, 8Go de disque minimum
17 4 Julien Aubé
* Instance nexcloud pour la gestion des utilisateurs & de la présentation
18 1 Julien Aubé
* Base de donnée sqlite
19 1 Julien Aubé
* Dans un 1er temps pas de HTTPS *(à revoir)*
20 3 Julien Aubé
* IPv6 activé
21 1 Julien Aubé
* Utilisation de docker & de docker-compose
22 1 Julien Aubé
23 1 Julien Aubé
h2. Étapes préparatoires
24 2 Julien Aubé
25 2 Julien Aubé
Les étapes suivantes se feront en tant que root:
26 2 Julien Aubé
27 3 Julien Aubé
* Après avoir créé la VM, mettre à jour:
28 1 Julien Aubé
29 2 Julien Aubé
<pre>
30 2 Julien Aubé
# apt-get update; apt-get dist-upgrade
31 2 Julien Aubé
</pre>
32 2 Julien Aubé
33 3 Julien Aubé
* Installer docker-ce et docker-compose:
34 2 Julien Aubé
35 2 Julien Aubé
<pre>
36 2 Julien Aubé
# apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
37 2 Julien Aubé
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
38 2 Julien Aubé
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
39 2 Julien Aubé
# apt-get update
40 2 Julien Aubé
# apt-get install docker-ce docker-ce-cli containerd.io docker-compose
41 2 Julien Aubé
</pre>
42 2 Julien Aubé
43 2 Julien Aubé
* Configurer docker pour activer l'IPv6
44 2 Julien Aubé
45 2 Julien Aubé
Dans @/etc/docker/daemon.json@ : (bien sur remplacer les xxxx par votre préfixe IPv6)
46 2 Julien Aubé
47 2 Julien Aubé
<pre><code class="json">
48 2 Julien Aubé
{
49 2 Julien Aubé
	"ipv6": true,
50 2 Julien Aubé
	"fixed-cidr-v6": "2a03:xxxx:xxxx:xxxx::1/64"
51 2 Julien Aubé
}
52 2 Julien Aubé
</code></pre>
53 2 Julien Aubé
54 2 Julien Aubé
Puis relancer le service docker :
55 2 Julien Aubé
56 2 Julien Aubé
<pre>
57 2 Julien Aubé
# systemctl reload docker
58 2 Julien Aubé
</pre>
59 2 Julien Aubé
60 1 Julien Aubé
* Ajouter l'utilisateur par défaut "debian" dans le groupe docker :
61 2 Julien Aubé
62 2 Julien Aubé
<pre>
63 2 Julien Aubé
# adduser debian docker
64 2 Julien Aubé
</pre>
65 2 Julien Aubé
66 3 Julien Aubé
h2. Instanciation des docks
67 2 Julien Aubé
68 2 Julien Aubé
Les étapes suivantes se feront en tant qu'utilisateur , ici @debian@. Il faut que cet utilisateur appartienne au groupe @docker@.
69 2 Julien Aubé
70 2 Julien Aubé
* Créer le ficher @.env@ suivant dans @/home/debian@ : 
71 2 Julien Aubé
72 2 Julien Aubé
<pre>
73 2 Julien Aubé
NEXTCLOUD_DOMAIN=<fqdn du domaine de la VM>
74 2 Julien Aubé
LO_ONLINE_USERNAME=admin
75 2 Julien Aubé
LO_ONLINE_PASSWORD=<mot de passe admin>
76 2 Julien Aubé
LO_ONLINE_EXTRA_PARAMS=--o:ssl.enable=false
77 2 Julien Aubé
</pre>
78 2 Julien Aubé
79 2 Julien Aubé
* Créer le ficher @docker-compose.yml@ suivant dans @/home/debian@ :
80 2 Julien Aubé
81 2 Julien Aubé
<pre><code class="yaml">
82 2 Julien Aubé
version: '2'
83 2 Julien Aubé
84 2 Julien Aubé
services:
85 2 Julien Aubé
  app:
86 2 Julien Aubé
    image: nextcloud
87 2 Julien Aubé
    ports:
88 2 Julien Aubé
      - 80:80
89 2 Julien Aubé
    volumes:
90 2 Julien Aubé
      - nextcloud:/var/www/html
91 2 Julien Aubé
    restart:
92 2 Julien Aubé
      always
93 2 Julien Aubé
  online:
94 2 Julien Aubé
    image: libreoffice/online:master
95 2 Julien Aubé
    environment:
96 2 Julien Aubé
      domain: ${NEXTCLOUD_DOMAIN}
97 2 Julien Aubé
      username: ${LO_ONLINE_USERNAME}
98 2 Julien Aubé
      password: ${LO_ONLINE_PASSWORD}
99 2 Julien Aubé
      extra_params: ${LO_ONLINE_EXTRA_PARAMS}
100 2 Julien Aubé
      DONT_GEN_SSL_CERT: 1
101 2 Julien Aubé
    volumes:
102 2 Julien Aubé
      - config-volume:/etc/loolwsd
103 2 Julien Aubé
    cap_add:
104 2 Julien Aubé
      - MKNOD
105 2 Julien Aubé
    ports:
106 2 Julien Aubé
      - "9980:9980"
107 2 Julien Aubé
    restart:
108 2 Julien Aubé
      unless-stopped
109 2 Julien Aubé
volumes:
110 1 Julien Aubé
  config-volume:
111 2 Julien Aubé
  nextcloud:
112 1 Julien Aubé
</code></pre>
113 2 Julien Aubé
114 2 Julien Aubé
* Lancer l'assemblage:
115 2 Julien Aubé
116 1 Julien Aubé
<pre>
117 3 Julien Aubé
~$ docker-compose up -b
118 2 Julien Aubé
</pre>
119 2 Julien Aubé
120 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@ .
121 2 Julien Aubé
122 1 Julien Aubé
Si tout se passe bien, l'instance nextcloud est disponible sur http://<fqdn> . 
123 1 Julien Aubé
Le 1er login requiert le choix du compte administrateur et de la base de donnée (ici sqlite).
124 1 Julien Aubé
125 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 : 
126 1 Julien Aubé
127 1 Julien Aubé
<pre>
128 1 Julien Aubé
Menu de droite -> Applications -> Bureautique et Texte -> Collabora Online .
129 1 Julien Aubé
Menu de droite -> Applications -> Fichers -> Group Folders .
130 1 Julien Aubé
</pre>
131 3 Julien Aubé
132 3 Julien Aubé
* Toujours en tant qu'administrateur, il faut associer le connecteur collabora avec l'instance LibreOfficeOnline :
133 3 Julien Aubé
134 3 Julien Aubé
<pre>
135 3 Julien Aubé
Menu de droite -> Paramètres -> Collabora en Ligne
136 3 Julien Aubé
</pre>
137 3 Julien Aubé
138 3 Julien Aubé
Puis dans le champ @URL (et port) su serveur Collabora Online@ , inscrire @http://<fqdn>:9980 , et appliquer.
139 3 Julien Aubé
140 4 Julien Aubé
Désormais il est possible de créer (ou importer) dans Nextcloud un fichier .odt, et l'ouvrir en ligne.
141 3 Julien Aubé
142 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.
143 3 Julien Aubé
144 4 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.