GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer NodeBB Forum sur Debian 9

NodeBB est un logiciel de forum basé sur Node.js conçu pour le Web moderne. Il est construit sur une base de données MongoDB ou Redis. Il utilise des sockets Web pour des interactions instantanées et des notifications en temps réel. NodeBB dispose de nombreuses fonctionnalités modernes prêtes à l'emploi telles que l'intégration des réseaux sociaux et les discussions en streaming. Des fonctionnalités supplémentaires sont activées grâce à l'utilisation de plug-ins tiers. NodeBB est un projet open source qui peut être trouvé sur Github. Dans ce guide, nous vous guiderons pas à pas tout au long du processus d'installation de NodeBBB sur le système d'exploitation Debian 9 en utilisant Nginx comme proxy inverse, MongoDB comme base de données, et acme.sh et Let's Encrypt pour HTTPS.

Exigences

NodeBB nécessite l'installation du logiciel suivant :

  • Node.js version 6 ou plus
  • Version MongoDB 2.6 ou version supérieure ou version Redis 2.8.9 ou plus
  • Version Nginx 1.3.13 ou plus
  • Git

REMARQUE : L'installation des dépendances de NodeBB peut nécessiter plus de 512 mégaoctets de mémoire système. Il est recommandé d'activer une partition d'échange pour compenser si votre système Linux ne dispose pas de suffisamment de mémoire.

Prérequis

  • Un système Debian 9 en cours d'exécution avec au moins 1 Go de RAM
  • Nom de domaine avec A /AAAA enregistrements configurés.
  • Un utilisateur non root avec des privilèges sudo.

Étapes initiales

Vérifiez votre version Debian :

lsb_release -ds

Configurez le fuseau horaire :

sudo dpkg-reconfigure tzdata

Mettez à jour les packages de votre système d'exploitation (logiciels). Il s'agit d'une première étape importante car elle garantit que vous disposez des dernières mises à jour et correctifs de sécurité pour les packages logiciels par défaut de votre système d'exploitation :

sudo apt update && sudo apt upgrade -y

Installez certains packages essentiels nécessaires à l'administration de base du système d'exploitation Debian :

sudo apt install -y curl wget vim git unzip sudo socat bash-completion apt-transport-https

Étape 1 :Installer Node.js et npm

NodeBB est basé sur Node.js. Nous allons installer la version recommandée pour NodeBB qui est la version 8  au moment d'écrire ces lignes. Sous Linux, vous disposez de quelques options d'installation de Node.js :les binaires Linux (x86/x64), le code source ou via les gestionnaires de packages. Nous utiliserons l'option de gestion des packages qui facilite l'installation et la mise à jour de Node.js.

Téléchargez et installez la dernière version de support à long terme (LTS) de Node.js à partir du dépôt NodeSource :

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Pour compiler et installer des modules complémentaires natifs à partir de npm, vous devrez peut-être également installer des outils de compilation :

sudo apt install -y build-essential

REMARQUE  :npm est distribué avec Node.js - ce qui signifie que lorsque vous téléchargez Node.js, vous obtenez automatiquement npm installé sur votre système.

Vérifiez les versions de Node.js et npm :

node -v && npm -v
# v10.15.1
# 6.4.1

Npm est un projet distinct de Node.js et a tendance à être mis à jour plus fréquemment. Par conséquent, même si vous venez de télécharger Node.js (et donc npm), vous devrez probablement mettre à jour votre npm. Heureusement, npm sait se mettre à jour ! Pour mettre à jour votre npm, saisissez ceci dans votre terminal :

sudo npm install -g [email protected]

Cette commande mettra à jour npm vers la dernière version stable.

Revérifiez la version npm avec :

npm -v
# 6.7.0

Et il devrait renvoyer les derniers numéros de version.

Étape 2 :Installer et configurer MongoDB

NodeBB a besoin d'une base de données pour stocker ses données, et il prend en charge MongoDB et Redis. Dans ce tutoriel, nous avons choisi MongoDB comme moteur de magasin de données. Ainsi, dans les prochaines étapes, nous allons télécharger et installer la base de données MongoDB à partir du référentiel rpm officiel de MongoDB :

Pour installer la version stable du package MongoDB à partir du dépôt officiel MongoDB, exécutez la commande suivante :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org

Vérifiez la version de MongoDB :

mongo --version | head -n 1 && mongod --version | head -n 1

Démarrer et activer (configurez-le pour qu'il démarre au redémarrage ) Service MongoDB :

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Vérifiez l'état du serveur de base de données MongoDB en exécutant :

sudo systemctl status mongod.service
# active (running)

Ensuite, créez une base de données MongoDB et un utilisateur pour NodeBB.

Connectez-vous d'abord au serveur MongoDB.

mongo

Passer à l'admin intégré base de données.

> use admin

Créez un utilisateur administratif.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

REMARQUE : Remplacez l'espace réservé <Enter a secure password> avec votre propre mot de passe sélectionné.

Ajouter une nouvelle base de données appelée nodebb .

> use nodebb

La base de données sera créée et le contexte commuté sur nodebb . Ensuite, créez le nodebb utilisateur avec les privilèges appropriés.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

REMARQUE : Encore une fois, remplacez l'espace réservé <Enter a secure password> avec votre propre mot de passe sélectionné.

Quittez le shell Mongo.

> quit()

Redémarrez MongoDB et vérifiez que l'utilisateur administratif créé précédemment peut se connecter.

sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin

Si tout s'est bien passé, votre MongoDB devrait être installé et préparé pour NodeBB. À l'étape suivante, nous traiterons de l'installation et de la configuration du serveur Web.

Étape 3 - Installer le client acme.sh et obtenir le certificat Lets Encrypt

Cette étape est facultative. Sécuriser votre forum NodeBB avec HTTPS n'est pas nécessaire, mais c'est une bonne pratique pour sécuriser le trafic de votre site. Afin d'obtenir un certificat TLS de Let's Encrypt, nous utiliserons le client acme.sh. Acme.sh est un logiciel shell Unix pur permettant d'obtenir des certificats TLS de Let's Encrypt sans aucune dépendance.

Téléchargez et installez acme.sh :

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Vérifiez la version d'acme.sh :

acme.sh --version
# v2.8.0

Obtenir RSA et ECC/ECDSA certificats pour votre domaine/nom d'hôte :

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si vous voulez de faux certificats pour les tests, vous pouvez ajouter --staging drapeau aux commandes ci-dessus.

Après avoir exécuté les commandes ci-dessus, vos certificats et les clés sera dans :

  • Pour RSA :/home/username/example.com répertoire.
  • Pour ECC/ECDSA :/home/username/example.com_ecc répertoire.

Pour répertorier vos certificats émis, vous pouvez exécuter :

acme.sh --list

Créez un répertoire pour stocker vos certificats. Nous utiliserons /etc/letsencrypt répertoire.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installez/copiez les certificats dans le répertoire /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Tous les certificats seront automatiquement renouvelés tous les 60 jours.

Après avoir obtenu les certificats, quittez l'utilisateur root et revenez à l'utilisateur sudo normal :

exit

Étape 4 :Installer et configurer Nginx

NodeBB peut fonctionner correctement avec de nombreux serveurs Web. Dans ce tutoriel, nous avons sélectionné Nginx.

Installez le package Nginx en exécutant la commande suivante :

sudo apt install -y nginx

Après l'installation, vous pouvez vérifier la version de Nginx en exécutant :

nginx -v

Démarrer et activer (configurez-le pour qu'il démarre au redémarrage ) Service Nginx :

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Vérifiez l'état du serveur Web Nginx en exécutant :

sudo systemctl status nginx.service
# active (running)

NodeBB s'exécute par défaut sur le port 4567 . Pour éviter de taper http://example.com:4567 , nous allons configurer Nginx en tant que proxy inverse pour l'application NodeBB. Chaque requête sur le port 80 ou 443 (si SSL est utilisé ) sera transmis au port 4567 .

Exécutez sudo vim /etc/nginx/conf.d/nodebb.conf et configurez Nginx en tant que proxy inverse HTTPS.

server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

Vérifiez la configuration de Nginx :

sudo nginx -t

Enfin, pour que les modifications prennent effet, nous devons recharger Nginx :

sudo systemctl reload nginx.service

Étape 5 :Installer et configurer NodeBB

Créez un répertoire racine de document dans lequel NodeBB doit résider :

sudo mkdir -p /var/www/nodebb

Accédez au répertoire racine du document :

cd /var/www/nodebb

Changer la propriété du /var/www/nodebb répertoire à votre_utilisateur.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

REMARQUE :  Remplacez your_user dans la commande ci-dessus par votre utilisateur non root que vous auriez dû créer comme prérequis pour ce tutoriel .

Clonez le dernier référentiel NodeBB dans le dossier racine du document :

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Lancez le script d'installation en exécutant l'application avec le setup drapeau. Répondez à chacune des questions :

./nodebb setup

Une fois l'installation de NodeBB terminée, exécutez ./nodebb start pour démarrer manuellement votre serveur NodeBB :

./nodebb start

Après avoir exécuté cette commande, vous devriez pouvoir accéder à votre tout nouveau forum dans votre navigateur Web :

Étape 6 :Exécutez NodeBB en tant que service système

Au démarrage via ./nodebb start , NodeBB ne redémarrera pas automatiquement au redémarrage du système. Pour éviter cela, nous devrons configurer NodeBB en tant que service système.

S'il est en cours d'exécution, arrêtez NodeBB :

./nodebb stop

Créer un nouveau nodebb utilisateur :

sudo useradd nodebb

Changer le propriétaire du /var/www/nodebb répertoire vers nodebb utilisateur :

sudo chown -R nodebb:nodebb /var/www/nodebb

Créer un nodebb.service fichier de configuration de l'unité systemd. Ce fichier unité gérera le démarrage du démon NodeBB. Exécutez sudo vim /etc/systemd/system/nodebb.service et ajoutez le contenu ci-dessous :

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

REMARQUE : Définissez les noms d'utilisateur et les chemins de répertoire en fonction des noms que vous avez choisis.

Activer nodebb.service au redémarrage et démarrer immédiatement nodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Vérifiez le nodebb.service état :

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Toutes nos félicitations! Vous avez installé et déployé avec succès la plate-forme de discussion NodeBB sur le système Debian 9. Vous devriez pouvoir accéder à votre forum sur votre domaine et interagir avec votre forum.

Liens

  • https://nodebb.org/
  • https://docs.nodebb.org/
  • https://github.com/NodeBB/NodeBB

Debian
  1. Comment installer Debian 10 (Buster)

  2. Comment installer Python 3.9 sur Debian 10

  3. Comment installer Node.js et npm sur Debian 9

  4. Comment installer Node.js et npm sur Debian 11

  5. Comment installer NodeBB sur Debian 9

Comment installer Debian 11

Comment installer Node.JS 14 LTS / 16 &NPM sur Debian 11 Bullseye

Comment installer Go sur Debian 10

Comment installer ReactJS sur Debian 11

Comment installer RevealJS sur Ubuntu 20.04 / Debian 11 ?

Comment installer Go sur Debian