MAJ avec CPM :-)
This commit is contained in:
parent
f1625bc660
commit
519b223617
165
INSTALL.md
165
INSTALL.md
|
@ -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,12 +282,14 @@ 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",
|
||||||
```
|
```
|
||||||
|
@ -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
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue