Installation NodeBB · 8 min read · Sep 09, 2025

Comment installer NodeBB avec MongoDB et Nginx Proxy sur AlmaLinux 9

NodeBB est un logiciel de forum open-source basé sur Node.js qui fournit une solution moderne et réactive pour les communautés en ligne. Fonctionnant sur Ubuntu Linux, NodeBB tire parti de la robustesse et de la flexibilité du système d’exploitation pour offrir des performances élevées et une évolutivité. Il utilise une combinaison de MongoDB et Redis pour la gestion de la base de données, ce qui lui permet de gérer efficacement de grands volumes de contenu généré par les utilisateurs.

NodeBB est connu pour ses notifications en temps réel, son intégration transparente avec diverses plateformes de médias sociaux et son vaste écosystème de plugins, permettant aux administrateurs de personnaliser leurs forums pour répondre à des besoins spécifiques. De plus, son design mobile-first garantit une expérience utilisateur cohérente et engageante sur tous les appareils. La stabilité et les fonctionnalités de sécurité d’Ubuntu complètent NodeBB, en faisant un choix idéal pour héberger et gérer des communautés en ligne dynamiques.

Ce guide fournira des instructions étape par étape pour installer NodeBB sur un serveur Alma Linux 9. Vous utiliserez MongoDB comme base de données, Nginx comme proxy inverse, puis sécuriserez NodeBB avec HTTPS via Certbot et Letsencrypt.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Un serveur Alma Linux 9
  • Un utilisateur non-root avec des privilèges d’administrateur
  • Un nom de domaine pointant vers l’adresse IP du serveur
  • Un SELinux avec un statut permissif et activé

Installer les dépendances

NodeBB est un logiciel de forum open-source basé sur Node.js. Pour installer NodeBB, vous devez vous assurer que les packages suivants sont installés, y compris :

  • Outils système tels que “Development Tools”, Git et ImageMagick
  • Node.js 18 ou supérieur et NPM (Node Package Manager)
  • Serveur de base de données NoSQL MongoDB
  • Serveur web Nginx en tant que proxy inverse

Dans cette section, vous installerez ces dépendances sur le serveur Alma Linux 9.

Tout d’abord, exécutez la commande ci-dessous pour activer le dépôt CRB (CodeReadyBuild) d’Alma Linux et installer le dépôt EPEL.

sudo crb enable  
sudo dnf install epel-release -y

Ensuite, créez un nouveau fichier de dépôt ‘ /etc/yum.repos.d/mongodb-org-7.0.repo ‘ avec l’éditeur ‘ nano ‘.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

Entrez la configuration suivante dans le fichier :

[mongodb-org-7.0]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://pgp.mongodb.com/server-7.0.asc

Enregistrez le fichier et quittez l’éditeur une fois terminé.

Maintenant, exécutez la commande ci-dessous pour activer le dépôt Node.js 18 pour AlmaLinux.

sudo dnf module enable nodejs:18 -y

install deps

Ensuite, exécutez la commande ‘ dnf ‘ suivante pour installer les ‘ Development Tools ‘, le serveur MongoDB, Node.js, NPM, Git et ImageMagick.

sudo dnf group install "Development Tools" -y  
sudo dnf install nodejs npm git ImageMagick mongodb-org -y

installing packages

Après la fin de l’installation, démarrez et activez le service ‘ mongod ‘ avec la commande suivante.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

Vous pouvez voir ci-dessous que le serveur MongoDB fonctionne et est activé.

enable mongodb

Enfin, vérifiez la version de Node.js avec la commande ci-dessous. Vous devriez voir que Node.js 18 est installé sur le serveur Alma Linux.

node --version  
npm --version

Configuration du serveur MongoDB et de la base de données pour NodeBB

Avec les dépendances installées, vous sécuriserez le serveur MongoDB en activant l’authentification par mot de passe et en configurant le mot de passe administrateur de MongoDB. Après cela, vous créerez également une nouvelle base de données MongoDB et un utilisateur pour l’installation de NodeBB.

Connectez-vous au serveur MongoDB avec la commande ‘ mongosh ‘ ci-dessous.

mongosh

login mongodb

Une fois connecté, passez à la base de données ‘ admin ‘ et exécutez la requête ci-dessous pour configurer un mot de passe administrateur pour MongoDB. Assurez-vous de changer ‘ MongoDBAdminPass ‘ par votre combinaison de mot de passe.

use admin  
db.createUser( { user: "admin", pwd: "MongoDBAdminPass", roles: [ { role: "root", db: "admin" } ] } )

Maintenant, exécutez les requêtes suivantes pour créer une nouvelle base de données et un utilisateur ‘ nodebb ‘ avec le mot de passe ‘NodeBBPassword’. Vous pouvez ajuster les détails de la base de données suivants selon vos besoins.

use nodebb  
db.createUser( { user: "nodebb", pwd: "NodeBBPassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

Tapez ‘ quit() ‘ pour quitter le serveur MongoDB.

create admin user and setup database

Après avoir configuré le mot de passe administrateur pour MongoDB, activons l’authentification MongoDB.

Ouvrez le fichier de configuration par défaut de MongoDB ‘ /etc/mongod.conf ‘ avec l’éditeur ‘ nano ‘.

sudo nano /etc/mongod.conf

Pour activer l’authentification MongoDB, décommentez la ligne ‘ security ‘ et ajoutez ‘ authorization: enabled ‘ comme suit :

security:  
authorization: enabled

Enregistrez et quittez le fichier une fois terminé.

Maintenant, exécutez la commande ‘ systemctl ‘ suivante pour redémarrer le serveur MongoDB et appliquer vos modifications. L’authentification MongoDB devrait maintenant être activée.

sudo systemctl restart mongod

Pour vérifier la configuration, exécutez la commande ‘ mongosh ‘ ci-dessous pour vous connecter à MongoDB en utilisant l’utilisateur ‘ nodebb ‘. Entrez le mot de passe pour l’utilisateur ‘ nodebb ‘.

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

Installation de NodeBB

Maintenant que vous avez configuré le serveur MongoDB, vous êtes prêt à installer NodeBB sur le serveur Alma Linux.

Ajoutez un nouvel utilisateur et groupe système ‘ nodebb ‘ avec la commande suivante.

sudo adduser -r -M -d /opt/nodebb -U nodebb

Téléchargez le code source de NodeBB dans le répertoire ‘ /opt/nodebb ‘ et changez la propriété à l’utilisateur ‘ nodebb ‘.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb  
sudo chown -R nodebb:nodebb /opt/nodebb

Allez dans le répertoire ‘ /opt/nodebb ‘ et exécutez le script de configuration de NodeBB comme suit :

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb

Ici, vous serez interrogé sur certaines configurations de NodeBB :

  • Entrez votre nom de domaine pour NodeBB, tel que https://forum.howtoforge.local.
  • Appuyez sur ENTER sur la configuration secrète de NodeBB. Laissez-le par défaut.
  • Entrez non pour désactiver l’accès anonyme à NodeBB.
  • Sélectionnez MongoDB comme base de données.
  • Entrez les détails de votre base de données MongoDB au format comme mongodb://nodebb: [email protected]:27017/nodebb.
  • Entrez le nouvel utilisateur administrateur et l’adresse e-mail pour NodeBB.
  • Entrez le mot de passe pour votre utilisateur administrateur NodeBB et répétez.

Après la fin du processus, vous verrez une sortie comme celle-ci :

login to mongodb

Vous pouvez maintenant démarrer ou arrêter NodeBB manuellement en exécutant le script ‘ nodebb ‘ comme suit :

sudo su -s /bin/bash -c "./nodebb start" nodebb  
sudo su -s /bin/bash -c "./nodebb stop" nodebb

nodebb start and stop

Exécution de NodeBB en tant que service systemd

Pour gérer NodeBB plus facilement, vous pouvez contrôler le processus NodeBB à l’aide de l’utilitaire ‘ systemctl ‘. Pour ce faire, vous devez créer un nouveau fichier de service systemd pour exécuter NodeBB.

Créez un nouveau fichier de service systemd ‘ /etc/systemd/system/nodebb.service ‘ avec l’éditeur ‘ nano ‘.

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

Entrez la configuration suivante pour exécuter NodeBB en tant que service systemd.

[Unit]  
Description=NodeBB  
Documentation=https://docs.nodebb.org  
After=system.slice multi-user.target mongod.service  
  
[Service]  
Type=simple  
User=nodebb  
  
StandardError=syslog  
SyslogIdentifier=nodebb  
  
Environment=NODE_ENV=production  
WorkingDirectory=/opt/nodebb  
ExecStart=/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

Enregistrez le fichier et quittez l’éditeur.

Rechargez le gestionnaire systemd avec la commande ‘ systemctl ‘ ci-dessous.

sudo systemctl daemon-reload

Enfin, démarrez et activez le service ‘ nodebb ‘, puis vérifiez-le pour vous assurer que le service fonctionne :

sudo systemctl enable --now nodebb  
sudo systemctl status nodebb

Vous pouvez voir ci-dessous que NodeBB fonctionne en arrière-plan en tant que service systemd.

setup nodebb systemd

Configuration de Nginx en tant que proxy inverse

Maintenant que NodeBB fonctionne en arrière-plan en tant que service, installons Nginx et créons un nouveau bloc de serveur qui sera utilisé comme proxy inverse pour NodeBB.

Tout d’abord, exécutez la commande ‘ dnf ‘ ci-dessous pour installer le serveur web Nginx.

sudo dnf install nginx -y

install nginx

Maintenant, créez une nouvelle configuration Nginx ‘ /etc/nginx/conf.d/nodebb.conf ‘ avec l’éditeur ‘ nano ‘.

sudo nano /etc/nginx/conf.d/nodebb.conf

Entrez la configuration suivante et assurez-vous de changer le paramètre ‘ server_name ‘ avec votre nom de domaine.

server {  
listen 80;  
  
server_name forum.howtoforge.local;  
  
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;  
  
# Support Socket.IO  
proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
}  
}

Une fois terminé, enregistrez le fichier et quittez l’éditeur.

Ensuite, exécutez la commande ci-dessous pour vérifier la syntaxe de Nginx. Si cela réussit, vous aurez une sortie ‘ syntax is ok - test is successful ‘.

sudo nginx -t

setup vhost

Enfin, exécutez la commande ‘ systemctl ‘ ci-dessous pour démarrer, activer et vérifier le serveur web Nginx.

sudo systemctl enable --now nginx  
sudo systemctl status nginx

Vous pouvez voir ci-dessous que le serveur web Nginx fonctionne.

check nginx

Sécuriser NodeBB avec HTTPS

À ce stade, votre installation de NodeBB est prête. Mais si vous êtes sur le nom de domaine public, vous devez sécuriser NodeBB avec HTTPS. Dans cette section, vous configurerez HTTPS pour NodeBB avec Certbot et Letsencrypt.

Installez Certbot et le plugin Certbot Nginx avec la commande suivante :

sudo dnf install certbot python3-certbot-nginx -y

Maintenant, exécutez la commande ‘ certbot ‘ ci-dessous pour sécuriser votre installation de NodeBB avec HTTPS. Assurez-vous de changer le nom de domaine et l’adresse e-mail dans cette commande.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d forum.howtoforge.local

Après la fin du processus, vos certificats SSL/TLS seront disponibles dans le répertoire ‘ /etc/letsencrypt/live/domain.com ‘ et votre installation de NodeBB devrait être sécurisée avec HTTPS.

Accéder à NodeBB

Ouvrez votre navigateur web et visitez le nom de domaine de NodeBB tel que https://forum.howtoforge.local. Si votre installation est réussie, vous verrez la page d’accueil de NodeBB suivante.

nodebb

Conclusion

Félicitations ! Vous avez terminé l’installation de NodeBB sur le serveur Alma Linux 9. Vous avez le forum NodeBB opérationnel avec le serveur MongoDB et Nginx en tant que proxy inverse. Vous avez également sécurisé l’installation de NodeBB avec HTTPS via Certbot et Letsencrypt.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.