Etherpad est un éditeur de texte collaboratif en temps réel, permettant à plusieurs personnes d’éditer un même document en même temps.
Nous allons voir ici comment l’installer et le rendre disponible rapidement.
Nous supposons ici que vous avez déjà créé votre serveur (https://docs.gandi.net/fr/cloud/gestion_serveur/creer.html), et que celui-ci a pour adresse IP 1.2.3.4 .
Connectez-vous à votre serveur :
$ ssh admin@1.2.3.4
Et mettez d’abord à jour les paquets existants :
# apt update
# apt upgrade
Installez ensuite screen, git, mariadb et nginx, qui nous seront nécessaires au bon fonctionnement d’etherpad :
# apt install git nginx mariadb-server
Enfin, installez Node.js et npm : https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions
# curl -sL https://deb.nodesource.com/setup_13.x | bash -
# apt install -y nodejs
Il est également recommandé de créer un utilisateur dédié à l’exécution d’Etherpad-lite :
# useradd -mU etherpad
Le serveur est maintenant configuré, passons à la création de la base de données.
Etherpad-lite peut fonctionner sans base de données dans sa configuration par défaut. Cela reste cependant destiné à des tests ou à un usage ponctuel. Il est alors préférable d’utiliser une base de données telle que MySQL.
Créez alors la base de données qui sera utilisée par Etherpad-lite. Nous la nommons ici db_etherpad :
# mysql
MariaDB [(none)]> CREATE DATABASE db_etherpad;
Query OK, 1 row affected (0.001 sec)
Créez ensuite l’utilisateur qui se connectera à la base de données et donnez-lui tous les droits sur la DB :
MariaDB [(none)]> GRANT ALL privileges ON db_etherpad.* TO 'etherpad'@'localhost' IDENTIFIED BY 'MotDePasse';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH privileges;
Query OK, 0 rows affected (0.001 sec)
Quittez MySQL (MariaDB) :
La base de données est prête, il ne reste qu’à installer Etherpad-lite, et le rendre accessible à l’adresse de votre choix.
Passez à l’utilisateur etherpad :
# su - etherpad
Et rendez-vous dans le dossier /home/etherpad
$ cd
Récupérez le code d’Etherpad-lite à l’aide de git :
$ git clone https://github.com/ether/etherpad-lite.git
Vous devez ensuite exécuter le script run.sh qui installe les dépendances requises automatiquement. Il faut donc l’exécuter en tant que root pour cette première exécution :
$ cd etherpad-lite
$ su -c bin/run.sh
On quitte à l’aide de Ctrl + C
Changez ensuite l’environnement de Node.js pour passer en production :
$ NODE_ENV=production
$ export NODE_ENV
Cette modification peut également être exécuté en une seule commande :
$ export NODE_ENV=production
Lors de l’exécution du script run.sh, certains fichiers ont été créés et appartiennent à l’utilisateur root. Ces fichiers sont nécessaires au bon fonctionnement d’Etherpad, que nous allons exécuter avec l’utilisateur etherpad. Pour cette raison, il est nécessaire de redéfinir la propriété de l’ensemble des fichiers pour que notre utilisateur en soit le propriétaire.
Retour à l’utilisateur root :
$ exit
Et modification de la propriété :
# chown -R etherpad:etherpad /home/etherpad/etherpad-lite
Vous allez maintenant pouvoir éditer le fichier de configuration settings.json
.
Retour à l’utilisateur etherpad :
# su - etherpad
Utilisez votre éditeur préféré, donc vim :
$ vim etherpad-lite/settings.json
Pour définir la base de données créée plus tôt, remplacez les lignes suivantes :
"dbType": "dirty",
"dbSettings": {
"filename": "var/dirty.db"
},
Par :
"dbType" : "mysql",
"dbSettings" : {
"user": "etherpad",
"host": "localhost",
"port": 3306,
"password": "MotDePasse",
"database": "db_etherpad",
"charset": "utf8mb4"
},
Toujours dans ce même fichier, profitons-en pour changer les identifiants administrateurs, qui vous seront utiles pour vous connecter à l’administration d’Etherpad-lite :
"users": {
"Administrateur": {
"password": "SuperMotDePasse",
"is_admin": true
},
},
Créez un nouveau fichier etherpad-lite.service dans /etc/systemd/system/ avec comme contenu :
[Unité]
Description=etherpad (édition collaborative de documents en temps réel)
After=syslog.target network.target
Service
Type=simple
User=etherpad
Groupe=etherpad
Environnement=NODE_ENV=production
ExecStart=/home/etherpad/etherpad-lite/bin/run.sh
[Installer]
WantedBy=multi-user.target
Exécutez systemctl daemon-reload
puis systemctl enable etherpad-lite
pour activer le service au démarrage enfin systemctl start etherpad-lite
pour démarrer le service.
Si tout est en ordre, etherpad-lite va démarrer correctement.
Votre instance etherpad est maintenant en cours d’exécution et est accessible à l’adresse http://127.0.0.1:9001
- Nous supposons ici que vous disposez d’un certificat SSL (https://docs.gandi.net/fr/ssl/index.html), et configurons nginx pour qu’etherpad soit accessible depuis l’adresse de votre domaine, conformément aux recommandations de la documentation :
https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#nginx
En tant que root :
# vim /etc/nginx/sites-available/pad.votredomaine.conf
Contenu :
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
- ::
- server {
listen 80;
server_name pad.ceci.estun.example.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
- server {
listen 443 ssl;
server_name pad.ceci.estun.example.com;
access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;
ssl_certificate /chemin/vers/votre/certificat.crt;
ssl_certificate_key /chemin/vers/votre/clef.key;
- 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; # https://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 https://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
Il ne vous reste plus qu’à activer le site :
# ln -s /etc/nginx/sites-available/pad.domain.conf /etc/nginx/sites-enabled/pad.domain.conf
Et à redémarrer Nginx :
# systemctl restart nginx
Si tout s’est bien passé, votre installation d’Etherpad est disponible à l’adresse https://pad.ceci.estun.example.com, et vous pouvez accéder à l’interface d’administration à partir de https://pad.ceci.estun.example.com/admin, félicitations !
Pour aller plus loin :
Comment installer Etherpad Lite sur un Serveur Gandi Cloud¶
Étape 1 : Installation des dépendances et préparation du serveur
Étape 2 : Préparation de la base de données
Étape 3 : Installation et configuration d’Etherpad-lite dans le dossier de l’utilisateur etherpad
Étape 4 : Configuration de Nginx pour assigner l’adresse de votre choix à Etherpad
Etherpad est un éditeur de texte collaboratif en temps réel, permettant à plusieurs personnes d’éditer un même document en même temps.
Nous allons voir ici comment l’installer et le rendre disponible rapidement.
Note
Cette installation a été réalisée avec les outils suivants :
Selon les versions utilisées, les différentes étapes peuvent varier
Étape 1 : Installation des dépendances et préparation du serveur¶
Nous supposons ici que vous avez déjà créé votre serveur (https://docs.gandi.net/fr/cloud/gestion_serveur/creer.html), et que celui-ci a pour adresse IP 1.2.3.4 .
Connectez-vous à votre serveur :
$ ssh admin@1.2.3.4
Et mettez d’abord à jour les paquets existants :
Installez ensuite screen, git, mariadb et nginx, qui nous seront nécessaires au bon fonctionnement d’etherpad :
# apt install git nginx mariadb-server
Enfin, installez Node.js et npm : https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions
Il est également recommandé de créer un utilisateur dédié à l’exécution d’Etherpad-lite :
# useradd -mU etherpad
Le serveur est maintenant configuré, passons à la création de la base de données.
Étape 2 : Préparation de la base de données¶
Etherpad-lite peut fonctionner sans base de données dans sa configuration par défaut. Cela reste cependant destiné à des tests ou à un usage ponctuel. Il est alors préférable d’utiliser une base de données telle que MySQL.
Créez alors la base de données qui sera utilisée par Etherpad-lite. Nous la nommons ici db_etherpad :
Créez ensuite l’utilisateur qui se connectera à la base de données et donnez-lui tous les droits sur la DB :
Quittez MySQL (MariaDB) :
La base de données est prête, il ne reste qu’à installer Etherpad-lite, et le rendre accessible à l’adresse de votre choix.
Étape 3 : Installation et configuration d’Etherpad-lite dans le dossier de l’utilisateur etherpad¶
Passez à l’utilisateur etherpad :
# su - etherpad
Et rendez-vous dans le dossier /home/etherpad
$ cd
Récupérez le code d’Etherpad-lite à l’aide de git :
$ git clone https://github.com/ether/etherpad-lite.git
Vous devez ensuite exécuter le script run.sh qui installe les dépendances requises automatiquement. Il faut donc l’exécuter en tant que root pour cette première exécution :
On quitte à l’aide de
Ctrl + C
Changez ensuite l’environnement de Node.js pour passer en production :
Cette modification peut également être exécuté en une seule commande :
$ export NODE_ENV=production
Lors de l’exécution du script run.sh, certains fichiers ont été créés et appartiennent à l’utilisateur root. Ces fichiers sont nécessaires au bon fonctionnement d’Etherpad, que nous allons exécuter avec l’utilisateur etherpad. Pour cette raison, il est nécessaire de redéfinir la propriété de l’ensemble des fichiers pour que notre utilisateur en soit le propriétaire.
Retour à l’utilisateur root :
$ exit
Et modification de la propriété :
# chown -R etherpad:etherpad /home/etherpad/etherpad-lite
Vous allez maintenant pouvoir éditer le fichier de configuration
settings.json
.Retour à l’utilisateur etherpad :
# su - etherpad
Utilisez votre éditeur préféré, donc vim :
$ vim etherpad-lite/settings.json
Pour définir la base de données créée plus tôt, remplacez les lignes suivantes :
Par :
Toujours dans ce même fichier, profitons-en pour changer les identifiants administrateurs, qui vous seront utiles pour vous connecter à l’administration d’Etherpad-lite :
Créez un nouveau fichier etherpad-lite.service dans /etc/systemd/system/ avec comme contenu :
Exécutez
systemctl daemon-reload
puissystemctl enable etherpad-lite
pour activer le service au démarrage enfinsystemctl start etherpad-lite
pour démarrer le service.Si tout est en ordre, etherpad-lite va démarrer correctement.
Votre instance etherpad est maintenant en cours d’exécution et est accessible à l’adresse http://127.0.0.1:9001
Étape 4 : Configuration de Nginx pour assigner l’adresse de votre choix à Etherpad¶
https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#nginx
En tant que root :
# vim /etc/nginx/sites-available/pad.votredomaine.conf
Contenu :
listen 80; server_name pad.ceci.estun.example.com; rewrite ^(.*) https://$server_name$1 permanent; }
listen 443 ssl; server_name pad.ceci.estun.example.com;
access_log /var/log/nginx/eplite.access.log; error_log /var/log/nginx/eplite.error.log;
ssl_certificate /chemin/vers/votre/certificat.crt; ssl_certificate_key /chemin/vers/votre/clef.key;
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; # https://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 https://nginx.org/en/docs/http/websocket.html proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade;
}
Il ne vous reste plus qu’à activer le site :
# ln -s /etc/nginx/sites-available/pad.domain.conf /etc/nginx/sites-enabled/pad.domain.conf
Et à redémarrer Nginx :
# systemctl restart nginx
Si tout s’est bien passé, votre installation d’Etherpad est disponible à l’adresse https://pad.ceci.estun.example.com, et vous pouvez accéder à l’interface d’administration à partir de https://pad.ceci.estun.example.com/admin, félicitations !
Pour aller plus loin :
Exécution d’Etherpad-lite en tant que service : https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service
Documentation complète d’Etherpad-lite : https://github.com/ether/etherpad-lite/wiki