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. |