Etherpad est un éditeur collaboratif temps réel basé sur Node.js. Il s'agit d'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 vous guider étape par étape pour installer et configurer l'Etherpad-lite sur le serveur Ubuntu 18.04. Nous allons installer l'Etherpad-lite avec MySQL en tant que base de données, le serveur Web Nginx en tant que proxy inverse et y activer la connexion sécurisée HTTPS.
Prérequis
- Serveur Ubuntu 18.04
- Privilèges root
Qu'allons-nous faire ?
- Installer les dépendances des packages
- Installer Nodejs
- Installer et configurer MySQL
- Télécharger Etherpad
- Configurer Etherpad
- Configurer Etherpad en tant que service
- Configurer Nginx en tant que proxy inverse pour Etherpad
- Configurer le pare-feu UFW
- Test
Étape 1 - Installer les dépendances des packages
La première étape que nous ferons dans ce guide consiste à installer toutes les dépendances de package pour l'installation de Nodejs.
Exécutez la commande apt ci-dessous.
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y
Attendez toute l'installation.
Étape 2 - Installer Nodejs
Etherpad nécessite Node.js>=6.9, et dans cette étape, nous allons installer Nodejs 9.11 qui peut être installé à partir du référentiel nodesource.
Ajoutez le référentiel nodesource Nodejs et installez le package Node.js à l'aide des commandes ci-dessous.
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt install -y nodejs
Après cela, vérifiez les commandes nodejs et npm.
nodejs --version
npm --version
Le Node.js v9.11 a été installé sur le serveur Ubuntu 18.04.
Étape 3 - Installer et configurer MySQL
Dans ce tutoriel, nous utiliserons MySQL comme base de données pour Etherpad.
Installez 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émarrez le service mysql et activez-le pour qu'il se lance à chaque 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 etherpad.
Pour configurer le mot de passe root MySQL, exécutez la commande ci-dessous.
mysql_secure_installation
Tapez votre mot de passe root mysql fort.
Connectez-vous maintenant au shell mysql en utilisant l'utilisateur root.
mysql -u root -p
Créez une nouvelle base de données nommée 'etherpad_db' et l'utilisateur 'hakase', et exécutez les requêtes mysql ci-dessous.
créer la base de données etherpad_db ;
accorder tous les privilèges sur etherpad_db.* à [email protected] identifié par '[email protected]#' ;
vider les privilèges ;
La base de données MySQL pour l'installation d'etherpad a été créée.
Étape 4 - Télécharger Etherpad
Dans cette étape, nous allons créer un nouvel utilisateur et télécharger le code source etherpad.
Créez un nouvel utilisateur nommé 'etherpad' et connectez-vous à l'utilisateur.
useradd -m -s /bin/bash etherpad
su - etherpad
Maintenant, clonez le dépôt etherpad.
git clone git://github.com/ether/etherpad-lite.git
Accédez au répertoire 'etherpad-lite/' et exécutez le script bash pour démarrer etherpad.
cd etherpad-lite/
bin/run.sh
Vous obtiendrez le résultat ci-dessous.
Ouvrez votre navigateur Web et saisissez l'adresse IP du serveur avec le port '9001'.
http://192.168.33.10:9001/
Et vous verrez la page d'accueil d'etherpad.
Revenez à votre terminal et appuyez sur 'Ctrl+c' pour quitter l'application.
Étape 5 - Configurer Etherpad
Dans cette étape, nous allons faire la configuration de base de l'éditeur collaboratif etherpad.
Connectez-vous à l'utilisateur etherpad et accédez au répertoire "etherpad-lite".
su - etherpad
cd etherpad-lite/
Modifiez la configuration 'settings.json' à l'aide de l'éditeur vim.
vim settings.json
Changez l'adresse IP en '127.0.0.1' ou localhost, car nous exécuterons l'etherpad sur le proxy inverse Nginx.
"ip":"127.0.0.1",
"port" :9001,
Désactivez maintenant la base de données sale par défaut en ajoutant le commentaire '/* .... */', et collez 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"
/pré>
Ensuite, nous allons activer l'utilisateur administrateur en supprimant le commentaire de ces lignes et en modifiant la valeur du mot de passe avec un nouveau mot de passe.
"users":{
"admin":{
// "password" peut être remplacé par "hash" si vous installez ep_hash_auth
"password":"[email protected] #",
"is_admin":true
},
"user":{
// "password" peut être remplacé par "hash" si vous installez ep_hash_auth
"password":"[email protected]#",
"is_admin":false
}
},
Enregistrez et quittez.
La configuration de base de l'etherpad est terminée.
Étape 6 - Configurer Etherpad en tant que service
Nous allons maintenant exécuter etherpad en tant que service systemd sur notre système Ubuntu.
Allez dans le répertoire '/etc/systemd/system' et créez un nouveau fichier de service nommé 'etherpad.service'.
cd /etc/systemd/system/
vim etherpad.serviceCollez les configurations ci-dessous.
[Unité]
Description=Etherpad-lite, l'éditeur collaboratif.
Après=syslog.target network.target
[Service]
Type=simple
Utilisateur=etherpad
Groupe=etherpad
Répertoire de travail=/home/etherpad/etherpad-lite
Environnement=NODE_ENV=production
ExecStart=/usr/bin/nodejs / home/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always # utilise mysql plus un settings.json complet pour éviter le dépassement du temps d'attente du service, en planifiant le redémarrage.
[Installer]
WantedBy=multi-user.targetEnregistrez et quittez.
Rechargez les listes de services systemd.
sudo systemctl daemon-reloadDémarrez le service etherpad et activez-le pour qu'il se lance à chaque fois au démarrage du système.
sudo systemctl start etherpad
sudo systemctl enable etherpadEt l'éther est opérationnel en tant que service sur l'ip localhost avec le port par défaut 9001.
Vérifiez le service à l'aide des commandes ci-dessous.
sudo systemctl status etherpad
netstat -plntuÉtape 7 - Installer et configurer Nginx en tant que proxy inverse
Dans cette étape, nous allons installer et configurer le serveur Web Nginx en tant que proxy inverse pour le service Etherpad.
Installez le serveur Web nginx à l'aide de la commande apt ci-dessous.
sudo apt install nginx -yUne fois l'installation terminée, accédez au répertoire '/etc/nginx/sites-available' et créez un nouvel hôte virtuel 'etherpad'.
cd /etc/nginx/sites-available/
vim etherpadCollez les configurations ci-dessous.
serveur {
écouter 80 ;
nom_serveur pad.hakase.io ;
réécrire ^(.*) https://$nom_serveur$1 permanent ;
}
# nous sommes dans le contexte http ici
map $http_upgrade $connection_upgrade {
mise à niveau par défaut ;
'' close ;
}
server {
listen 443 ;
nom_serveur pad.hakase.io ;
access_log /var/log/nginx/eplite.access.log ;
error_log / var/log/nginx/eplite.error.log ;
ssl ;
ssl_certificate /etc/nginx/ssl/fullchain.pem ;
ssl_certificate_key /etc/nginx/s /privkey.pem ;
ssl_session_timeout 5 m ;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ;
ssl_prefer_server_ciphers activé ;
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";
emplacement / {
proxy_pass http://localhost:9001/;
proxy_set_header Hôte $hôte ;
proxy_pass_header Server ;
# attention, cette ligne ne remplace pas tout proxy_buffering on set dans un conf.d/file.conf
proxy_buffering off ;
proxy_set_header X-Real- IP $adresse_distante ; # http://wiki.nginx.org/HttpProxyModule
proxy_set_header X-Forwarded-For $remote_addr ; # Journaux EP pour afficher l'adresse IP distante réelle
proxy_set_header X-Forwarded-Proto $scheme ; # pour qu'EP définisse un indicateur de cookie sécurisé lorsque https est utilisé
proxy_set_header Host $host ; # transmettez l'en-tête de l'hôte
proxy_http_version 1.1 ; # Recommandé avec Keepalive Connections
# WebSocket Proxying - De http://nginx.org/en/docs/http/websocket.html
proxy_set_header upggrade $ http_upgrade;
proxy_set_header connection $ connection_upgrade;
}
}Enregistrez et quittez.
Remarque :
- Assurez-vous de modifier le chemin du SSL avec vos propres certificats SSL.
- Remplacez le domaine Etherpad "pad.hakase.io" par votre propre nom de domaine.
Activez maintenant l'hôte virtuel etherpad et testez la configuration.
ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
nginx -t
Assurez-vous qu'il n'y a pas d'erreur, puis démarrez le service nginx et activez-le pour qu'il se lance à chaque démarrage du système.
sudo systemctl restart nginx
sudo systemctl enable nginx
L'installation et la configuration de Nginx en tant que proxy inverse 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écutez les commandes ufw ci-dessous.
sudo fuw autorise ssh
sudo ufw autorise http
sudo ufw autorise https
Activez ensuite le pare-feu ufw.
activer sudo ufw
Et la configuration du pare-feu ufw est terminée.
Étape 9 - Tester
Ouvrez votre navigateur Web et saisissez le nom de domaine Etherpad ; le mien est : http://pad.hakase.io/
Vous allez maintenant être redirigé vers la connexion sécurisée HTTPS.
Créez un nouveau pad en tapant le nom du pad dans la case et cliquez sur le bouton 'OK'.
Et vous obtiendrez l'éditeur Etherpad comme ci-dessous.
Ensuite, ouvrez l'URL d'administration d'etherpad. Le mien est https://pad.hakase.io/admin/
Le nom d'utilisateur et le mot de passe de l'administrateur vous seront demandés. Tapez votre propre nom d'utilisateur et mot de passe, puis cliquez sur le bouton Connexion.
Et vous obtiendrez la page d'administration Etherpad par défaut ci-dessous.
- Configuration Etherpad settings.json
- Gestionnaire de plugins Etherpad
L'installation d'Etherpad avec MySQL et le proxy inverse Nginx sur Ubuntu 18.04 s'est terminée avec succès.