documentation/services/pad.libre-service.eu.md

4.4 KiB

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 :

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 compte système dédié :

adduser --disabled-password --system --group --home /srv/etherpad/

Déploiement du code

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 etherpad -c "cd /var/www/pad.libre-service.eu/ && ./bin/installDeps.sh"

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 :

su etherpad -c "cd /var/www/pad.libre-service.eu/ && ./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=/var/www/pad.libre-service.eu/
Environment=NODE_ENV=production

ExecStart=/usr/bin/node /var/www/pad.libre-service.eu/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

Documentation:

To update to the latest released version, execute git pull origin. The next start with src/bin/run.sh will update the dependencies.

So proceed:

systemctl stop etherpad
cd /var/www/pad.libre-service.eu/
git pull
./src/bin/run.sh
????????
systemctl start etherpad