GNU/Linux >> Tutoriels Linux >  >> Debian

Configurer Etherpad sur Debian

L'article suivant suppose que vous savez déjà ce qu'est Etherpad. Si ce
n'est pas le cas, alors l'article de wikipedia devrait suffire pour une introduction rapide.

Même si le projet Etherpad est bien documenté, il n'est pas toujours facile de
donner un sens à partir de la simple documentation. Cet article vise à condenser certaines des
tutoriels disponibles sur le wiki du projet d'une manière facile à suivre.

Nous couvrirons les éléments suivants :

  • Installer Etherpad en tant que service
  • Activer TLS avec des certificats auto-signés
  • Utiliser mysql base de données
  • Utiliser Nginx avec Etherpad

Installation d'Etherpad

Pour l'instant, Debian 11 ne fournit aucun etherpad paquets. Alors, il va falloir
installez-le manuellement depuis GitHub. Heureusement, les étapes sont vraiment faciles (le
# désigne la racine) :

  1. Créer un utilisateur etherpad et assignez-le à l'etherpad grouper:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Téléchargez et exécutez le script de configuration :

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Installer nodejs . Nous aurons également besoin de git .

    # apt install -y nodejs git
  4. Passer au etherpad user et cloner le dépôt du projet.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Installez les dépendances requises :

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Créez un fichier d'unité systemd dans /etc/systemd/system/ annuaire.

    /etc/systemd/system/etherpad.service :

    [Unit]
    Description=Etherpad Service
    After=syslog.target network.target

    [Service]
    Type=simple
    User=etherpad
    Group=etherpad
    WorkingDirectory=/usr/local/etherpad/src
    Environment=NODE_ENV=production
    ExecStart=/usr/bin/node --experimental-worker /usr/local/etherpad/src/node_modules/ep_etherpad-lite/node/server.js
    [Install]
    WantedBy=multi-user.target

  7. Autoriser les pare-feu, etc. à ouvrir le port 9001 .Ensuite, nous pouvons enfin commencer
    le etherpad un service:

    # systemctl start etherpad

Nous avons encore beaucoup de configurations à faire. Cependant, nous pouvons maintenant afficher l'instance etherpad sur notre navigateur.

Activer TLS avec des certificats auto-signés

Si vous souhaitez que vos certificats soient signés par une autorité de certification (CA), vous pouvez le faire. Cependant, ici, je vais juste tout auto-signer. Je fais référence à l'article wiki qui peut être trouvé ici.

Ouvrez settings.json dans le etherpad répertoire et trouvez la section ssl
(devrait être autour de la ligne 174) et modifiez en conséquence :

"ssl" : {
"key" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.key",
"cert" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.crt"
}

Créez un répertoire /usr/local/etherpad/ssl comme etherpad utilisateur, cd dans ce répertoire et exécutez les commandes suivantes.

Générez la clé du serveur en fournissant la phrase secrète requise :

openssl genrsa -des3 -out epl-server.key 4096

Générez maintenant les certificats :

openssl req -new -key epl-server.key -out epl-server.csr

openssl x509 -req -days 9000 -in epl-server.csr -signkey epl-server.key -out epl-server.crt

Nous allons maintenant utiliser ce fichier pour créer une autre clé. De cette façon, nous n'aurons pas à fournir une phrase de passe à chaque démarrage de notre serveur.

Renommez la clé :

mv epl-server.key epl-server.key.secure

Générez ensuite notre deuxième clé :

openssl rsa -in epl-server.key.secure -out epl-server.key

Nous devons maintenant auto-signer nos certificats. Pour cela nous devons générer une autre clé qui signera notre
epl-server.key . Les étapes sont similaires à ci-dessus.

openssl genrsa -des3 -out own-ca.key 4096

Créez un certificat de signature :

openssl req -new -x509 -days 9000 -key own-ca.key -out own-ca.crt

Cela nous demandera des informations. Ils peuvent être laissés par défaut mais le nom commun (CN) doit être différent du CN de notre propre clé. Nous pouvons donc simplement ajouter "(CA)" au CN.

Signons enfin notre epl-server.key avec le certificat de notre CA.

openssl x509 -req -days 9000 -in epl-server.csr -CA own-ca.crt -CAkey own-ca.key -set_serial 001 -out epl-server.crt

Cela se traduira par un epl-server.crt auto-signé fichier.

Assurez-vous maintenant que les fichiers disposent d'autorisations sécurisées :

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

D'autres fichiers peuvent être déplacés vers un endroit différent ou simplement supprimés. Je vais juste les laisser tels quels pour le moment. Néanmoins, nous pouvons redémarrer l'etherpad service maintenant et nous aurons https fonctionne bien que les navigateurs lancent des avertissements et refusent même de se connecter car nos certificats n'ont pas été fournis avec les informations appropriées.

Utiliser MySQL avec Etherpad

Jusqu'à présent, notre instance Etherpad utilisait le dirtyDB base de données qui ne convient pas uniquement à des fins de test/développement. Pour rendre notre instance parfaitement adaptée à la production, nous allons maintenant passer à mysql . Encore une fois, tous les crédits pour les instructions d'installation vont au wiki du projet. J'ai juste décidé - afin de tout résumer en un seul endroit - de ne pas vous faire sauter sur différents liens.

Alors, installons les packages requis (j'utilise mariadb mais les choses sont fondamentalement les mêmes):

# apt install -y mariadb-server

Exécutez maintenant mysql_secure_installation en tant que root fournissant les paramètres requis.

Après cela, nous pouvons procéder à la configuration de la base de données :

1. Connectez-vous à mysql avec la commande suivante :

# mysql -u root -p

2. Une fois à l'intérieur, créez une base de données :

CREATE DATABASE `etherpad_lite_db`;

Oui, ce sont des backticks autour du nom de la base de données. Et n'oubliez pas le point-virgule 😉

3. Créez un utilisateur de base de données en fournissant votre propre nom d'utilisateur et mot de passe :

CREATE USER '<username>'@'localhost' identified by '<pass>';

4. Modifiez les autorisations du nouvel utilisateur :

GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to 'etherpad'@'localhost';

Ici, etherpad était l'utilisateur que j'ai créé plus tôt.

Notre base de données est créée, nous pouvons donc maintenant exit à partir de l'invite et laissez le etherpad service connaître les réalisations que nous avons faites, c'est-à-dire en modifiant le settings.json fichier.

Recherchez le dbtype avec votre éditeur de texte, il devrait être autour de la ligne 196 et modifiez-le pour qu'il ressemble à ceci :

"dbType": "mysql",
"dbSettings": {
"user" : "etherpad",
"port" : "https://1118798822.rsc.cdn77.org/var/run/mysqld/mysqld.sock",
"password": "<pass>",
"database": "etherpad_lite_db",
"charset" : "utf8mb4"
}

Évidemment, je ne vais pas révéler le mot de passe ici. Ce serait dangereux puisque j'utilise le même pour tous mes comptes (non, pas vraiment, ne réutilisez pas les mots de passe).

Nous pouvons maintenant redémarrer les services :

# systemctl restart mysqld etherpad

Utiliser Nginx avec Etherpad

Configurons maintenant nginx pour transférer le trafic http/s standard vers l'etherpad un service.

Assurons-nous d'avoir nginx installée:

# apt install nginx

Créez un fichier dans /etc/nginx/sites-available/etherpad et que son contenu soit :

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name localhost; # CHANGE THIS!
    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;

    ssl                  on;
    ssl_certificate      /etc/nginx/ssl/epl-server.crt;
    ssl_certificate_key  /etc/nginx/ssl/epl-server.key;

    location / {
        proxy_pass         https://127.0.0.1:9001;
        proxy_buffering    off;
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_http_version  1.1; # apparently 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;
    }
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  localhost; # CHANGE THIS!
    return 301   https://127.0.0.1:9001/;
}

Exécutez maintenant les commandes suivantes :

doas mkdir /etc/nginx/ssl

doas cp /usr/local/etherpad/ssl/epl-server.crt /etc/nginx/ssl/

doas cp /usr/local/etherpad/ssl/epl-server.key /etc/nginx/ssl/

Comme vous pouvez le voir, nous ne faisons que copier les certificats SSL et les clés vers nginx.

Nginx est livré avec un fichier de configuration par défaut qui est activé. Réparons cela.

# rm /etc/nginx/sites-enabled/default

Et activons notre etherpad fichier de configuration pour nginx.

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

Assurez-vous de ne pas avoir fait d'erreur dans la configuration :

# nginx -t

Maintenant, redémarrons nos services une dernière fois :

# systemctl restart etherpad mysqld nginx

Notre configuration est pratiquement terminée. Bien sûr, nous pouvons faire plus, mais je pense que nous en avons fait assez (en plus de changer des choses évidentes comme le fait que nous avons configuré notre propre autorité de certification) pour que cela soit utilisable. Je laisse le lecteur explorer plus loin
les différentes ressources que j'ai liées tout au long de l'article. C'est tout pour le moment. Merci d'avoir lu jusqu'au bout. N'oubliez pas de consulter mes autres articles sur unixcop.com.


Debian
  1. Comment installer Spotify sur Debian 9 Stretch Linux

  2. Configuration du serveur Nginx Reverse Proxy sur Debian Linux

  3. Configuration de la réplication maître-maître avec MySQL sur Debian 8 (Jessie)

  4. Debian – Impossible de démarrer l'installation de Devuan/debian ?

  5. Installer le serveur OpenVPN sur Debian 11/Debian 10

Comment configurer des clés SSH sur Debian 9

Comment configurer des clés SSH sur Debian 10

Comment installer Etherpad sur Debian 11

Examen de Debian 11

Comment configurer des clés SSH sur Debian 11 Linux

Comment configurer WireGuard VPN sur Debian 11