Red Hat 8, Alma Linux 8 : Installer Etherpad pour du travail collaboratif
Table des matières
Ce tutoriel est vérifié avec RHEL8 et AlmaLinux8
Dans cet article, nous allons voir comment mettre en oeuvre Etherpad sur RHEL 8 et dérivées.
On aura besoin des outils de développement suivant :
On aura besoin d'une base de données MariaDB :
Et d'une version récente de NodeJS (14 en provenance des modules) :
On va démarrer et activer le service :
On lance la procédure d'initialisation de MariaDB :
Répondez aux questions et définissez un mot de passe à root !
Ensuite, créons un utilisateur et une base de données pour Etherpad :
On va créer un utilisateur pour le service, dont le dossier personnel est /opt/etherpad :
On attribue les bons droits :
Pour installer etherpad, on va se connecter en utilisateur etherpad :
On va ensuite cloner le code source :
On va copier le fichier de config :
Et on va l'éditer :
On vérifie que ça écoute partout :
On commente la base de données dirty :
Et on va renseigner les paramètres corrects de MariaDB :
On va installer les dépendances en exécutant :
On ouvre le parefeu, sur le port 9001 :
Puis on lance Etherpad :
Etherpad se ne se lance pas tout seul.
On va donc créer un service pour le démarrer automatiquement :
On va créer un service simple qui lancera avec notre utilisateur l'etherpad :
On active et démarre le service :
On peut accéder au pad avec http://serveur:9001
Vu qu'etherpad est lancé en tant que service, on pourra facilement avoir des infos via les logs :
Pour mettre à jour Etherpad :
Et on redémarre le service :
Il est possible, si on le souhaite, d'utiliser NGINX comme proxy et pour gérer la partie HTTPS.
On l'installe :
On se créé un server block (mais on peut tout à fait modifier la config de base si on a que Etherpad sur le serveur) :
Si on utilise SELinux, on permet d'accéder au réseau nginx :
On active nginx au boot et on démarre le service :
On ouvre le parefeu évidemment sur le port http :
On peut accéder maintenant à etherpad via : http://serveur
Pour du HTTPS on modifiera le fichier :
Et on ajoutera :
Evidemment, indiquez vos certificats.
Note : Générer des certificats Lets Encrypt ( https://www.linuxtricks.fr/wiki/let-s-encrypt-mise-en-place ) ou autosigné ( https://www.linuxtricks.fr/wiki/openssl-creation-de-certificats-et-ca-autosignes )
On ouvre le parefeu évidemment sur le port https :
Et on redémarre nginx :
Introduction
Dans cet article, nous allons voir comment mettre en oeuvre Etherpad sur RHEL 8 et dérivées.
Prérequis
On aura besoin des outils de développement suivant :
Code BASH :
dnf install curl gcc make gcc-c++ git
On aura besoin d'une base de données MariaDB :
Code BASH :
dnf install mariadb-server
Et d'une version récente de NodeJS (14 en provenance des modules) :
Code BASH :
dnf module install nodejs:14
Configuration des prérequis
Base de données MariaDB
On va démarrer et activer le service :
Code BASH :
systemctl enable --now mariadb.service
On lance la procédure d'initialisation de MariaDB :
Code BASH :
mysql_secure_installation
Répondez aux questions et définissez un mot de passe à root !
Ensuite, créons un utilisateur et une base de données pour Etherpad :
Code BASH :
mysql -u root -p
Code SQL :
CREATE DATABASE etherpad; GRANT ALL ON etherpad.* TO 'etheruser'@'localhost' IDENTIFIED BY 'etherpass'; FLUSH privileges; quit
Création d'un utilisateur Etherpad
On va créer un utilisateur pour le service, dont le dossier personnel est /opt/etherpad :
Code BASH :
useradd -m -d /opt/etherpad -s /bin/bash etherpad
On attribue les bons droits :
Code BASH :
chmod 755 /opt/etherpad
Installer etherpad
Pour installer etherpad, on va se connecter en utilisateur etherpad :
Code BASH :
su - etherpad
On va ensuite cloner le code source :
Code BASH :
git clone git://github.com/ether/etherpad-lite.git ~/etherpad-lite
On va copier le fichier de config :
Code BASH :
cp ~/etherpad-lite/settings.json.template ~/etherpad-lite/settings.json
Et on va l'éditer :
Code BASH :
vi ~/etherpad-lite/settings.json
On vérifie que ça écoute partout :
Code TEXT :
"ip": "0.0.0.0"
On commente la base de données dirty :
Code :
/*"dbType": "dirty",
"dbSettings": {
"filename": "var/dirty.db"
},*/
Et on va renseigner les paramètres corrects de MariaDB :
Code TEXT :
"dbType" : "mysql", "dbSettings" : { "user": "etheruser", "host": "localhost", "port": 3306, "password": "etherpadd", "database": "etherpad", "charset": "utf8mb4" },
On va installer les dépendances en exécutant :
Code BASH :
~/etherpad-lite/bin/installDeps.sh
On ouvre le parefeu, sur le port 9001 :
Code BASH :
firewall-cmd --add-port=9001/tcp --permanent firewall-cmd --reload
Lancer Etherpad
Puis on lance Etherpad :
Code BASH :
~/etherpad-lite/bin/run.sh
Créer un service pour lancer Etherpad automatiquement
Etherpad se ne se lance pas tout seul.
On va donc créer un service pour le démarrer automatiquement :
Code BASH :
vi /etc/systemd/system/etherpad.service
On va créer un service simple qui lancera avec notre utilisateur l'etherpad :
Code TEXT :
[Unit] Description=Etherpad After=network.target [Service] Type=simple User=etherpad Group=etherpad ExecStart=/opt/etherpad/etherpad-lite/bin/run.sh Restart=always [Install] WantedBy=multi-user.target
On active et démarre le service :
Code BASH :
systemctl enable --now etherpad.service
On peut accéder au pad avec http://serveur:9001
Diagnostics et logs
Vu qu'etherpad est lancé en tant que service, on pourra facilement avoir des infos via les logs :
Code BASH :
journalctl -f -u etherpad.service
Mises à jour d'Etherpad
Pour mettre à jour Etherpad :
Code BASH :
su - etherpad cd /opt/etherpad/etherpad-lite git pull origin
Et on redémarre le service :
Code BASH :
systemctl restart etherpad
Interfacer avec NGINX (Facultatif)
Il est possible, si on le souhaite, d'utiliser NGINX comme proxy et pour gérer la partie HTTPS.
On l'installe :
Code BASH :
dnf install nginx
On se créé un server block (mais on peut tout à fait modifier la config de base si on a que Etherpad sur le serveur) :
Code BASH :
vi /etc/nginx/conf.d/etherpad.conf
Code :
server {
server_name etherpad.linuxtricks.lan;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_read_timeout 300;
proxy_pass http://localhost:9001/;
proxy_set_header Upgrade $http_upgrade;
}
}
Si on utilise SELinux, on permet d'accéder au réseau nginx :
Code BASH :
setsebool -P httpd_can_network_connect 1
On active nginx au boot et on démarre le service :
Code BASH :
systemctl enable --now nginx
On ouvre le parefeu évidemment sur le port http :
Code BASH :
firewall-cmd --add-service=http --permanent firewall-cmd --reload
On peut accéder maintenant à etherpad via : http://serveur
Pour du HTTPS on modifiera le fichier :
Code BASH :
vi /etc/nginx/conf.d/etherpad.conf
Et on ajoutera :
Code :
server {
listen 443 ssl;
server_name etherpad.linuxtricks.lan;
ssl_certificate "/etc/ssl/etherpad.linuxtricks.lan.crt";
ssl_certificate_key "/etc/ssl/etherpad.linuxtricks.lan.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_read_timeout 300;
proxy_pass http://localhost:9001/;
proxy_set_header Upgrade $http_upgrade;
}
}
Evidemment, indiquez vos certificats.
Note : Générer des certificats Lets Encrypt ( https://www.linuxtricks.fr/wiki/let-s-encrypt-mise-en-place ) ou autosigné ( https://www.linuxtricks.fr/wiki/openssl-creation-de-certificats-et-ca-autosignes )
On ouvre le parefeu évidemment sur le port https :
Code BASH :
firewall-cmd --add-service=https --permanent firewall-cmd --reload
Et on redémarre nginx :
Code BASH :
systemctl restart nginx