Installazione Forum · 12 min read · Oct 14, 2025
Come installare il forum NodeBB su Ubuntu 22.04

NodeBB è un software per forum moderno alimentato dal framework Node.js. Utilizza MongoDB, PostgreSQL o Redis per memorizzare i dati. Sfrutta i web socket per notifiche in tempo reale e interazioni istantanee. Ha funzionalità moderne come integrazione con i social network, supporto per plugin, reattività mobile e API REST complete per lettura/scrittura.
NodeBB è disponibile sia come progetto open-source auto-ospitato che come servizio cloud. In questo tutorial, imparerai come installare il forum NodeBB utilizzando Nginx su un server Ubuntu 22.04. Ubuntu 22.04 non supporta ufficialmente MongoDB; pertanto, utilizzeremo PostgreSQL per memorizzare i dati.
Prerequisiti
- Un server che esegue Ubuntu 22.04 con un minimo di 1 GB di RAM.
- Un utente non root con privilegi sudo.
- Il firewall Uncomplicated Firewall (UFW) è abilitato e in esecuzione.
- Un nome di dominio completamente qualificato (FQDN) che punta al server come
forum.example.com. - Tutto è aggiornato.
$ sudo apt update && sudo apt upgrade
Passo 1 - Configurare il Firewall
Prima di installare qualsiasi pacchetto, il primo passo è configurare il firewall per consentire connessioni HTTP e HTTPS.
Controlla lo stato del firewall.
$ sudo ufw statusDovresti vedere qualcosa di simile al seguente.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Consenti le porte HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow httpsControlla di nuovo lo stato per confermare.
$ 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)Passo 2 - Installare PostgreSQL
Il primo passo per installare PostgreSQL è aggiungere la sua chiave GPG.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/nullAggiungi il repository APT alla tua lista di sorgenti.
$ 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'Aggiorna il repository di sistema.
$ sudo apt updateOra puoi installare PostgreSQL.
$ sudo apt install postgresql postgresql-contribControlla lo stato del servizio 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.Passo 3 - Configurare PostgreSQL
Dobbiamo impostare una password per l’utente amministrativo predefinito di Postgres postgres. Prima, accedi alla shell di Postgres.
$ sudo -u postgres psqlInserisci il seguente comando per cambiare la password.
postgres=# \password postgresTi verrà chiesto di inserire una nuova password.
Enter new password for user "postgres":
Enter it again:Crea un nuovo utente per NodeBB.
postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';Crea un nuovo database per NodeBB.
postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;Digita \q per uscire dalla shell.
postgres=# \qPasso 4 - Installare Node.js
Poiché il forum NodeBB è scritto utilizzando il framework Node.js, dobbiamo installarlo per farlo funzionare.
Esegui i seguenti comandi per installare la versione LTS (v16.x) di Node.js.
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejsVerifica l’installazione di Node.js e NPM.
$ node -v
v16.17.0
$ npm -v
8.15.0Passo 5 - Installare Git
Prima di procedere all’installazione di NodeBB, dobbiamo installare Git. Esegui il seguente comando per installare Git.
$ sudo apt install gitEsegui i seguenti comandi per eseguire la configurazione iniziale di Git.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"Passo 6 - Installare NodeBB
Non è consigliabile eseguire NodeBB come utente root. Crea un utente di sistema non privilegiato senza password.
$ sudo adduser nodebb --disabled-passwordSalta tutte le altre opzioni.
Crea la directory in cui vivrà il tuo forum NodeBB.
$ sudo mkdir /var/www/html/nodebb -pCambia la proprietà della cartella all’utente appena creato.
$ sudo chown -R nodebb:nodebb /var/www/html/nodebbAccedi all’utente appena creato.
$ sudo su - nodebbPassa alla directory di installazione di NodeBB.
$ cd /var/www/html/nodebbPer installare NodeBB, prima dobbiamo clonare il suo repository GitHub.
Clona NodeBB nella directory /var/www/nodebb. Il punto alla fine del comando si riferisce alla directory corrente.
$ git clone -b v2.x https://github.com/NodeBB/NodeBB.git .Qui abbiamo clonato il ramo v2.x di NodeBB che contiene l’ultima versione stabile di NodeBB. Puoi trovare l’ultima branch stabile dalla pagina delle Ultime Branches di NodeBB.
NodeBB viene fornito con un’utilità da riga di comando. Usa il seguente comando per installare NodeBB.
$ ./nodebb setupPuoi premere invio per scegliere il valore predefinito.
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)
........Per il valore dell’URL utilizzato per accedere a questo NodeBB, scegli l’URL finale con cui desideri accedere al forum. Se accederai al forum tramite l’IP del tuo server, inserisci quello o inserisci il dominio completo del forum. Qui inseriremo https://forum.example.com. Scegli no come risposta alla domanda riguardante l’invio anonimo dell’uso dei plugin. Digita postgres come tipo di database.
Poi scegli l’IP e la porta predefiniti premendo invio e inserisci il tuo nome utente PostgreSQL che è quando inserisci nbbuser e la password che hai scelto in precedenza per quel nome utente durante la configurazione di MongoDB. Il tuo database nodebbdb dovrebbe essere scelto.
Ti verrà anche chiesto di creare un utente amministratore e i suoi dettagli.
.....
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.Una volta completata la configurazione, esegui il seguente comando per avviare NodeBB.
$ ./nodebb start
Starting NodeBB
"./nodebb stop" to stop the NodeBB server
"./nodebb log" to view server output
"./nodebb help" for more commandsEsci dall’utente NodeBB.
$ exitPasso 7 - Eseguire NodeBB come Servizio di Sistema
Il servizio NodeBB non verrà eseguito dopo un riavvio del sistema. Per evitare di avviare NodeBB ogni volta, dobbiamo installarlo come Servizio di Sistema.
Ferma prima il servizio NodeBB. Passa alla directory di NodeBB e poi esegui il comando direttamente utilizzando il comando sudo -u.
$ cd /var/www/html/nodebb
$ sudo -u nodebb ./nodebb stopEsegui il seguente comando per creare e modificare il file di configurazione dell’unità nodebb.service di systemd.
$ sudo nano /etc/systemd/system/nodebb.serviceIncolla il seguente codice nell’editor.
[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.targetQui abbiamo scelto il nome utente come nodebb che abbiamo creato nel Passo 6 e il percorso che abbiamo scelto per installare NodeBB.
Abilita il servizio NodeBB.
$ sudo systemctl enable nodebbAvvia il servizio NodeBB.
$ sudo systemctl start nodebbControlla lo stato del servizio.
$ 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.comPasso 8 - Installare Nginx
Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Per installare l’ultima versione, devi scaricare il repository ufficiale di Nginx.
Importa la chiave di firma di Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullAggiungi il repository per la versione stabile di 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.listAggiorna i repository di sistema.
$ sudo apt updateInstalla Nginx.
$ sudo apt install nginxVerifica l’installazione.
$ nginx -v
nginx version: nginx/1.22.0Avvia il server Nginx.
$ sudo systemctl start nginxPasso 9 - Installare SSL
Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o scaricare l’ultima versione utilizzando lo strumento Snapd. Useremo la versione Snapd.
Ubuntu 22.04 viene fornito con Snapd installato per impostazione predefinita. Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.
$ sudo snap install core
$ sudo snap refresh coreInstalla Certbot.
$ sudo snap install --classic certbotUsa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotEsegui il seguente comando per generare un certificato SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.comIl comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/forum.example.com sul tuo server.
Genera un certificato per il gruppo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Per controllare se il rinnovo SSL funziona correttamente, esegui un test del processo.
$ sudo certbot renew --dry-runSe non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.
Passo 10 - Configurare Nginx
Apri il file /etc/nginx/nginx.conf per la modifica.
$ sudo nano /etc/nginx/nginx.confAggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Crea e apri il file /etc/nginx/conf.d/nodebb.conf per la modifica.
$ sudo nano /etc/nginx/conf.d/nodebb.confIncolla il seguente codice. Sostituisci forum.example.com con il tuo nome di dominio. Assicurati che il valore di client_max_body_size sia impostato su 25 MB per impostare la dimensione di caricamento per il 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; # Abilita 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;
# Abilita le versioni TLS (TLSv1.3 è richiesto per il prossimo HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Abilita 0-RTT di TLSv1.3. Usa $ssl_early_data quando si fa reverse proxy per
# prevenire attacchi di replay.
#
# @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 ---
# recupera i record OCSP dall'URL nel ssl_certificate e memorizzali nella cache
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 / {
# Supporto Socket.IO
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; # nessuna barra finale
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;
}
}
# Questo blocco è utile per il debug di TLS v1.3. Sentiti libero di rimuoverlo
# e utilizzare la variabile `$ssl_early_data` esposta da NGINX direttamente se lo desideri.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la tua configurazione Nginx.
$ sudo nginx -tRiavvia il server Nginx.
$ sudo systemctl restart nginxPasso 11 - Accedere e Configurare il Forum
Puoi accedere al forum visitando l’URL https://forum.example.com nel tuo browser. Otterrai la seguente pagina.

Clicca sulla pagina di accesso e inserisci le credenziali dell’amministratore che hai creato nel passo 6.

Sarai connesso. Successivamente, fai clic sull’icona più a destra nella parte superiore della barra dei menu per accedere al pannello di amministrazione.
Da qui in poi, puoi gestire il forum. Estendilo installando temi e plugin.

Dopo aver installato qualsiasi tema e plugin, devi ricostruire e riavviare il forum utilizzando il pulsante nell’angolo in alto a destra della dashboard di amministrazione come mostrato qui.
Assicurati di configurare il tuo servizio email andando su Dashboard >> Impostazioni >> Email affinché gli utenti del tuo forum possano ricevere email. Seleziona le seguenti impostazioni per garantire impostazioni ottimali per la consegna delle email.

Scorri verso il basso nella pagina e seleziona un mittente personalizzato dal menu a discesa o utilizza il mittente personalizzato se il tuo servizio SMTP non è nell’elenco. Per il nostro tutorial, stiamo utilizzando il servizio SES.

Clicca sull’icona del floppy disk in basso a destra per salvare le impostazioni.
Scorri verso il basso fino alla fine della pagina per inviare un’email di prova. Per impostazione predefinita, verrà inviata un’email di modello bannato. Puoi selezionare qualsiasi altro modello di email per testare. Invieremo l’email di benvenuto.

Riceverai un’email di prova come mostrato di seguito che conferma le impostazioni.

Conclusione
Questo conclude il nostro tutorial su come installare il forum NodeBB utilizzando il database PostgreSQL e Nginx su un server Ubuntu 22.04. Se hai domande, pubblicale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.