Installation NodeBB · 8 min read · Sep 10, 2025

Comment installer NodeBB avec un proxy Nginx sur Debian 12

NodeBB est un logiciel de forum open-source écrit en JavaScript et Node.js. Il utilise MongoDB comme base de données par défaut. NodeBB offre plusieurs fonctionnalités, telles que des notifications en temps réel via WebSocket, une intégration des réseaux sociaux, et également des API REST complètes.

Ce guide vous montrera comment installer NodeBB sur un serveur Debian 12 avec MongoDB comme base de données et Nginx comme proxy inverse.

Prérequis

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

  • Un serveur Debian 12.
  • Un utilisateur non-root avec des privilèges sudo.
  • Un nom de domaine pointant vers une adresse IP de serveur.

Installation des dépendances

Pour commencer le processus, vous allez installer les dépendances pour NodeBB. Cela inclut Node.js, NPM (Node.js Package Manager) et le serveur web Nginx à partir du dépôt Debian. En ce qui concerne MongoDB, vous l’installerez via le dépôt officiel de MongoDB.

Tout d’abord, exécutez la commande suivante pour installer les paquets gnupg et curl sur votre système Debian.

sudo apt install gnupg curl -y

Ajoutez la clé GPG et le dépôt MongoDB avec la commande suivante :

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \  
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Maintenant, mettez à jour votre index de paquets Debian et installez MongoDB, Node.js, NPM, Nginx et Git. Tapez Y pour confirmer l’installation.

sudo apt update  
sudo apt install mongodb-org nodejs npm git nginx

installer les dépendances

Après l’installation, rechargez le gestionnaire systemd avec ce qui suit :

sudo systemctl daemon-reload

Exécutez maintenant la commande ci-dessous pour démarrer, activer et vérifier l’état du service MongoDB.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

La sortie suivante confirme que MongoDB fonctionne.

vérifier mongodb

Ensuite, vérifiez l’état du service Nginx avec la commande ci-dessous. Vous devriez voir que Nginx est activé et fonctionne sur votre système.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

vérifier nginx

Enfin, vérifiez la version de Node.js et NPM avec ce qui suit :

sudo node -v  
sudo npm -v

Vous pouvez voir ci-dessous que Node.js 18 et NPM 9 sont installés.

vérifier node.js et npm

Configuration du serveur MongoDB

Dans cette section, vous allez activer l’authentification MongoDB, créer un nouvel utilisateur administrateur pour MongoDB, puis créer une nouvelle base de données et un utilisateur pour l’installation de NodeBB.

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

mongosh

Exécutez la requête suivante pour passer à la base de données ‘admin’ et créer un nouvel utilisateur administrateur ‘ admin ‘ pour MongoDB. Assurez-vous de changer le mot de passe ‘ MongoDBAdminPass ‘ avec le nouveau mot de passe.

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

Ensuite, créez une nouvelle base de données et un utilisateur ‘ nodebb ‘ avec le mot de passe ‘ NodeBBPassword ‘. Cette base de données et cet utilisateur seront utilisés pour l’installation de NodeBB.

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

Tapez maintenant ‘ quit() ‘ pour quitter MongoDB.

configuration mongodb admin et création d'une nouvelle base de données et utilisateur

Ensuite, ouvrez le fichier de configuration MongoDB ‘ /etc/mongod.conf ‘ avec l’éditeur nano.

sudo nano /etc/mongod.conf

Activez l’authentification MongoDB en ajoutant la configuration suivante.

security:  
authorization: enabled

Enregistrez et fermez le fichier une fois terminé.

Exécutez maintenant la commande ci-dessous pour redémarrer le service MongoDB et appliquer vos nouvelles modifications. Après l’exécution de la commande, l’authentification MongoDB sera activée.

sudo systemctl restart mongod

Pour vous assurer que votre configuration MongoDB est réussie, connectez-vous à MongoDB avec l’utilisateur ‘ nodebb ‘ à la base de données ‘ nodebb ‘. Entrez votre mot de passe lorsque cela est demandé.

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

Après vous être connecté, exécutez la requête ci-dessous pour vérifier votre connexion et quitter MongoDB.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )  
quit()

Dans la sortie suivante, vous pouvez voir que vous êtes authentifié en tant que ‘ nodebb ‘ à la base de données ‘ nodebb ‘.

vérifier la connexion utilisateur mongodb

Installation de NodeBB

Avec la configuration de MongoDB terminée, vous allez télécharger et installer NodeBB. Vous allez créer un utilisateur dédié pour NodeBB, télécharger et installer les dépendances de NodeBB, puis configurer un fichier de service pour votre installation de NodeBB.

Ajoutez un nouvel utilisateur système ‘ nodebb ‘ avec le répertoire personnel par défaut ‘ /opt/nodebb ‘ en utilisant la commande suivante.

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

Téléchargez maintenant la source de NodeBB v3 dans le répertoire ‘ /opt/nodebb ‘ en utilisant git et changez la propriété du répertoire ‘ /opt/nodebb ‘ à 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 configurez votre installation de NodeBB avec la commande ci-dessous.

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb
  • Entrez votre nom de domaine pour NodeBB.
  • Laissez le secret NodeBB par défaut et appuyez sur ENTRER.
  • Tapez non pour désactiver l’utilisation du plugin anonyme.
  • Sélectionnez la base de données comme MongoDB.
  • Entrez la base de données MongoDB avec la chaîne d’URL : mongodb://nodebb:[email protected]:27017/nodebb.
  • Entrez votre utilisateur administrateur et votre adresse e-mail pour NodeBB.
  • Entrez votre mot de passe et répétez.

Après la fin du processus, vous verrez une sortie ‘ Configuration de NodeBB terminée ‘. Vous pouvez également voir la commande pour exécuter NodeBB.

configuration terminée

Ensuite, exécutez la commande ci-dessous pour démarrer ou arrêter NodeBB. Vous pouvez utiliser cela lorsque vous avez besoin de démarrer ou d’arrêter NodeBB manuellement.

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

démarrer et arrêter nodebb

Pour faciliter la gestion de NodeBB, vous allez créer un nouveau fichier de service systemd pour NodeBB. Avec cela, votre installation de NodeBB fonctionnera en arrière-plan et vous pourrez la gérer avec la commande systemctl.

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

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

Insérez la configuration suivante dans le fichier :

[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=/usr/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

Enregistrez et fermez le fichier.

Exécutez maintenant la commande ci-dessous pour recharger le gestionnaire systemd et appliquer le nouveau fichier de service NodeBB.

sudo systemctl daemon-reload

Après cela, démarrez et activez le service ‘ nodebb ‘ avec la commande systemctl suivante.

sudo systemctl start nodebb  
sudo systemctl enable nodebb

Vérifiez le service ‘ nodebb ‘ avec ce qui suit pour vous assurer que le service fonctionne.

sudo systemctl status nodebb

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

configuration du service nodebb systemd

Configuration de Nginx en tant que proxy inverse

À ce stade, NodeBB fonctionne en arrière-plan sur le port ‘4567’. Vous allez maintenant créer un nouveau bloc de serveur Nginx qui sera utilisé comme proxy inverse pour votre forum NodeBB. Assurez-vous que votre nom de domaine pointe vers l’adresse IP de votre serveur.

Créez une nouvelle configuration de bloc de serveur Nginx ‘ /etc/nginx/sites-available/nodebb ‘ avec l’éditeur nano.

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

Ajoutez la configuration suivante pour configurer Nginx en tant que proxy inverse pour NodeBB. 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";  
 }  
}

Lorsque vous avez terminé, enregistrez le fichier et quittez.

Activez maintenant le fichier de bloc de serveur ‘nodebb’ et testez votre syntaxe Nginx avec ce qui suit :

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/  
sudo nginx -t

Si vous avez une syntaxe Nginx correcte, vous verrez une sortie ‘syntax is ok - test is successful’.

configuration nginx

Enfin, exécutez la commande ci-dessous pour redémarrer le service Nginx et appliquer vos modifications.

sudo systemctl restart nginx

Sécuriser NodeBB avec HTTPS

Dans ce guide, vous allez sécuriser NodeBB avec HTTPS via Certbot et Letsencrypt. Si vous utilisez un domaine local, vous pouvez ignorer cela ou vous pouvez également générer des certificats auto-signés.

Installez Certbot et le plugin Nginx Certbot avec la commande apt suivante. Tapez Y pour procéder à l’installation.

sudo apt install certbot python3-certbot-nginx

Exécutez maintenant la commande certbot ci-dessous pour générer les certificats SSL pour votre nom de domaine NodeBB. Assurez-vous de changer à la fois l’adresse e-mail et le nom de domaine avec vos informations.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d forum.hwdomain.i

Après avoir terminé le processus, votre installation de NodeBB devrait être automatiquement sécurisée avec HTTPS. Vos certificats SSL/TLS seront disponibles dans le répertoire ‘ /etc/letsencrypt/live/domain.com ‘.

Accéder à NodeBB

Visitez https://forum.howtoforge.local/ en utilisant votre navigateur web et vous verrez la page d’index par défaut de NodeBB comme suit :

page d'accueil

Depuis la page d’accueil, cliquez sur le menu Connexion et vous verrez la page de connexion de NodeBB. Entrez votre utilisateur administrateur et votre mot de passe, puis cliquez sur Connexion.

page de connexion

Si cela réussit, vous verrez le tableau de bord utilisateur suivant.

tableau de bord utilisateur

Cliquez sur le menu Admin pour accéder au tableau de bord d’administration de NodeBB comme suit :

tableau de bord admin

Conclusion

Félicitations ! Vous avez maintenant installé NodeBB sur le serveur Debian 12. Vous avez NodeBB fonctionnant avec la base de données MongoDB et le proxy inverse Nginx. Vous avez également sécurisé 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.