GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Etherpad avec Nginx et SSL sur Debian 11

Etherpad est une alternative gratuite et open source à des services tels que Google Docs et Zoho Writer. Etherpad est un éditeur de texte collaboratif et en temps réel pour votre équipe, il est accessible de n'importe où et à tout moment car Etherpad est un éditeur de texte basé sur le Web.

Tous les changements sur Etherpad se produisent en temps réel, et Etherpad prend également en charge la gestion des versions et le formatage intégré pour les équipes. Etherpad est un éditeur hautement personnalisable avec le support de divers plugins. Et prend également en charge les formats de documents modernes tels que doc, pdf, odt, markdown, etc.

Dans ce didacticiel, vous allez installer et configurer l'éditeur collaboratif en temps réel Etherpad sur Debian 11 Bullseye. Ce didacticiel utilise MariaDB comme base de données et le serveur Web Nginx comme proxy inverse avec le protocole HTTPS sécurisé activé. À la fin, l'Etherpad sera installé et sécurisé grâce au cryptage HTTPS sécurisé.

Prérequis

Pour terminer ce didacticiel, vous devez d'abord remplir les conditions suivantes :

  • Un serveur Debian 11, pour les tests, vous pouvez utiliser 1 Go de RAM. Pour la production, vous pouvez utiliser davantage de ressources, en fonction de votre environnement et de votre utilisation.
  • Un utilisateur non root avec des privilèges root. Vous pouvez éventuellement utiliser l'utilisateur root.
  • Un nom de domaine pour l'installation et assurez-vous qu'il pointe vers l'adresse IP du serveur. Dans cet exemple, nous utiliserons le domaine 'etherpad.example.io '.

Lorsque vous avez toutes ces conditions préalables, passez à la première section pour démarrer l'installation.

Installation des dépendances de packages

Etherpad est une application Web construite sur Node.js. Au moment d'écrire ces lignes, la dernière version d'Etherpad est xxx et nécessite au moins Node.js version 14.x . Dans cette section, vous allez installer certaines dépendances de package, y compris Node.js sur le serveur Debian 11.

1. Tout d'abord, actualisez votre liste d'index de packages, puis installez les dépendances de construction en exécutant la commande suivante.

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

2. Dans ce didacticiel, vous allez installer Node.js à partir du référentiel Nodesource, qui fournit plusieurs versions de Node.js. Ce tutoriel utilise la version Node.js 16.x pour l'installation d'Etherpad.

Maintenant, exécutez la commande suivante pour ajouter le référentiel Node.js à votre système. Cette commande ajoutera automatiquement le référentiel Nodesource pour actualiser votre index de package.

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

3. Ensuite, installez Node.js 16.x à partir du référentiel Nodesource en exécutant la commande ci-dessous.

sudo apt install nodejs -y

4. Une fois l'installation terminée, vérifiez votre version de Node.js à l'aide de la commande suivante.

node --version

Vous recevrez une sortie telle que 'blah blah'.

Dans cette section, vous avez installé les dépendances de packages pour Etherpad et la version 16.x de Node.js à partir du référentiel Nodesource. Ensuite, vous allez installer et configurer la base de données MariaDB.

Installation et configuration de la base de données MariaDB

Dans cette section, vous allez installer la base de données MariaDB sur le serveur Debian 11. Ensuite, vous configurerez le mot de passe root pour MariaDB, et enfin, vous créerez une nouvelle base de données et un nouvel utilisateur pour Etherpad.

1. Par défaut, les packages MariaDB sont disponibles sur le référentiel Debian 11. Exécutez la commande suivante pour l'installer.

sudo apt install mariadb-server -y

2. Lorsque l'installation de MariaDB est terminée, elle s'exécute et s'active automatiquement.

MariaDB fournit un outil de ligne de commande qui vous aide à déployer MariaDB en toute sécurité, y compris la configuration du mot de passe root pour MariaDB. Exécutez la commande 'mysql_secure_installation' comme ci-dessous.

mysql_secure_installation

On vous posera maintenant quelques questions relatives au déploiement de MariaDB et vous serez invité à configurer le mot de passe root.

3. L'utilisateur root par défaut pour mariaDB n'a pas de mot de passe, appuyez sur ENTER .

Entrez le mot de passe actuel pour root (entrez pour aucun) :
OK, mot de passe utilisé avec succès, continuez...

4. Il vous sera maintenant demandé de changer de méthode d'authentification en utilisant 'unix_socket ', tapez 'O ' d'accord.

Passer à l'authentification unix_socket [O/n] O
Activé avec succès !
Rechargement des tables de privilèges..
 ... Réussi !

5. Tapez 'O ' pour configurer un nouveau mot de passe root pour MariaDB. Saisissez ensuite votre mot de passe fort et répétez.

Modifier le mot de passe root ? [O/n] O
Nouveau mot de passe :
Entrez à nouveau le nouveau mot de passe :
Mot de passe mis à jour avec succès !
Rechargement des tables de privilèges..
 ... Réussi !

6. L'installation par défaut de MariaDB est livrée avec un utilisateur anonyme. Tapez 'Y' pour le supprimer.

Supprimer les utilisateurs anonymes ? [O/n] O
 ... Succès !

7. Maintenant, désactivez la connexion à distance pour l'utilisateur root MariaDB. Tapez 'O ' d'accord.

Interdire la connexion root à distance ? [O/n] O
 ... Succès !

8. Ensuite, tapez 'Y ' pour accepter et supprimer la base de données par défaut 'test ' et tous les privilèges en plus.

Supprimer la base de données de test et y accéder ? [O/n] O
 - Suppression de la base de données de test...
 ... Succès !
 - Suppression des privilèges sur la base de données de test...
 ... Succès !

9. Enfin, rechargez les privilèges de la table pour appliquer une nouvelle configuration. Tapez 'O ' pour accepter et appuyez sur ENTER .

Recharger les tables de privilèges maintenant ? [O/n] O
 ... Succès !

Lorsque toute la configuration est terminée, vous recevrez le message de sortie tel que 'Tout est terminé ! ' comme ci-dessous.

Tout est fait ! Si vous avez terminé toutes les étapes ci-dessus, votre installation de MariaDB
devrait maintenant être sécurisée.

Merci d'utiliser MariaDB !

10. Ensuite, exécutez la commande suivante pour vous connecter au shell MariaDB. Vous serez invité à entrer le mot de passe root MariaDB. Saisissez votre mot de passe.

mysql -u root -p

11. Maintenant, créez une nouvelle base de données et un nouvel utilisateur pour l'Etherpad en exécutant les requêtes suivantes. Cet exemple créera une nouvelle base de données 'etherpad_lite_db ' avec l'utilisateur 'etherpaduser ' et le mot de passe 'StrongPasswordEtherpadDB '. Assurez-vous de changer le mot de passe.

CREATE DATABASE etherpad_lite_db ;
CREATE USER [email protected] IDENTIFIED BY 'StrongPasswordEtherpadDB' ;
ACCORDER CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to [email protected] ;

12. Après cela, rechargez tous les privilèges des tables pour appliquer une nouvelle configuration, puis exécutez la requête 'exit' pour vous déconnecter du shell mariaDB.

PRIVILÈGES FLUSH ;
SORTIR

Dans cette section, vous avez terminé l'installation et la configuration de la base de données MariaDB sur Debian 11. De plus, vous avez créé la base de données et l'utilisateur pour l'Etherpad. Ensuite, vous allez télécharger le code source Etherpad et l'installer.

Installation et configuration d'Etherpad

Dans cette section, vous allez installer l'Etherpad à partir du code source, puis le configurer avec MariaDB comme base de données et créer un nouveau fichier systemd pour l'Etherpad. Au final, l'Etherpad fonctionnera en tant que service systemd.

1. Avant de télécharger le code source d'Etherpad, vous allez créer un nouvel utilisateur 'etherpad ' sur votre système. Cet utilisateur sera utilisé pour exécuter le script d'installation Etherpad et exécuter le service Etherpad.

Exécutez le 'adduser ' ci-dessous pour créer un nouvel utilisateur 'etherpad '. Définissez également le répertoire personnel sur '/opt/etherpad-lite '. Ce répertoire sera utilisé pour stocker toutes les sources Etherpad.

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

2. Maintenant, accédez au répertoire '/opt ' et clonez la source Etherpad à l'aide de la commande git.

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

3. Après cela, changez la propriété du répertoire 'etherpad-lite' en l'utilisateur 'etherpad ' et groupe 'etherpad '.

sudo chown -R etherpad:etherpad etherpad-lite

4. Naviguez maintenant vers le répertoire 'etherpad-lite/ ' et installez toutes les dépendances Node.js à l'aide du script d'installation 'installDeps.sh' comme ci-dessous. Le script d'installation 'installDeps.sh ' s'exécutera en tant qu'utilisateur non root 'etherpad'.

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad

Attendez que l'installation de toutes les dépendances de packages soit terminée.

Ensuite, modifiez le fichier 'settings.json ' pour configurer votre installation Etherpad. Vous pouvez utiliser un éditeur nano pour modifier ce fichier ou utiliser votre éditeur préféré.

nano settings.json

En haut de la ligne, remplacez le titre par votre propre titre. Cet exemple utilise le titre 'Entherpad Johndoe '.

  "title":"Etherpad Johndoe",

Dans ce tutoriel, l'Etherpad fonctionnera sous le proxy inverse Nginx. Et c'est bon pour la sécurité d'exécuter l'Etherpad sur l'hôte local. Maintenant, changez le 'ip :' configuration sur '127.0.0.1' . Avec cette configuration, l'Etherpad fonctionnera uniquement sur l'hôte local.

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

Par défaut, l'Etherpad utilise SQLite comme base de données. Commentez toutes ces lignes pour les désactiver.

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

Maintenant, entrez la configuration de la base de données MariaDB ci-dessous. Et assurez-vous de changer le nom, l'utilisateur et le mot de passe de la base de données.

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

Enregistrez et quittez le fichier.

Ensuite, créez un nouveau fichier de service systemd 'etherpad.service ' dans le répertoire '/etc/systemd/system '. Ce fichier contiendra tous les détails de configuration dont Etherpad a besoin pour fonctionner correctement sur le serveur. Créez-le à l'aide d'un éditeur nano.

sudo nano /etc/systemd/system/etherpad.service

Ajoutez la configuration suivante dans le fichier.

[Unité]
Description=Etherpad-lite, l'éditeur collaboratif.
Après=syslog.target network.target

[Service]
Type=simple
Utilisateur=etherpad
Groupe=etherpad
Répertoire de travail=/opt/etherpad-lite
Environnement=NODE_ENV=production
ExecStart=/usr/bin/node --experimental -worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
# utilisez mysql plus un settings.json complet pour éviter le temps d'attente du service, en planifiant le redémarrage.
Redémarrez =always

[Install]
WantedBy=multi-user.target

Ce fichier de service sera exécuté en tant qu'utilisateur et groupe "etherpad". Et vous remarquerez l'option 'Environment=NODE_ENV=production ', ce qui signifie que l'application Etherpad sera exécutée sur l'environnement de production. Le 'ExecStart=.. ' est la commande par défaut pour exécuter l'application Etherpad.

Enregistrez et fermez le fichier.

Maintenant, rechargez le gestionnaire systemd pour appliquer un nouveau fichier de service.

sudo systemctl daemon-reload

Après cela, démarrez et activez le service etherpad, puis vérifiez son état en exécutant la commande suivante.

sudo systemctl enable --now etherpad
sudo systemctl status etherpad

Vous recevrez une sortie similaire à la capture d'écran ci-dessous. Le service etherpad est maintenant 'actif (en cours d'exécution) ', il démarre automatiquement au démarrage du système et s'exécute sur l'hôte local avec le port par défaut '9001 '.

À ce stade, vous avez terminé l'installation d'Etherpad. Ensuite, vous allez installer Nginx et le configurer en tant que proxy inverse pour l'application Etherpad.

Installation et configuration de Nginx

Pour l'environnement de production, il est toujours recommandé de mettre un reverse proxy devant votre application. Cela augmentera les performances et la sécurité de votre application. Dans cette section, vous allez installer et configurer le serveur Web Nginx en tant que proxy inverse. Au final, l'Etherpad fonctionnera avec votre nom de domaine et sera sécurisé avec le protocole HTTPS.

1. Dans un premier temps, installez les packages Nginx en exécutant la commande ci-dessous.

sudo apt install nginx -y

2. Maintenant, si vous avez le pare-feu UFW sur votre système Debian. Autoriser l'accès public aux ports HTTP et HTTPS (80 et 443) en exécutant le 'ufw ' ci-dessous.

sudo ufw allow "Nginx Full"

Vous recevrez la sortie suivante.

Règle ajoutée
Règle ajoutée (v6)

3. Ensuite, créez un nouveau fichier d'hôte virtuel Nginx 'etherpad ' dans le répertoire '/etc/nginx/sites-available/ '. Créez-le à l'aide d'un éditeur nano ou de votre éditeur préféré.

sudo nano /etc/nginx/sites-available/etherpad

Copiez et collez la configuration suivante dans le fichier. Remplacez également votre nom de domaine et le chemin de votre certificat SSL par vos propres informations. Pour les certificats SSL, vous pouvez générer librement des certificats SSL à l'aide de Letsencrypt.

# force HTTPS
server {
    listen       80 ;
    listen       [::]:80;
    nom_serveur  etherpad.example.io ;
    return 301   https ://$host$request_uri ;
}

# nous sommes dans le contexte http ici
map $http_upgrade $connection_upgrade {
    mise à niveau par défaut ;
''      close ;
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  etherpad.example .io ;

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

    ssl_certificate      /etc/letsencrypt/live/etherpad.example.io/fullchain.pem ;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.io/privkey.pem ;

    ssl_session_timeout 5 m ;

    ssl_protocols TLSv1.2 ;
    ssl_prefer_server_ciphers on ;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
    EECDH+ ECDSA+SHA256 CEE DH+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://127.0.0.1:9001 ;
        proxy_buffering    désactivé ; # attention, cette ligne ne remplace aucun proxy_buffering défini dans un conf.d/file.conf
        proxy_set_header   Host $host ;
        proxy_pass_header  Server ;

        # Notez que vous pouvez également transmettre ces en-têtes, etc.
        proxy_set_header    X-Real-IP $remote_addr ; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
        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_http_version  1.1 ; # recommandé avec les connexions keepalive

        # Proxy WebSocket - de https://nginx.org/en/docs/http/websocket.html
        proxy_set_header  Mettre à niveau $http_upgrade ;
        proxy_set_header  Connexion $connection_upgrade ;
    }
}

Ce fichier d'hôte virtuel Nginx redirigera automatiquement tout trafic HTTP vers le protocole HTTPS sécurisé. Pour le débogage en cas d'erreur, consultez le fichier journal '/var/log/nginx/eplite.error.log '. Toutes les demandes des clients seront envoyées au backend 'proxy_pass ' l'application Etherpad qui s'exécute sur le port localhost 9001.

4. Enregistrez et fermez le fichier, puis activez la configuration de l'hôte virtuel en créant un lien symbolique du fichier 'etherpad ' dans le répertoire '/etc/nginx/sites-enabled '.

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

5. Ensuite, exécutez la commande 'nginx -t' pour vérifier la configuration nginx. Cette commande vérifiera toute erreur de syntaxe sur la configuration.

sudo nginx -t

Vous recevrez la sortie comme ci-dessous. Le message de sortie 'la syntaxe est correcte ' signifie que vous n'avez aucune erreur.

nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est correcte
nginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussi.

6. Enfin, redémarrez le service Nginx pour appliquer un nouveau fichier d'hôte virtuel Nginx.

sudo systemctl redémarrer nginx

Dans cette section, vous avez terminé l'installation et la configuration de Nginx en tant que proxy inverse pour l'application Etherpad. Votre Etherpad est désormais disponible sur http://etherpad.example.io.

Vérifier l'installation d'Etherpad

1. Ouvrez votre navigateur Web et tapez le nom de domaine 'http://etherpad.example.io/' sur l'adresse. Et vous serez automatiquement redirigé vers la connexion HTTPS sécurisée comme ci-dessous.

2. Pour créer un nouveau pad, saisissez le nom du pad dans la colonne et cliquez sur le bouton 'OK '.

Vous verrez maintenant l'éditeur de collaboration en temps réel Etherpad comme ci-dessous.

Conclusion

Dans ce didacticiel, vous avez installé et configuré l'éditeur collaboratif en temps réel Etherpad sur le serveur Debian 11. De plus, vous avez installé et configuré Nginx en tant que proxy inverse pour l'application Etherpad.

Vous êtes maintenant prêt à utiliser etherpad comme éditeur de collaboration dans votre équipe. Pour plus d'informations sur Etherpad, consultez la documentation officielle d'Etherpad.


Debian
  1. Comment installer Phorum avec Nginx sur Debian 9

  2. Comment installer Textpattern CMS avec Nginx sur Debian 10

  3. Comment installer et sécuriser MariaDB sur Debian 11

  4. Comment installer et configurer Mariadb 10 dans Debian 11

  5. Comment installer WonderCMS avec Nginx sur Debian 11

Comment installer Nextcloud 10 avec Nginx sur Debian 8

Comment installer Drupal avec Nginx et Let's Encrypt SSL sur Debian 11

Comment installer Joomla avec Nginx et Let's Encrypt SSL sur Debian 11

Comment installer WordPress avec Nginx et Let's Encrypt SSL sur Debian 11

Comment installer phpBB avec LEMP (Nginx, MariaDB et PHP) sur Debian 11 Bullseye

Comment installer phpMyAdmin avec Nginx sur Debian 11