Traduction et ajouts INSTALL
This commit is contained in:
parent
608514486e
commit
7924688b00
252
INSTALL.md
252
INSTALL.md
|
@ -1,15 +1,15 @@
|
|||
Pré-requis
|
||||
Introduction
|
||||
====================
|
||||
Documentation à destination d'un administrateur de service pad de Chalec.
|
||||
|
||||
Installer les paquets suivants :
|
||||
```
|
||||
# apt install screen
|
||||
```
|
||||
L'objectif est d'installer un service basé sur le logiciel etherpad-lite.
|
||||
Il sera placé en amont, un service nginx qui gèrera le traffic TLS et ses
|
||||
certificats.
|
||||
|
||||
Base de données (BDD)
|
||||
=========
|
||||
|
||||
Installer la base de données et démarrer le service :
|
||||
Installer la base de données postgreSQL et démarrer le service associé :
|
||||
```
|
||||
# apt install postgresql postgresql-client
|
||||
# systemctl enable --now postgresql
|
||||
|
@ -52,10 +52,16 @@ $ cd etherpad-lite
|
|||
Configuration Etherpad-lite
|
||||
=====================
|
||||
|
||||
Edition du settings.json
|
||||
Le fichier conf/etherpad-lite/settings.json contient toute la configuration requise.
|
||||
Pour une mise en place rapide, vous pouvez remplacer votre fichier settings.json par
|
||||
celui-ci. Il faudra néanmoins mettre en place les secrets décrits ci-dessous.
|
||||
|
||||
Dans le cas contraire, si vous souhaitez conserver votre fichier initial,
|
||||
veuillez suivre pas à pas cette section.
|
||||
|
||||
|
||||
BDD
|
||||
Secrets
|
||||
==================
|
||||
Commenter la BDD par défaut :
|
||||
```
|
||||
/*
|
||||
|
@ -65,7 +71,8 @@ Commenter la BDD par défaut :
|
|||
},
|
||||
*/
|
||||
```
|
||||
Renseigner les paramètres de la BDD postgres
|
||||
|
||||
Décommentez la section postgres et compléter avec les secrets
|
||||
|
||||
```
|
||||
"dbType" : "postgres",
|
||||
|
@ -79,17 +86,56 @@ Renseigner les paramètres de la BDD postgres
|
|||
},
|
||||
```
|
||||
|
||||
On indique à l'instance qu'elle tourne derrière un proxy et donc que la communication
|
||||
est sécurisée même si elle dialogue en HTTP, sans TLS :
|
||||
```
|
||||
"trustProxy": true,
|
||||
```
|
||||
|
||||
Configuration de l'accès admin web.
|
||||
Dans l'objet json "users", configurer l'admin :
|
||||
```
|
||||
"users": {
|
||||
"<admin>": {
|
||||
"password": "<password>",
|
||||
"is_admin": true
|
||||
},
|
||||
},
|
||||
```
|
||||
|
||||
|
||||
|
||||
Personnalisation de l'instance
|
||||
==================
|
||||
|
||||
Pour la réalisation des tests et la mise en place du pad, il est fortement conseillé
|
||||
de régler le paramètre "minify" à false. Dans le cas contraire, le temps de chargement
|
||||
du premier pad peut-être très long.
|
||||
```
|
||||
"minify": false,
|
||||
```
|
||||
|
||||
On personnalise le titre :
|
||||
```
|
||||
"title": "Pad Chalec",
|
||||
```
|
||||
|
||||
Placer la favicon dans le dossier parent et la référencer :
|
||||
```
|
||||
"favicon": "../pad.chalec.org.svg",
|
||||
```
|
||||
|
||||
Ajouter le skin Chalec qui est basé sur le skin par défaut
|
||||
```
|
||||
$ cp -r conf/etherpad-lite/skins/chalec src/static/skins
|
||||
```
|
||||
|
||||
et l'activer dans la configuration :
|
||||
```
|
||||
"skinName": "chalec",
|
||||
```
|
||||
|
||||
Personnaliser le texte par défaut de la page d'un nouveau pad :
|
||||
```
|
||||
"defaultPadText" : " <---- Tapez votre texte ici et libre à vous d'effacer cette \
|
||||
page d'informations.\n\nBienvenue sur pad.chalec.org, un service Chalec, basé sur le \
|
||||
|
@ -113,36 +159,76 @@ CHATONS par Libre en Communs (https://a-lec.org)\nmailto:contact+pad@chalec.org\
|
|||
:chalec@salons.a-lec.org?join",
|
||||
```
|
||||
|
||||
Configuration de la BDD :
|
||||
Démarrer le service Etherpad
|
||||
==================
|
||||
|
||||
Note @todo : cette partie est en travaux et le mécanisme décrit devrait évoluer vers un service
|
||||
systemd
|
||||
|
||||
|
||||
|
||||
|
||||
Then try to start etherpad
|
||||
|
||||
Tester le démarrer du service etherpad-lite :
|
||||
`$ src/bin/run.sh`
|
||||
|
||||
Then CTRL-C
|
||||
Vérifier que le démarrage se passe sans encombres. Puis intérrompre le processus avec un
|
||||
CTRL-C
|
||||
|
||||
Restore the run.sh script in home folder
|
||||
|
||||
Setup the cron
|
||||
Installer screen :
|
||||
```
|
||||
# apt install screen
|
||||
```
|
||||
|
||||
Copier le fichier suivant dans un fichier run.sh
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
export NODE_ENV=production
|
||||
/usr/bin/screen -dmS pad "/home/etherpad/etherpad-lite/src/bin/run.sh"
|
||||
```
|
||||
|
||||
On rend le fichier exécutable :
|
||||
`$ chmod +x run.sh`
|
||||
|
||||
Lancer le script :
|
||||
`$ ./run.sh`
|
||||
|
||||
Vérifier que le pad tourne dans le screen. La commande suivante devrait faire
|
||||
apparaitre dans la liste des écrans, le pad.
|
||||
`screen -ls`
|
||||
|
||||
Créer le script qui va vérifier s'il y a besoin de relancer le processus :
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
ret=`ps -edf | grep etherpad-lite | grep -v grep`
|
||||
status=$?
|
||||
|
||||
if [ "$status" -ne "0" ] ; then
|
||||
# echo "It seems like Etherpad-lite has been stopped or crashed.\nStarting etherpad-lite...";
|
||||
/home/etherpad/run.sh
|
||||
fi
|
||||
```
|
||||
|
||||
Le rendre exécutable :
|
||||
`chmod +x checkrestart.sh`
|
||||
|
||||
|
||||
Configuration du cron :
|
||||
`$ crontab -e`
|
||||
|
||||
and insert at the end of the file
|
||||
et insérer les lignes suivantes dans le fichier
|
||||
|
||||
`@reboot /home/etherpad/run.sh`
|
||||
```
|
||||
@reboot /home/etherpad/run.sh > /dev/null
|
||||
* * * * * /home/etherpad/checkrestart.sh
|
||||
```
|
||||
Enregistrer et quitter l'éditeur.
|
||||
|
||||
Restore "run.sh" script helper to run Etherpad in screen znd run
|
||||
|
||||
`~/run.sh`
|
||||
|
||||
Install the proxy
|
||||
Installation du proxy nginx
|
||||
==================
|
||||
Restore html content into /var/www
|
||||
|
||||
Install nginx
|
||||
Installer nginx et préparer le dossier de logs
|
||||
```
|
||||
# apt install nginx
|
||||
# mkdir /var/log/nginx/pad.chalec.org
|
||||
|
@ -150,72 +236,130 @@ Install nginx
|
|||
```
|
||||
|
||||
|
||||
Setup the config file from nginx/sites-available/etherpad in /etc/nginx/sites-available/etherpad
|
||||
Enregistrer le fichier de configuration de site nginx a cet emplacement /etc/nginx/sites-available/etherpad et faire un lien symbolique dans /etc/nginx/sites-available/etherpad
|
||||
|
||||
Link available to enable
|
||||
```
|
||||
# cd /etc/nginx/sites-enabled
|
||||
# ln -s ../sites-available .
|
||||
```
|
||||
|
||||
|
||||
Start nginx
|
||||
|
||||
Démarrer le service nginx
|
||||
`# systemctl enable --now nginx`
|
||||
|
||||
Open firewall
|
||||
|
||||
Ouvrir les ports du firewall
|
||||
`# ufw allow proto tcp port 80,443`
|
||||
|
||||
Check the service is reachable at
|
||||
Vérifier que le service répond en se rendant aux addresses suivantes :
|
||||
```
|
||||
http://pad.chalec.org
|
||||
https://pad.chalec.org
|
||||
```
|
||||
|
||||
INSTALL etherpad plugins
|
||||
========================
|
||||
Installation des Greffons etherpad
|
||||
==================
|
||||
|
||||
Plugin list to install at https://pad.chalec.org/admin
|
||||
- adminpads2
|
||||
- align
|
||||
- author_hover
|
||||
- delete_after_delay
|
||||
- delete_empty_pads
|
||||
- font_color
|
||||
- font_size
|
||||
- headings2
|
||||
- spellcheck
|
||||
- table_of_contents
|
||||
Pour complémenter l'installation de base d'etherpad-lite, il faut ajouter quelques
|
||||
greffons.
|
||||
|
||||
Installer les greffons suivants en se rendant sur la page d'administration
|
||||
https://pad.chalec.org/admin :
|
||||
- adminpads2 : lister les pads et par exemple de les supprimer
|
||||
- align : aligner à gauche / droite / centrer
|
||||
- author_hover : afficher l'auteur d'un texte en survolant avec la souris
|
||||
- delete_after_delay : supprimer automatiquement un pad après un certain délais d'inactivité
|
||||
- delete_empty_pads : supprimer automatiquement un pad vide
|
||||
- font_color : utiliser des couleurs dans le texte
|
||||
- font_size : utiliser des polices de différentes tailles
|
||||
- headings2 : titres et sous-titres
|
||||
- table_of_contents : table des matières
|
||||
|
||||
Note : il existe une méthode pour installer cela en ligne de commande. @todo
|
||||
|
||||
Pour supporter l'export au format ODT, il faut installer libreoffice :
|
||||
```
|
||||
# apt install libreoffice-nogui
|
||||
```
|
||||
|
||||
Puis configurer le chemin du binaire
|
||||
```
|
||||
"soffice": "/usr/bin/soffice",
|
||||
```
|
||||
|
||||
Ajouter le module de table des matières "table_of_contents" et configurer pour le
|
||||
désactiver par défaut :
|
||||
```
|
||||
"ep_toc": {
|
||||
"disable_by_default": true
|
||||
},
|
||||
|
||||
```
|
||||
|
||||
Ajouter le module de suppression automatique des pads inactif "delete_after_delay"
|
||||
et le configurer à J + six mois (temps en secondes).
|
||||
On indique qu'on fait la suppression au lancement et non de manière régulière en tâche de fond. En effet, il n'y a aucune urgence à faire ce genre de tâche.
|
||||
```
|
||||
"ep_delete_after_delay": {
|
||||
"delay": 15811200, // 6 * 30.5 * 24 * 3600
|
||||
"loop": false,
|
||||
"deleteAtStart": true,
|
||||
"text": ""
|
||||
},
|
||||
```
|
||||
|
||||
|
||||
Securité et limites
|
||||
|
||||
On paramètre "socketIo" avec un buffer HTTP suffisement grand pour notament importer
|
||||
des pads jusqu'à 20Mo :
|
||||
```
|
||||
"maxHttpBufferSize": 20000000
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
"importExportRateLimiting": {
|
||||
// duration of the rate limit window (milliseconds)
|
||||
"windowMs": 90000,
|
||||
|
||||
// maximum number of requests per IP to allow during the rate limit window
|
||||
"max": 10
|
||||
},
|
||||
```
|
||||
|
||||
|
||||
Chalec infos
|
||||
============
|
||||
|
||||
Intall Java
|
||||
Intaller Java
|
||||
`# apt install openjdk-jre-headless`
|
||||
|
||||
Ajouter l'utilisateur statoolinfos
|
||||
`# adduser statoolinfos`
|
||||
Add to admin group to read logs
|
||||
|
||||
Ajouter statoolinfos au group admin pour qu'il puisse lire les logs
|
||||
```
|
||||
# adduser statoolinfos admin
|
||||
# su - statoolinfos
|
||||
$ cd
|
||||
```
|
||||
|
||||
Download Statoolinfos jar at https://forge.devinsy.fr/devinsy/statoolinfos/releases
|
||||
Télécharger le binaire (jar) Statoolinfos à l'adresse suivante :
|
||||
https://forge.devinsy.fr/devinsy/statoolinfos/releases
|
||||
|
||||
Uncompress in /home/statool-<version>
|
||||
link versioned folder to generic one
|
||||
Décompresser dans /home/statool-<version>
|
||||
|
||||
Faire un lien généric pour avoir un nom de dossier invariant "statoolinfos":
|
||||
`$ ln -s statoolinfos-<verion> statoolinfos`
|
||||
|
||||
Restore statool config
|
||||
Restaurer la configuration statoolinfos
|
||||
- /var/www/html/.well-known/statoolinfos)
|
||||
|
||||
(/var/www/html/.well-known/statoolinfos already restored in etherpad install)
|
||||
Exécuter la commande suivante pour vérifier que tout se passe bien :
|
||||
` /home/statoolinfos/statoolinfos/statoolinfos.sh probe -full /hhome/statoolinfos/statoolinfos/conf/pad.chalec.org.conf `
|
||||
|
||||
/home/statoolinfos/statoolinfos/statoolinfos.sh probe -full /hhome/statoolinfos/statoolinfos/conf/pad.chalec.org.conf
|
||||
|
||||
On configure le cron quotidien
|
||||
`$ crontab -e`
|
||||
|
||||
`45 * * * * /home/statoolinfos/statoolinfos/statoolinfos.sh probe -previousday /home/statoolinfos/statoolinfos/conf/pad.chalec.org.conf >> /home/statoolinfos/statoolinfos.log`
|
||||
`45 5 * * * /home/statoolinfos/statoolinfos/statoolinfos.sh probe -previousday /home/statoolinfos/statoolinfos/conf/pad.chalec.org.conf >> /home/statoolinfos/statoolinfos.log`
|
||||
|
|
Loading…
Reference in New Issue