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