MAJ avec CPM :-)

This commit is contained in:
Bastien Lacoste 2022-05-26 22:46:55 +02:00 committed by croax
parent f1625bc660
commit 519b223617
1 changed files with 86 additions and 81 deletions

View File

@ -1,54 +1,51 @@
Introduction # Introduction
====================
Documentation à destination d'un administrateur de service pad de Chalec. Documentation à destination d'un administrateur de service pad de Chalec.
L'objectif est d'installer un service basé sur le logiciel etherpad-lite. 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 Il sera placé en amont, un service nginx qui gèrera le traffic TLS et ses
certificats. certificats.
Base de données (BDD) # Base de données (BDD)
=========
Installer la base de données postgreSQL et démarrer le service associé :
Installer la base de données PostgreSQL et démarrer le service associé :
``` ```
# apt install postgresql postgresql-client # apt install postgresql postgresql-client
# systemctl enable --now postgresql # systemctl enable --now postgresql
``` ```
On vérifie que l'on peut se connecter en IP avec vérification du mot de passe par la BDD. Editer le fichier suivant : On vérifie que l'on peut se connecter en IP avec vérification du mot de passe par la BDD. Éditer le fichier `/etc/postgresql/13/main/pg_hba.conf` :
/etc/postgresql/xx/main/pg_hba.conf
``` ```
host all all 127.0.0.0/24 md5 host all all 127.0.0.0/24 md5
``` ```
On crée l'utilisateur "pad" avec le mot de passe <MOTDEPASSE>, et la base "pad" associée à l'utilisateur : Créer l'utilisateur et la base :
``` ```
# su - postgres # su - postgres
$ createuser pad $ createuser pad
$ createdb pad -O pad $ createdb pad -O pad
$ psql <BDD> $ psql pad
ALTER USER <UTILISATEUR> WITH PASSWORD '<MOTDEPASSE>' ; ALTER USER pad WITH PASSWORD '<MOTDEPASSE>' ;
ALTER ROLE; ALTER ROLE;
\q \q
``` ```
Installer Etherpad-lite # Installer Etherpad
=====================
Ajouter l'utilisateur etherpad : Créer l'utilisateur d'Etherpad :
``` ```
# adduser etherpad # adduser etherpad
``` ```
On se connecte avec l'utilisateur etherpad Connecter avec l'utilisateur etherpad :
``` ```
# su - etherpad # su - etherpad
``` ```
Suivre les recommandations de la documentation officielle d'etherpad-lite pour installer sur Debian. Suivre les recommandations de la documentation officielle d'Etherpad pour installer sur Debian :
``` ```
$ cd /home/etherpad $ cd /home/etherpad
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
@ -56,28 +53,23 @@ $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ git clone --branch master https://github.com/ether/etherpad-lite.git $ git clone --branch master https://github.com/ether/etherpad-lite.git
``` ```
Récupérer les ressoures du pad Chalec # Récupérer les ressoures du pad Chalec
=======================
Cloner le dépot Pad de chalec avec l'utilisateur etherpad
Cloner le dépot Pad de Chalec avec l'utilisateur etherpad :
``` ```
$ git clone https://git.a-lec.org/a-lec/commissions/chalec/pad $ git clone https://git.a-lec.org/a-lec/commissions/chalec/pad
``` ```
# Configuration Etherpad
Configuration Etherpad-lite Le fichier `/home/etherpad/pad.git/conf/etherpad-lite/settings.json` contient toute la configuration requise.
=====================
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 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. 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, Dans le cas contraire, si vous souhaitez conserver votre fichier initial,
veuillez suivre pas à pas cette section. veuillez suivre pas à pas cette section.
Les instruction suivantes s'appliquent au fichier settings.json qui se trouve dans le home du user etherpad, dossier etherpad-lite. Les instructions suivantes s'appliquent au fichier `/home/etherpad/etherpad-lite/settings.json` :
``` ```
$ cd /homer/etherpad/etherpad-lite $ cd /homer/etherpad/etherpad-lite
``` ```
@ -92,7 +84,7 @@ Commenter ou supprimer la BDD par défaut :
*/ */
``` ```
Décommentez la section postgres et compléter avec les secrets : Décommenter la section `postgres` et compléter avec les secrets :
``` ```
"dbType" : "postgres", "dbType" : "postgres",
"dbSettings" : { "dbSettings" : {
@ -105,17 +97,16 @@ Décommentez la section postgres et compléter avec les secrets :
}, },
``` ```
On indique à l'instance qu'elle tourne derrière un proxy et donc que la communication Indiquer à 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 : est sécurisée même si elle dialogue en HTTP, sans TLS :
``` ```
"trustProxy": true, "trustProxy": true,
``` ```
Configuration de l'accès admin web. Configurer l'accès admin web :
Dans l'objet json "users", configurer l'admin :
``` ```
"users": { "users": {
"<admin>": { "admin666": {
"password": "<password>", "password": "<password>",
"is_admin": true "is_admin": true
}, },
@ -129,18 +120,19 @@ du premier pad peut-être très long. Penser à reactiver ce paramètre si besoi
"minify": false, "minify": false,
``` ```
On personnalise le titre : Personnaliser le titre :
``` ```
"title": "Pad Chalec", "title": "Pad Chalec",
``` ```
Placer la favicon dans le dossier parent (/home/etherpad) et la référencer : Placer la favicon dans le dossier `/home/etherpad` et la référencer :
``` ```
"favicon": "../pad.chalec.org.svg", "favicon": "../pad.chalec.org.svg",
``` ```
Ajouter le skin Chalec qui est basé sur le skin par défaut : Ajouter le skin Chalec qui est basé sur le skin par défaut :
``` ```
$ cd /home/etherpad/etherpad-lite/
$ cp -r conf/etherpad-lite/skins/chalec src/static/skins $ cp -r conf/etherpad-lite/skins/chalec src/static/skins
``` ```
@ -173,19 +165,15 @@ CHATONS par Libre en Communs (https://a-lec.org)\nmailto:contact+pad@chalec.org\
:chalec@salons.a-lec.org?join", :chalec@salons.a-lec.org?join",
``` ```
Démarrer le service Etherpad # Démarrer le service Etherpad
==================
Note @todo : cette partie est en travaux et le mécanisme décrit devrait évoluer vers un service Note @todo : cette partie est en travaux et le mécanisme décrit devrait évoluer vers un service
systemd systemd
Tester le démarrer du service etherpad-lite : Tester le démarrer du service etherpad-lite :
`$ src/bin/run.sh` `$ src/bin/run.sh`
Vérifier que le démarrage se passe sans encombres. Puis intérrompre le processus avec un : Vérifier que le démarrage se passe sans encombre. Puis intérrompre le processus avec : CTRL-C
CTRL-C
Installer screen : Installer screen :
@ -196,22 +184,20 @@ Installer screen :
Copier le fichier suivant dans un fichier run.sh : Copier le fichier suivant dans un fichier run.sh :
``` ```
#!/bin/sh #!/bin/sh
export NODE_ENV=production export NODE_ENV=production
/usr/bin/screen -dmS pad "/home/etherpad/etherpad-lite/src/bin/run.sh" /usr/bin/screen -dmS pad "/home/etherpad/etherpad-lite/src/bin/run.sh"
``` ```
On rend le fichier exécutable : Rendre le fichier exécutable :
`$ chmod +x run.sh` `$ chmod +x run.sh`
Lancer le script : Lancer le script :
`$ ./run.sh` `$ ./run.sh`
Vérifier que le pad tourne dans le screen. La commande suivante devrait faire Vérifier que le pad tourne dans le screen. Vérifier que la commande suivante fait apparaitre le pad dans la liste des écrans :
apparaitre dans la liste des écrans, le pad.
`screen -ls` `screen -ls`
Créer le script qui va vérifier s'il y a besoin de relancer le processus : Créer le script `/home/etherpad/checkrestart.sh` qui va vérifier s'il y a besoin de relancer le processus :
``` ```
#!/bin/sh #!/bin/sh
@ -228,7 +214,7 @@ Le rendre exécutable :
`chmod +x checkrestart.sh` `chmod +x checkrestart.sh`
Configuration du cron : Configurer du cron :
`$ crontab -e` `$ crontab -e`
et insérer les lignes suivantes dans le fichier : et insérer les lignes suivantes dans le fichier :
@ -236,11 +222,10 @@ et insérer les lignes suivantes dans le fichier :
@reboot /home/etherpad/run.sh > /dev/null @reboot /home/etherpad/run.sh > /dev/null
* * * * * /home/etherpad/checkrestart.sh * * * * * /home/etherpad/checkrestart.sh
``` ```
Enregistrer et quitter l'éditeur.
Installation du proxy nginx # Installation du proxy nginx
==================
Restore html content into /var/www Restaurer le dossier `/home/etherpad/pad.git/conf/html` dans '/var/www'
Installer nginx et préparer le dossier de logs : Installer nginx et préparer le dossier de logs :
``` ```
@ -249,19 +234,27 @@ Installer nginx et préparer le dossier de logs :
# chown www-data:www-data /var/log/nginx/pad.chalec.org # chown www-data:www-data /var/log/nginx/pad.chalec.org
``` ```
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 : Enregistrer le fichier de configuration de site nginx `/home/etherpad/pad.git/conf/nginx/sites-available/etherpad` à cet emplacement /etc/nginx/sites-available/etherpad et faire un lien symbolique dans /etc/nginx/sites-available/etherpad :
``` ```
# cp /home/etherpad/pad.git/conf/nginx/conf.d/* /etc/nginx/conf.d/
# cd /etc/nginx/sites-enabled # cd /etc/nginx/sites-enabled
# ln -s ../sites-available . # ln -s ../sites-available/etherpad .
``` ```
Créer les certificats :
```
# certbot certonly --nginx -d pad.chalec.org
```
Démarrer le service nginx : Démarrer le service nginx :
`# systemctl enable --now nginx` ```
# systemctl enable --now nginx
```
Ouvrir les ports du firewall : Ouvrir les ports du firewall :
`# ufw allow proto tcp port 80,443` ```
# ufw allow proto tcp port 80,443
```
Vérifier que le service répond en se rendant aux addresses suivantes : Vérifier que le service répond en se rendant aux addresses suivantes :
``` ```
@ -269,10 +262,10 @@ http://pad.chalec.org
https://pad.chalec.org https://pad.chalec.org
``` ```
Installation des Greffons etherpad # Installation des Greffons etherpad
==================
Pour complémenter l'installation de base d'etherpad-lite, il faut ajouter quelques
Pour complémenter l'installation de base d'Etherpad, il faut ajouter quelques
greffons. greffons.
Installer les greffons suivants en se rendant sur la page d'administration Installer les greffons suivants en se rendant sur la page d'administration
@ -289,18 +282,20 @@ https://pad.chalec.org/admin :
Note : il existe une méthode pour installer cela en ligne de commande. @todo 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 : ## Export libreoffice
Pour supporter l'export au format ODT, installer libreoffice :
``` ```
# apt install libreoffice-nogui # apt install libreoffice-nogui
``` ```
Puis configurer le chemin du binaire : Puis configurer le chemin du binaire dans le `settings.json` :
``` ```
"soffice": "/usr/bin/soffice", "soffice": "/usr/bin/soffice",
``` ```
Ajouter le module de table des matières "table_of_contents" et configurer pour le Ajouter le module de table des matières "table_of_contents" et configurer pour le
désactiver par défaut (bug upstream, configuration non prise en compte, cf. #1): désactiver par défaut (bug upstream, configuration non prise en compte, cf. #1) :
``` ```
"ep_toc": { "ep_toc": {
"disable_by_default": true "disable_by_default": true
@ -310,7 +305,7 @@ désactiver par défaut (bug upstream, configuration non prise en compte, cf. #1
Ajouter le module de suppression automatique des pads inactif "delete_after_delay" Ajouter le module de suppression automatique des pads inactif "delete_after_delay"
et le configurer à J + six mois (temps en secondes). 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. Indiquer 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": { "ep_delete_after_delay": {
"delay": 15811200, // 6 * 30.5 * 24 * 3600 "delay": 15811200, // 6 * 30.5 * 24 * 3600
@ -321,16 +316,14 @@ On indique qu'on fait la suppression au lancement et non de manière régulière
``` ```
Securité et limites # Securité et limites
On paramètre "socketIo" avec un buffer HTTP suffisement grand pour notament importer Paramétrer "socketIo" avec un buffer HTTP suffisemment grand pour notament importer des pads jusqu'à 20Mo dans le fichier `settings.json`:
des pads jusqu'à 20Mo :
``` ```
"maxHttpBufferSize": 20000000 "maxHttpBufferSize": 20000000
```
[...]
```
"importExportRateLimiting": { "importExportRateLimiting": {
// duration of the rate limit window (milliseconds) // duration of the rate limit window (milliseconds)
"windowMs": 90000, "windowMs": 90000,
@ -341,38 +334,50 @@ des pads jusqu'à 20Mo :
``` ```
Chalec infos # Chalec infos
============
Intaller Java : Intaller Java :
`# apt install openjdk-jre-headless` ```
# apt install openjdk-jre-headless
```
Ajouter l'utilisateur statoolinfos : Ajouter l'utilisateur statoolinfos :
`# adduser statoolinfos` ```
# adduser statoolinfos
```
Ajouter statoolinfos au group admin pour qu'il puisse lire les logs : Ajouter l'utilisateur statoolinfos au group admin pour qu'il puisse lire les logs :
``` ```
# adduser statoolinfos admin # adduser statoolinfos admin
```
Se connecter avec le nouvel utilisateur :
# su - statoolinfos # su - statoolinfos
$ cd $ cd
``` ```
Télécharger le binaire (jar) Statoolinfos à l'adresse suivante : Télécharger le binaire (jar) Statoolinfos à l'adresse suivante :
https://forge.devinsy.fr/devinsy/statoolinfos/releases `https://forge.devinsy.fr/devinsy/statoolinfos/releases`
Décompresser dans /home/statool-<version> Décompresser dans `/home/statoolinfos/statool-<version>`
Faire un lien généric pour avoir un nom de dossier invariant "statoolinfos": Faire un lien généric pour avoir un nom de dossier invariant "statoolinfos":
`$ ln -s statoolinfos-<verion> statoolinfos` `$ ln -s statoolinfos-<verion> statoolinfos`
Restaurer la configuration statoolinfos : Restaurer la configuration statoolinfos
- /var/www/html/.well-known/statoolinfos) ```
cp /home/etherpad/pad.git/conf/statoolinfos/pad.chalec.org.conf /var/www/html/.well-known/statoolinfos/
```
Exécuter la commande suivante pour vérifier que tout se passe bien : Lancer une génération maximale des métriques :
` /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 : Configurer le cron quotidien :
`$ crontab -e` ```
$ crontab -e
`23 55 * * * /home/statoolinfos/statoolinfos/statoolinfos.sh probe -previousday /home/statoolinfos/statoolinfos/conf/pad.chalec.org.conf >> /home/statoolinfos/statoolinfos.log` 23 55 * * * /home/statoolinfos/statoolinfos/statoolinfos.sh probe -previousday /home/statoolinfos/statoolinfos/conf/pad.chalec.org.conf >> /home/statoolinfos/statoolinfos.log
```