Comment installer l’éditeur collaboratif en temps réel Etherpad sur Ubuntu 18.04

Etherpad est un éditeur collaboratif en temps réel basé sur Node.js. C’est un éditeur collaboratif open source basé sur le Web pour un accès multi-utilisateurs avec la possibilité d’importer/exporter vers divers formats de fichiers bureautiques et un éditeur en ligne hautement personnalisable.

Dans ce tutoriel, je vais te guider pas à pas pour installer et configurer Etherpad-lite sur le serveur Ubuntu 18.04. Nous installerons Etherpad-lite avec MySQL comme base de données, le serveur Web Nginx comme proxy inverse et nous activerons la connexion sécurisée HTTPS.

Prérequis

  • Serveur Ubuntu 18.04
  • Privilèges de racine

Ce que nous allons faire ?

  1. Installer les dépendances des paquets
  2. Installer Nodejs
  3. Installer et configurer MySQL
  4. Télécharger Etherpad
  5. Configurer Etherpad
  6. Configurer Etherpad comme un service
  7. Configurer Nginx comme Reverse Proxy pour Etherpad
  8. Configurer le pare-feu UFW
  9. Tester

Étape 1 – Installer les dépendances des paquets

La première étape que nous ferons dans ce guide est d’installer toutes les dépendances des paquets pour l’installation de Nodejs.

Exécute la commande apt ci-dessous.

sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y

Attends que toutes les installations soient terminées.

Étape 2 – Installe Nodejs

Etherpad nécessite Node.js >= 6.9, et dans cette étape nous allons installer Nodejs 9.11 qui peut être installé à partir du dépôt nodesource.

Ajoute le dépôt Nodejs de nodesource et installe le paquet Node.js en utilisant les commandes ci-dessous.

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

Ensuite, vérifie les commandes nodejs et npm.

nodejs --version
npm --version

Node.js v9.11 a été installé sur le serveur Ubuntu 18.04.

Installe node.js

Étape 3 – Installer et configurer MySQL

Dans ce tutoriel, nous allons utiliser MySQL comme base de données pour Etherpad.

Installe le serveur de base de données MySQL à l’aide de la commande apt ci-dessous.

sudo apt install mysql-server mysql-client

Une fois l’installation terminée, démarre le service mysql et active-le pour qu’il se lance à chaque fois au démarrage du système.

sudo systemctl start mysql
sudo systemctl enable mysql

Le serveur MySQL a été installé.

Ensuite, nous allons configurer le mot de passe root mysql et créer une nouvelle base de données et un nouvel utilisateur pour notre installation d’etherpad.

Pour configurer le mot de passe root MySQL, exécute la commande ci-dessous.

mysql_secure_installation

Tape ton mot de passe racine mysql fort.

Connecte-toi maintenant au shell mysql en utilisant l’utilisateur root.

mysql -u root -p

Crée une nouvelle base de données nommée ‘etherpad_db’ et un utilisateur ‘hakase’, et exécute les requêtes mysql ci-dessous.

create database etherpad_db;
grant all privileges on etherpad_db.* to [email protected] identified by '[email protected]#';
flush privileges;

La base de données MySQL pour l’installation d’etherpad a été créée.

Installe MySQL

Étape 4 – Télécharger Etherpad

Dans cette étape, nous allons créer un nouvel utilisateur et télécharger le code source d’etherpad.

Crée un nouvel utilisateur nommé ‘etherpad’ et connecte-toi à cet utilisateur.

useradd -m -s /bin/bash etherpad
su - etherpad

Maintenant, clone le dépôt d’etherpad.

git clone git://github.com/ether/etherpad-lite.git

Va dans le répertoire ‘etherpad-lite/’ et exécute le script bash pour démarrer etherpad.

cd etherpad-lite/
bin/run.sh

Tu obtiendras le résultat ci-dessous.

Télécharger Etherpad

Ouvre ton navigateur Web et tape l’adresse IP du serveur avec le port ‘9001’.

http://192.168.33.10:9001/

Et tu verras la page d’accueil d’etherpad.

Accéder à Etherpad

Retourne à ton terminal et appuie sur ‘Ctrl+c’ pour quitter l’application.

Étape 5 – Configurer Etherpad

Dans cette étape, nous allons effectuer la configuration de base de l’éditeur collaboratif etherpad.

Connecte-toi à l’utilisateur d’etherpad et va dans le répertoire ‘etherpad-lite’.

su - etherpad
cd etherpad-lite/

Modifie la configuration ‘settings.json’ en utilisant l’éditeur vim.

vim settings.json

Change l’adresse IP en ‘127.0.0.1’ ou localhost, car nous allons exécuter etherpad sur le proxy inverse Nginx.

  "ip": "127.0.0.1",
  "port" : 9001,

Désactive maintenant la base de données sale par défaut en ajoutant le commentaire ‘/* …. */’, et colle la configuration de la base de données MySQL.

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

Configuration de la base de données MySQL.

  "dbType" : "mysql",
  "dbSettings" : {
                   "user"    : "hakase",
                   "host"    : "localhost",
                   "port"    : 3306,
                   "password": "[email protected]#",
                   "database": "etherpad_db",
                   "charset" : "utf8mb4"
                 },

Configuration de l'Etherpad

Ensuite, nous allons activer l’utilisateur admin en supprimant le commentaire de ces lignes et changer la valeur du mot de passe avec un nouveau mot de passe.

  "users": {
    "admin": {
      // "password" can be replaced with "hash" if you install ep_hash_auth
      "password": "[email protected]#",
      "is_admin": true
    },
    "user": {
      // "password" can be replaced with "hash" if you install ep_hash_auth
      "password": "[email protected]#",
      "is_admin": false
    }
  },

Sauvegarde et quitte.

La configuration de base d’Etherpad est terminée.

Étape 6 – Configurer Etherpad comme un service

Nous allons maintenant exécuter etherpad en tant que service systemd sur notre système ubuntu.

Va dans le répertoire ‘/etc/systemd/system’ et crée un nouveau fichier de service nommé ‘etherpad.service’.

cd /etc/systemd/system/
vim etherpad.service

Colle les configurations ci-dessous.

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

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/home/etherpad/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/nodejs /home/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.

[Install]
WantedBy=multi-user.target

Sauvegarde et quitte.

Recharge les listes de services systemd.

sudo systemctl daemon-reload

Démarre le service etherpad et active-le pour qu’il se lance chaque fois au démarrage du système.

sudo systemctl start etherpad
sudo systemctl enable etherpad

Ether est opérationnel en tant que service sur localhost ip avec le port par défaut 9001.

Exécuter Etherpad en tant que service

Vérifie le service à l’aide des commandes ci-dessous.

sudo systemctl status etherpad
netstat -plntu

Étape 7 – Installe et configure Nginx comme proxy inverse

Dans cette étape, nous allons installer et configurer le serveur Web Nginx comme proxy inverse pour le service etherpad.

Installe le serveur web Nginx à l’aide de la commande apt ci-dessous.

sudo apt install nginx -y

Une fois l’installation terminée, va dans le répertoire ‘/etc/nginx/sites-available’ et crée un nouvel hôte virtuel ‘etherpad’.

cd /etc/nginx/sites-available/
vim etherpad

Colle les configurations ci-dessous.

server {
    listen      80;
    server_name pad.hakase.io;
    rewrite     ^(.*)   https://$server_name$1 permanent;
}

# we're in the http context here
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
        listen       443;
        server_name  pad.hakase.io;

        access_log  /var/log/nginx/eplite.access.log;
        error_log   /var/log/nginx/eplite.error.log;

        ssl                  on;
        ssl_certificate      /etc/nginx/ssl/fullchain.pem;
        ssl_certificate_key  /etc/nginx/ssl/privkey.pem;

        ssl_session_timeout  5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

        location / {
            proxy_pass             http://localhost:9001/;
            proxy_set_header       Host $host;
            proxy_pass_header Server;
            # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
            proxy_buffering off;
            proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
            proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
            proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
            proxy_set_header Host $host;  # pass the host header                                                  
            proxy_http_version 1.1;  # recommended with keepalive connections                                                   
            # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;

        }
}

Sauvegarde et quitte.

Remarque :

  • Veille à modifier le chemin du SSL avec tes propres certificats ssl.
  • Remplace le domaine etherpad ‘pad.hakase.io’ par ton propre nom de domaine.

Active maintenant l’hôte virtuel etherpad et teste la configuration.

ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
nginx -t

Assure-toi qu’il n’y a pas d’erreur, puis démarre le service nginx et active-le pour qu’il se lance à chaque fois au démarrage du système.

sudo systemctl restart nginx
sudo systemctl enable nginx

Etherpad derrière un proxy nginx

L’installation et la configuration de Nginx comme proxy inverse d’etherpad ont été effectuées avec succès.

Étape 8 – Configurer le pare-feu UFW

Pour la configuration du pare-feu, nous voulons simplement ouvrir les services de port SSH, HTTP et HTTPS.

Exécute les commandes ufw ci-dessous.

sudo fuw allow ssh
sudo ufw allow http
sudo ufw allow https

Puis active le pare-feu ufw.

sudo ufw enable

Et la configuration du pare-feu ufw est terminée.

Étape 9 – Test

Ouvre ton navigateur Web et tape le nom de domaine d’etherpad, le mien est :http://pad.hakase.io/

Tu vas maintenant être redirigé vers la connexion sécurisée HTTS.

Accéder à Etherpad

Crée un nouveau pad en tapant le nom du pad dans la case et clique sur le bouton ‘OK’.

Et tu obtiendras l’éditeur Etherpad comme ci-dessous.

Éditeur Etherpad

Ensuite, ouvre l’URL d’administration d’etherpad. La mienne esthttps://pad.hakase.io/admin/

Le nom d’utilisateur et le mot de passe de l’administrateur te seront demandés. Tape ton propre nom d’utilisateur et ton mot de passe, puis clique sur le bouton Signin.

Zone d'administration de l'Etherpad

Et tu obtiendras la page d’administration par défaut d’Etherpad ci-dessous.

– Configuration Etherpad settings.json

Configuration Etherpad settings.json

– Gestionnaire de plugins Etherpad

Plugin manager

L’installation d’Etherpad avec MySQL et le proxy inverse Nginx sur Ubuntu 18.04 a été effectuée avec succès.

Référence

Vous aimerez aussi...