Table des matières

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.

Installation Node JS

Nous installons node.js

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo aptitude install nodejs

Nous installons Nginx et redis (qui nous servira de base de données)

sudo aptitude install nginx redis-server

Installation Etherpad

Nous créons l'utilisateur

sudo adduser --shell /bin/bash --home /opt/etherpad --gecos "Etherpad user" etherpad

Note importante : le paramètre “–home” est primordial, car au premier lancement, node.js va chercher à écrire dans le home de l'utilisateur (ici etherpad).

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

wget https://github.com/ether/etherpad-lite/archive/1.8.18.tar.gz

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

tar xzf 1.8.4.tar.gz
sudo chown -R etherpad: etherpad-lite-1.8.18
sudo mv etherpad-lite-1.8.18/* /opt/etherpad

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

node --version
npm --version

Configuration MariaDB

Nous n'utilisons plus MariaDB, mais à défaut de mieux, Redis.

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

mysql -u root -p
create database etherpad;
grant all privileges on etherpad.* to 'etherpad'@'%' identified by 'mon_super_mot_de_passe';
flush privileges;
quit

Configuration Etherpad

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" : "redis",
  "dbSettings" : {
    "host": "localhost",
    "port": 6379,
    "database": 0
  },

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
    }
  },

Configuration Systemd

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=/usr/bin/node /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js
Restart=always

[Install]
WantedBy=multi-user.target

Nous rechargeons systemd

sudo systemctl daemon-reload

Lancement final

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

Proxy 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

Liens