Installation Etherpad

Etherpad vous permet d'éditer des documents de manière collaborative en temps réel, un peu comme un éditeur multi-joueurs en direct qui s'exécute dans votre navigateur. Rédigez des articles, des communiqués de presse, des listes de choses à faire, etc. avec vos amis, camarades ou collègues, tous travaillant sur le même document en même temps.

Nous installons node.js

curl -sL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

Nous créons l'utilisateur

sudo adduser --system --group --home /opt/etherpad etherpad

Nous téléchargeons la dernière version d'Etherpad

curl -L https://github.com/ether/etherpad-lite/archive/refs/tags/v2.4.2.tar.gz -o /opt/etherpad/etherpad-2.4.2.tgz

Nous la dézippons et mettons les bons droits, et le plaçons dans son répertoire de travail

sudo tar xzf etherpad-2.4.2.tgz
sudo chown -R etherpad: etherpad-lite-2.4.2
sudo mv etherpad-lite-2.4.2/* /opt/etherpad
sudo mv etherpad-lite-2.4.2/.* /opt/etherpad

À l'issue de l'installation, nous pouvons vérifier la version installée

node --version
npm --version

Nous créons la base de données, et y attachons l'utilisateur

sudo -u postgres psql
create user etherpad with encrypted password 'monsupermotdepasse';
create database etherpad with owner etherpad;
grant all privileges on database etherpad to etherpad;
\q

Nous créons le fichier de configuration depuis settings.json.template

sudo cp settings.json.template settings.json

Nous éditons le fichier settings.json

sudo vi settings.json

Nous ajoutons le connecteur pour Redis

  "dbType" : "postgres",
  "dbSettings" : {
    "user":     "etherpad",
    "host":     "localhost",
    "port":     5432,
    "password": "montsupermotdepasse",
    "database": "etherpad",
  },

Nous configurons le compte admin en décommentant / adaptant ce bloc

  "users": {
    "admin": {
      // 1) "password" can be replaced with "hash" if you install ep_hash_auth
      // 2) please note that if password is null, the user will not be created
      "password": "monsupermotdepasse",
      "is_admin": true
    }
  },

Nous créons le fichier qui va permettre de gérer le service à l'aide de Systemd

sudo vi /etc/systemd/system/etherpad.service

Nous y ajoutons cette configuration

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad
Environment=NODE_ENV=production
ExecStart=pnpm run prod
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

StandardOutput=append:/var/log/etherpad/etherpad.log
StandardError=append:/var/log/etherpad/etherpad-error.log

[Install]
WantedBy=multi-user.target

Nous rechargeons systemd

sudo systemctl daemon-reload

Nous installons les dépendances

sudo /opt/etherpad/bin/installDeps.sh
sudo chown -R etherpad: /opt/etherpad/

Nous configurons les logs

sudo mkdir /var/log/etherpad
sudo chown -R etherpad: /var/log/etherpad/ 

Nous activons le service via systemd et le lançons

sudo systemctl enable --now etherpad.service

Pour contrôler que le service tourne correctement

sudo systemctl status etherpad.service

Nous installons Nginx

sudo apt install -y nginx

Nous créons un vHost Nginx

sudo vi /etc/nginx/sites-available/pad.domain.tld.conf

Nous y collons et adaptons ce contenu

À venir.

Nous créons le liens symbolique

cd /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/pad.domain.tld.conf

Nous vérifions la configuration et la rechargeons

sudo nginx -t
sudo systemctl reload neginx.service
  • infrastructure/services/travail-collaboratif/etherpad/installation.txt
  • Dernière modification : 24/08/2025 15:30
  • de Stéphane Paillet