Comment installer Etherpad sur Ubuntu 20.04

Etherpad est un éditeur en ligne en temps réel basé sur le Web qui permet aux auteurs de modifier simultanément un document texte et de surveiller toutes les modifications en temps réel. Il est open-source, personnalisable et permet d’afficher le texte de chaque auteur dans sa propre couleur. Il fournit également une API HTTP que tu peux intégrer à tes applications pour gérer les utilisateurs et les groupes. Il propose plusieurs plugins qui t’aident à intégrer des notifications par email, le téléchargement de fichiers, des appels vidéo dans Etherpad. Dans ce tutoriel, nous allons te montrer comment installer l’éditeur web Etherpad sur le serveur Ubuntu 20.04.

Conditions préalables

  • Un serveur fonctionnant sous Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Avant de commencer, tu dois mettre à jour tes paquets système à la dernière version. Tu peux les mettre à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu devras installer certaines dépendances dans ton système. Tu peux les installer toutes à l’aide de la commande suivante :

apt-get install gnupg2 git unzip libssl-dev pkg-config gcc g++ make build-essential -y

Une fois que tous les paquets sont installés, tu peux passer à l’étape suivante.

Installer et configurer la base de données MariaDB

Etherpad utilise MariaDB comme backend de base de données. Tu dois donc installer le serveur MariaDB dans ton système. Tu peux l’installer avec la commande suivante :

apt-get install mariadb-server -y

Après avoir installé MariaDB, connecte-toi au shell MariaDB avec la commande suivante :

mysql

Après t’être connecté, crée une base de données et un utilisateur pour Etherpad avec la commande suivante :

MariaDB [(none)]> create database etherpad;
MariaDB [(none)]> grant all privileges on etherpad.* to [email protected] identified by 'password';

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

À ce stade, ta base de données est configurée pour Etherpad. Tu peux maintenant passer à l’étape suivante.

Installe Node.js

Etherpad est basé sur Node.js. Tu dois donc installer Node.js dans ton système. Par défaut, la dernière version de Node.js n’est pas disponible dans le dépôt standard d’Ubuntu 20.04. Tu devras donc ajouter le dépôt Node.js à ton système. Tu peux l’ajouter avec la commande suivante :

curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
bash nodesource_setup.sh

Une fois le dépôt ajouté, installe Node.js avec la commande suivante :

apt-get install nodejs -y

Après avoir installé Node.js, vérifie la version installée de Node.js avec la commande suivante :

node -v

Tu devrais obtenir le résultat suivant :

v14.15.0

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer et configurer Etherpad

Avant d’installer Etherpad. Il est recommandé d’exécuter Etherpad en tant qu’utilisateur distinct. Tu peux créer un nouvel utilisateur pour Etherpad avec la commande suivante :

adduser --home /opt/etherpad --shell /bin/bash etherpad

Il te sera demandé de définir un mot de passe comme indiqué ci-dessous :

Adding user `etherpad' ...
Adding new group `etherpad' (1000) ...
Adding new user `etherpad' (1000) with group `etherpad' ...
Creating home directory `/opt/etherpad' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for etherpad
Enter the new value, or press ENTER for the default
	Full Name []: Hitesh       
	Room Number []: 1
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

Ensuite, donne les permissions appropriées au répertoire d’accueil d’Etherpad avec la commande suivante :

install -d -m 755 -o etherpad -g etherpad /opt/etherpad

Ensuite, change l’utilisateur pour Etherpad et télécharge la dernière version d’Etherpad depuis le dépôt Git à l’aide de la commande suivante :

su - etherpad
git clone --branch master https://github.com/ether/etherpad-lite.git

Ensuite, change le répertoire pour le répertoire téléchargé et lance Etherpad à l’aide de la commande suivante :

cd etherpad-lite
bin/run.sh

Cela permettra d’installer toutes les dépendances et de démarrer le serveur Etherpad. Une fois le serveur démarré avec succès, tu devrais obtenir la sortie suivante :

[2020-11-11 06:46:44.783] [INFO] console - Your Etherpad version is 1.8.6 (2c8769a)
[2020-11-11 06:46:44.958] [INFO] console - You can access your Etherpad instance at http://0.0.0.0:9001/
[2020-11-11 06:46:44.958] [WARN] console - Admin username and password not set in settings.json.  To access admin please uncomment and edit 'users' in settings.json
[2020-11-11 06:46:44.958] [WARN] console - Etherpad is running in Development mode.  This mode is slower for users and less secure than production mode.  You should set the NODE_ENV environment variable to production by using: export NODE_ENV=production

Ensuite, appuie sur CTRL + C pour arrêter le serveur. Ensuite, tu devras modifier le fichier settings.json et définir tes paramètres de base de données et d’administration :

nano settings.json

Supprime les lignes suivantes :

"dbType" : "dirty",
  "dbSettings" : {
                   "filename" : "var/dirty.db"
                 },

Change les paramètres MySQL comme indiqué ci-dessous :

  "dbType" : "mysql",
  "dbSettings" : {
    "user":     "etherpad",
    "host":     "localhost",
    "port":     3306,
    "password": "password",
    "database": "etherpad",
    "charset":  "utf8mb4"
  },

Change la ligne trustProxy en true :

  "trustProxy": true,

Définis un mot de passe pour l’utilisateur admin :

  "users": {
    "admin": {
      "password": "adminpassword",
      "is_admin": true
    },

Enregistre et ferme le fichier puis installe les dépendances requises avec la commande suivante :

./bin/installDeps.sh

Une fois que toutes les dépendances sont installées, quitte l’utilisateur d’Etherpad avec la commande suivante :

exit

À ce stade, Etherpad est installé et configuré. Tu peux maintenant passer à l’étape suivante.

Crée un fichier de service Systemd pour Etherpad

Ensuite, tu devras créer un fichier de service systemd pour gérer le service Etherpad. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/etherpad.service

Ajoute les lignes suivantes :

[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

Enregistre et ferme le fichier puis recharge le démon systemd en exécutant la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service Etherpad et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start etherpad
systemctl enable etherpad

Tu peux aussi vérifier l’état du service Etherpad avec la commande suivante :

systemctl status etherpad

Tu devrais voir la sortie suivante :

? etherpad.service - Etherpad-lite, the collaborative editor.
     Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 06:50:49 UTC; 4s ago
   Main PID: 12269 (node)
      Tasks: 13 (limit: 4691)
     Memory: 119.1M
     CGroup: /system.slice/etherpad.service
             ??12269 /usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js

Configurer Nginx pour Etherpad

À ce stade, Etherpad est démarré et écoute sur le port 9001. Ensuite, tu devras installer et configurer Nginx comme proxy inverse pour accéder à Etherpad. Tout d’abord, installe Nginx à l’aide de la commande suivante :

apt-get install nginx -y

Ensuite, crée un nouveau fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/sites-available/etherpad.conf

Ajoute les lignes suivantes :

upstream etherpad {
   server localhost:9001;
   keepalive 32;
}

server {
   listen 80;
   server_name etherpad.mydomain.com;

   location / {
       client_max_body_size 50M;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_http_version 1.1;
       proxy_pass http://etherpad;
   }
}

Sauvegarde et ferme le fichier puis active le fichier de configuration de l’hôte virtuel Nginx avec la commande suivante :

ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/

Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

Tu peux aussi vérifier l’état de Nginx avec la commande suivante :

systemctl status nginx

Tu devrais obtenir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 06:53:44 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 12984 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 12985 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 13001 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??13001 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??13002 nginx: worker process
             ??13003 nginx: worker process

Nov 11 06:53:44 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 11 06:53:44 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Accéder à Etherpad

Maintenant, ouvre ton navigateur Web et tape l’URL http://etherpad.mydomain.com. Tu seras redirigé vers la page suivante :

Etherpad

Indique le nom de ta page et clique sur le bouton OK. Tu devrais voir ton tableau de bord Etherpad sur la page suivante :

Éditeur en ligne Etherpad

Conclusion

Félicitations ! Tu as réussi à installer et à configurer Etherpad avec Nginx comme proxy inverse sur le serveur Ubuntu 20.04. Tu peux facilement utiliser Etherpad dans l’environnement de production. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...