Installation Forum · 12 min read · Oct 14, 2025
Comment installer le forum NodeBB sur Ubuntu 22.04

NodeBB est un logiciel de forum moderne alimenté par le framework Node.js. Il utilise MongoDB, PostgreSQL ou Redis pour stocker les données. Il utilise des web sockets pour des notifications en temps réel et des interactions instantanées. Il possède des fonctionnalités modernes telles que l’intégration des réseaux sociaux, le support des plugins, la réactivité mobile et des API REST complètes en lecture/écriture.
NodeBB est disponible à la fois en tant que projet open-source auto-hébergé et en tant que service cloud. Dans ce tutoriel, vous apprendrez à installer le forum NodeBB en utilisant Nginx sur un serveur Ubuntu 22.04. Ubuntu 22.04 ne prend pas en charge MongoDB officiellement ; par conséquent, nous utiliserons PostgreSQL pour stocker les données.
Prérequis
- Un serveur exécutant Ubuntu 22.04 avec un minimum de 1 Go de RAM.
- Un utilisateur non-root avec des privilèges sudo.
- Le pare-feu uncomplicated (UFW) est activé et en cours d’exécution.
- Un nom de domaine complètement qualifié (FQDN) pointant vers le serveur comme,
forum.example.com. - Tout est à jour.
$ sudo apt update && sudo apt upgrade
Étape 1 - Configurer le pare-feu
Avant d’installer des paquets, la première étape consiste à configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.
Vérifiez l’état du pare-feu.
$ sudo ufw status
Vous devriez voir quelque chose comme ceci.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Autorisez les ports HTTP et HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Vérifiez à nouveau l’état pour confirmer.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Étape 2 - Installer PostgreSQL
La première étape pour installer PostgreSQL consiste à ajouter sa clé GPG.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Ajoutez le dépôt APT à votre liste de sources.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Mettez à jour le dépôt système.
$ sudo apt update
Maintenant, vous pouvez installer PostgreSQL.
$ sudo apt install postgresql postgresql-contrib
Vérifiez l’état du service PostgreSQL.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2022-09-10 06:25:11 UTC; 13s ago
Process: 12083 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 12083 (code=exited, status=0/SUCCESS)
CPU: 1ms
Sep 10 06:25:11 nodebb systemd[1]: Starting PostgreSQL RDBMS...
Sep 10 06:25:11 nodebb systemd[1]: Finished PostgreSQL RDBMS.
Étape 3 - Configurer PostgreSQL
Nous devons définir un mot de passe pour l’utilisateur administratif par défaut de Postgres postgres. Tout d’abord, connectez-vous à la shell Postgres.
$ sudo -u postgres psql
Entrez la commande suivante pour changer le mot de passe.
postgres=# \password postgres
Vous serez invité à entrer un nouveau mot de passe.
Enter new password for user "postgres":
Enter it again:
Créez un nouvel utilisateur pour NodeBB.
postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';
Créez une nouvelle base de données pour NodeBB.
postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;
Tapez \q pour quitter la shell.
postgres=# \q
Étape 4 - Installer Node.js
Puisque le forum NodeBB est écrit en utilisant le framework Node.js, nous devons l’installer pour le faire fonctionner.
Émettez les commandes suivantes pour installer la version LTS (v16.x) de Node.js.
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejs
Vérifiez l’installation de Node.js et NPM.
$ node -v
v16.17.0
$ npm -v
8.15.0
Étape 5 - Installer Git
Avant de procéder à l’installation de NodeBB, nous devons installer Git. Exécutez la commande suivante pour installer Git.
$ sudo apt install git
Exécutez les commandes suivantes pour effectuer la configuration initiale de Git.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Étape 6 - Installer NodeBB
Il n’est pas conseillé d’exécuter NodeBB en tant qu’utilisateur root. Créez un utilisateur système non privilégié sans mot de passe.
$ sudo adduser nodebb --disabled-password
Passez toutes les autres options.
Créez le répertoire où votre forum NodeBB sera hébergé.
$ sudo mkdir /var/www/html/nodebb -p
Changez la propriété du dossier à l’utilisateur nouvellement créé.
$ sudo chown -R nodebb:nodebb /var/www/html/nodebb
Connectez-vous à l’utilisateur nouvellement créé.
$ sudo su - nodebb
Passez au répertoire d’installation de NodeBB.
$ cd /var/www/html/nodebb
Pour installer NodeBB, nous devons d’abord cloner son dépôt GitHub.
Clonez NodeBB dans le répertoire /var/www/nodebb. Le point à la fin de la commande fait référence au répertoire actuel.
$ git clone -b v2.x https://github.com/NodeBB/NodeBB.git .
Ici, nous avons cloné la branche v2.x de NodeBB qui contient la dernière version stable de NodeBB. Vous pouvez trouver la dernière branche stable sur la page des Dernières Branches de NodeBB.
NodeBB est livré avec un utilitaire en ligne de commande. Utilisez la commande suivante pour installer NodeBB.
$ ./nodebb setup
Vous pouvez appuyer sur entrer pour choisir la valeur par défaut.
2022-09-10T10:10:27.957Z [2633] - info: NodeBB Setup Triggered via Command Line
Welcome to NodeBB v2.5.2!
This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
Press enter to accept the default setting (shown in brackets).
URL used to access this NodeBB (http://localhost:4567) https://forum.example.com
Please enter a NodeBB secret (44fd62bc-5047-4414-a4ca-83105740b624)
Would you like to submit anonymous plugin usage to nbbpm? (yes) no
Which database to use (mongo) postgres
2022-09-10T10:10:43.237Z [2633] - info:
Now configuring postgres database:
Host IP or address of your PostgreSQL instance (127.0.0.1)
Host port of your PostgreSQL instance (5432)
PostgreSQL username nbbuser
Password of your PostgreSQL database
PostgreSQL database name (nodebb) nodebbdb
Enable SSL for PostgreSQL database access (false)
........
Pour la valeur de l’URL utilisée pour accéder à ce NodeBB, choisissez l’URL finale à laquelle vous souhaitez accéder au forum. Si vous accédez au forum via l’IP de votre serveur, entrez cela ou entrez le domaine complet du forum. Ici, nous entrerons https://forum.example.com. Choisissez non comme réponse à la question concernant la soumission de l’utilisation anonyme des plugins. Tapez postgres comme type de base de données.
Ensuite, choisissez l’IP et le port par défaut en appuyant sur entrer et entrez votre nom d’utilisateur PostgreSQL qui est lorsque vous entrez nbbuser et le mot de passe que vous avez choisi précédemment pour cet utilisateur lors de la configuration de MongoDB. Votre base de données nodebbdb devrait être choisie.
Vous serez également invité à créer un utilisateur administrateur et ses détails.
.....
2022-09-10T10:11:14.121Z [2633] - warn: No administrators have been detected, running initial user setup
Administrator username navjot
Administrator email address [email protected]
Password
Confirm Password
.....
....
2022-09-10T10:14:28.160Z [2633] - info: [build] Asset compilation successful. Completed in 118.777sec.
=================================================================================================================================================================
NodeBB Setup Completed. Run "./nodebb start" to manually start your NodeBB server.
Une fois la configuration terminée, exécutez la commande suivante pour démarrer NodeBB.
$ ./nodebb start
Starting NodeBB
"./nodebb stop" to stop the NodeBB server
"./nodebb log" to view server output
"./nodebb help" for more commands
Quittez l’utilisateur NodeBB.
$ exit
Étape 7 - Exécuter NodeBB en tant que service système
Le service NodeBB ne fonctionnera pas après un redémarrage du système. Pour éviter de démarrer NodeBB à chaque fois, nous devons l’installer en tant que service système.
Arrêtez d’abord le service NodeBB. Passez au répertoire NodeBB, puis exécutez la commande directement en utilisant la commande sudo -u.
$ cd /var/www/html/nodebb
$ sudo -u nodebb ./nodebb stop
Exécutez la commande suivante pour créer et éditer le fichier de configuration d’unité nodebb.service systemd.
$ sudo nano /etc/systemd/system/nodebb.service
Collez le code suivant dans l’éditeur.
[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target postgresql.service
[Service]
Type=simple
User=nodebb
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/html/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always
[Install]
WantedBy=multi-user.target
Ici, nous avons choisi le nom d’utilisateur comme nodebb que nous avons créé à l’étape 6 et le chemin que nous avons choisi pour installer NodeBB.
Activez le service NodeBB.
$ sudo systemctl enable nodebb
Démarrez le service NodeBB.
$ sudo systemctl start nodebb
Vérifiez l’état du service.
$ sudo systemctl status nodebb
? nodebb.service - NodeBB
Loaded: loaded (/etc/systemd/system/nodebb.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-11 21:41:07 UTC; 2s ago
Docs: https://docs.nodebb.org
Main PID: 26844 (node)
Tasks: 18 (limit: 2237)
Memory: 94.1M
CPU: 2.114s
CGroup: /system.slice/nodebb.service
??26844 node loader.js --no-silent --no-daemon
??26855 /usr/bin/node /var/www/html/nodebb/app.js
Sep 11 21:41:07 forum systemd[1]: Started NodeBB.
Sep 11 21:41:07 forum nodebb[26844]: NodeBB v2.5.2 Copyright (C) 2013-2022 NodeBB Inc.
Sep 11 21:41:07 forum nodebb[26844]: This program comes with ABSOLUTELY NO WARRANTY.
Sep 11 21:41:07 forum nodebb[26844]: This is free software, and you are welcome to redistribute it under certain conditions.
Sep 11 21:41:07 forum nodebb[26844]: For the full license, please visit: http://www.gnu.org/copyleft/gpl.html
Sep 11 21:41:07 forum nodebb[26844]: Clustering enabled: Spinning up 1 process(es).
Sep 11 21:41:08 forum nodebb[26855]: 2022-09-11T21:41:08.002Z [4567/26855] - info: Initializing NodeBB v2.5.2 https://forum.example.com
Étape 8 - Installer Nginx
Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.
Importez la clé de signature de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ajoutez le dépôt pour la version stable de Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mettez à jour les dépôts système.
$ sudo apt update
Installez Nginx.
$ sudo apt install nginx
Vérifiez l’installation.
$ nginx -v
nginx version: nginx/1.22.0
Démarrez le serveur Nginx.
$ sudo systemctl start nginx
Étape 9 - Installer SSL
Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.
Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.
$ sudo snap install core
$ sudo snap refresh core
Installez Certbot.
$ sudo snap install --classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Exécutez la commande suivante pour générer un certificat SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/forum.example.com sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Pour vérifier si le renouvellement SSL fonctionne correctement, effectuez un essai à sec du processus.
$ sudo certbot renew --dry-run
Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.
Étape 10 - Configurer Nginx
Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Créez et ouvrez le fichier /etc/nginx/conf.d/nodebb.conf pour l’éditer.
$ sudo nano /etc/nginx/conf.d/nodebb.conf
Collez le code suivant dedans. Remplacez forum.example.com par votre nom de domaine. Assurez-vous que la valeur de client_max_body_size est définie sur 25 Mo pour définir la taille de téléchargement pour le forum.
server {
listen 80 default_server;
server_name forum.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name forum.example.com;
http2_push_preload on; # Enable HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/forum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/forum.example.com/chain.pem;
ssl_session_timeout 1d;
# Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
client_max_body_size 25M;
gzip on;
gzip_min_length 1000;
gzip_proxied off;
gzip_types text/plain application/xml text/javascript application/javascript application/x-javascript text/css application/json;
add_header X-Early-Data $tls1_3_early_data;
location / {
# Socket.IO Support
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
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 X-NginX-Proxy true;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:4567; # no trailing slash
proxy_redirect off;
}
location @nodebb {
proxy_pass http://127.0.0.1:4567;
}
location ~ ^/assets/(.*) {
root /var/www/html/nodebb/;
try_files /build/public/$1 /public/$1 @nodebb;
}
}
# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the "$ssl_early_data" variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez votre configuration Nginx.
$ sudo nginx -t
Redémarrez le serveur Nginx.
$ sudo systemctl restart nginx
Étape 11 - Accéder et configurer le forum
Vous pouvez accéder au forum en visitant l’URL https://forum.example.com dans votre navigateur. Vous obtiendrez la page suivante.

Cliquez sur la page de connexion et entrez les identifiants administratifs que vous avez créés à l’étape 6.

Vous serez connecté. Ensuite, cliquez sur l’icône la plus à droite en haut de la barre de menu pour accéder au panneau d’administration.
À partir de là, vous pouvez gérer le forum. Étendez-le en installant des thèmes et des plugins.

Après avoir installé un thème et un plugin, vous devez reconstruire et redémarrer le forum en utilisant le bouton en haut à droite du tableau de bord d’administration comme indiqué ici.
Assurez-vous de configurer votre service de messagerie en allant dans Tableau de bord >> Paramètres >> Email afin que vos utilisateurs de forum puissent recevoir des e-mails. Sélectionnez les paramètres suivants pour garantir des paramètres de livraison d’e-mail optimaux.

Faites défiler la page vers le bas et sélectionnez un expéditeur de messagerie personnalisé dans le menu déroulant ou utilisez un expéditeur de messagerie personnalisé si votre service SMTP n’est pas dans la liste. Pour notre tutoriel, nous utilisons le service SES.

Cliquez sur l’icône de disquette en bas à droite pour enregistrer les paramètres.
Faites défiler vers le bas de la page pour envoyer un e-mail de test. Par défaut, il enverra un modèle d’e-mail banni. Vous pouvez sélectionner tout autre modèle de messagerie à tester. Nous allons envoyer l’e-mail de bienvenue.

Vous recevrez un e-mail de test comme indiqué ci-dessous confirmant les paramètres.

Conclusion
Cela conclut notre tutoriel sur l’installation du forum NodeBB en utilisant la base de données PostgreSQL et Nginx sur un serveur Ubuntu 22.04. Si vous avez des questions, posez-les dans les commentaires ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.