# Service pad.libre-service.eu Le service pad.libre-service.eu est un service de traitement de texte collaboratif basé sur le logiciel Etherpad-lite : https://etherpad.org/ # Installation Basée sur : - https://github.com/ether/etherpad-lite#manual-install - https://framacloud.org/fr/cultiver-son-jardin/etherpad ## Prérequis système Configuration du hostname : ``` hostname pad.libre-service.eu ``` Personnalisation du prompt dans .bashrc : ``` PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ ' ``` Ouvrir les ports nécessaires : ``` apt install ufw ufw allow 'ssh' ufw enable ``` ## Prérequis logiciels ### Git Installation de Git pour cloner le code : ``` apt install git ``` ### Postgresql Base de données : ``` apt install postgresql postgresql-contrib ``` D'après la documentation d'installation de Gitea : > PostgreSQL uses md5 challenge-response encryption scheme for password authentication by default. > Nowadays this scheme is not considered secure anymore. Use SCRAM-SHA-256 scheme instead by editing > the postgresql.conf configuration file on the database server to: > > password_encryption = scram-sha-256 > > Restart PostgreSQL to apply the setting. Le conseil semble judicieux donc éditer le fichier `/etc/postgresql/13/main/postgresql.conf` : ``` #password_encryption = md5 # md5 or scram-sha-256 password_encryption = scram-sha-256 ``` Et redémarrer le service : ``` systemctl restart postgresql.service ``` ### Nodejs Etherpad nécessite Node.js >= 12.17.0. Vérifier que la version de Debian Stable est compatible : ``` apt-cache show nodejs |grep Version ``` Installer : ``` apt install nodejs ``` ## Déploiement ## Préparation de la base de données Créer un utilisateur (« role » en langage Pgsql) : ``` su -c "psql" - postgres CREATE ROLE etherpad WITH LOGIN PASSWORD 'xxxxxxxxxxxxx'; ``` Créer une base de données : ``` CREATE DATABASE etherpad WITH OWNER etherpad TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'fr_FR.UTF-8' LC_CTYPE 'fr_FR.UTF-8'; ``` Donner l'accès en éditant le ficher /etc/postgresql/13/main/pg_hba.conf : ``` local etherpad etherpad scram-sha-256 ``` Redémarrer le service : ``` systemctl restart postgresql.service ``` ### Création d'un utilisateur système dédié Créer un utilisateur système dédié : ``` adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /srv/etherpad/ \ git groupmod -n git ``` Créer un compte dédié : ``` adduser --disabled-password --system --group --home /srv/pad.libre-service.eu/ ``` Déployer le code : ``` cd /var/www git clone --branch master git://github.com/ether/etherpad-lite.git pad.libre-service.eu chown -R etherpad:etherpad /var/www/pad.libre-service.eu ``` Premier lancement : ``` su -c "cd /var/www/pad.libre-service.eu/ && ./bin/installDeps.sh" etherpad ``` Configuration dans le fichier `/var/www/pad.libre-service.eu/settings.json` : ``` - "dbType" : "dirty", - "dbSettings" : { - "filename" : "var/dirty.db" - }, "dbType" : "postgres", "dbSettings" : { "user": "etherpad", "host": "localhost", "port": 3306, "password": "password", "database": "etherpad", "charset": "utf8mb4" }, "trustProxy": true, Define a password for the admin user:Advertisement "users": { "admin": { "password": "adminpassword", "is_admin": true }, ``` Installer les dépendances nécessaires : ``` ./bin/installDeps.sh ``` ## Configuration Systemd Créer le fichier `/etc/systemd/system/etherpad.service` : ``` [Unit] Description=Etherpad-lite, the collaborative editor. After=syslog.target network.target [Service] Type=simple User=etherpad Group=etherpad WorkingDirectory=/opt/etherpad/etherpad-lite Environment=NODE_ENV=production ExecStart=/usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js Restart=always [Install] WantedBy=multi-user.target ``` Activer le fichier : ``` systemctl daemon-reload ``` Next, start the Etherpad service and enable it to start at system reboot with the following command: ``` systemctl start etherpad systemctl status etherpad ``` Activer le démarrage automatique : ``` systemctl enable etherpad ``` # Mise à jour ``` systemctl stop etherpad cd /var/www/pad.libre-service.eu/ git pull ./src/bin/run.sh ???????? systemctl start etherpad ```