Installazione software · 8 min read · Sep 10, 2025

Come installare NodeBB con Nginx Proxy su Debian 12

NodeBB è un software per forum open-source scritto in JavaScript e Node.js. Utilizza MongoDB come database predefinito. NodeBB offre molteplici funzionalità, come notifiche in tempo reale tramite web socket, integrazione con i social media e anche API REST complete.

Questa guida ti mostrerà come installare NodeBB su un server Debian 12 con MongoDB come database e Nginx come reverse proxy.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Un server Debian 12.
  • Un utente non root con privilegi sudo.
  • Un nome di dominio puntato a un indirizzo IP del server.

Installazione delle dipendenze

Per iniziare il processo, installerai le dipendenze per NodeBB. Questo include Node.js, NPM (Node.js Package Manager) e il server web Nginx dal repository Debian. Per quanto riguarda MongoDB, lo installerai tramite il repository ufficiale di MongoDB.

Prima di tutto, esegui il seguente comando per installare i pacchetti gnupg e curl sul tuo sistema Debian.

sudo apt install gnupg curl -y

Aggiungi la chiave GPG e il repository di MongoDB con il seguente comando:

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

Ora aggiorna l’indice dei pacchetti Debian e installa MongoDB, Node.js, NPM, Nginx e Git. Inserisci Y per confermare l’installazione.

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

install dependencies

Dopo che l’installazione è completata, ricarica il gestore systemd con il seguente comando:

sudo systemctl daemon-reload

Ora esegui il comando qui sotto per avviare, abilitare e verificare lo stato del servizio MongoDB.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

L’output seguente conferma che MongoDB è in esecuzione.

check mongodb

Successivamente, controlla lo stato del servizio Nginx con il comando qui sotto. Dovresti vedere che Nginx è abilitato e in esecuzione sul tuo sistema.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

check nginx

Infine, controlla la versione di Node.js e NPM con il seguente comando:

sudo node -v  
sudo npm -v

Puoi vedere qui sotto che Node.js 18 e NPM 9 sono installati.

check node.js and npm

Configurazione del server MongoDB

In questa sezione, abiliterai l’autenticazione di MongoDB, creerai un nuovo utente amministratore per MongoDB e poi creerai un nuovo database e utente per l’installazione di NodeBB.

Accedi al server MongoDB con il comando qui sotto.

mongosh

Esegui la seguente query per passare al database ‘admin’ e creare un nuovo utente amministratore ‘ admin ‘ per MongoDB. Assicurati di cambiare la password ‘ MongoDBAdminPass ‘ con la nuova password.

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

Successivamente, crea un nuovo database e un utente ‘ nodebb ‘ con la password ‘ NodeBBPassword ‘. Questo database e utente saranno utilizzati per l’installazione di NodeBB.

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

Ora digita ‘ quit() ‘ per uscire da MongoDB.

setup mongodb admin and create new database and user

Successivamente, apri il file di configurazione di MongoDB ‘ /etc/mongod.conf ‘ con l’editor nano.

sudo nano /etc/mongod.conf

Abilita l’autenticazione di MongoDB aggiungendo la seguente configurazione.

security:  
authorization: enabled

Salva e chiudi il file quando hai finito.

Ora esegui il comando qui sotto per riavviare il servizio MongoDB e applicare le tue nuove modifiche. Dopo che il comando è stato eseguito, l’autenticazione di MongoDB sarà abilitata.

sudo systemctl restart mongod

Per assicurarti che la tua configurazione di MongoDB sia riuscita, accedi a MongoDB con l’utente ‘ nodebb ‘ al database ‘ nodebb ‘. Inserisci la tua password quando richiesto.

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

Dopo aver effettuato l’accesso, esegui la query qui sotto per controllare la tua connessione e uscire da MongoDB.

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

Nell’output seguente, puoi vedere che sei autenticato come ‘ nodebb ‘ al database ‘ nodebb ‘.

check mongodb user connection

Installazione di NodeBB

Con la configurazione di MongoDB completata, scaricherai e installerai NodeBB. Creerai un utente dedicato per NodeBB, scaricherai e installerai le dipendenze di NodeBB e poi configurerai un file di servizio per la tua installazione di NodeBB.

Aggiungi un nuovo utente di sistema ‘ nodebb ‘ con la home directory predefinita ‘ /opt/nodebb ‘ utilizzando il seguente comando.

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

Ora scarica il sorgente di NodeBB v3 nella directory ‘ /opt/nodebb ‘ utilizzando git e cambia la proprietà della directory ‘ /opt/nodebb ‘ all’utente ‘ nodebb ‘.

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

Vai nella directory ‘/opt/nodebb’ e configura la tua installazione di NodeBB con il comando qui sotto.

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb
  • Inserisci il tuo nome di dominio per NodeBB.
  • Lascia il segreto di NodeBB come predefinito e premi INVIO.
  • Digita no per disabilitare l’uso del plugin anonimo.
  • Seleziona il database come MongoDB.
  • Inserisci il database MongoDB con la stringa URL: mongodb://nodebb: [email protected]:27017/nodebb.
  • Inserisci il tuo utente amministratore e l’indirizzo email per NodeBB.
  • Inserisci la tua password e ripetila.

Dopo che il processo è completato, vedrai un output ‘ NodeBB Setup Completed ‘. Puoi anche vedere il comando per eseguire NodeBB.

setup complete

Successivamente, esegui il comando qui sotto per avviare o fermare NodeBB. Puoi usare questo quando hai bisogno di avviare o fermare NodeBB manualmente.

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

start and stop nodebb

Per rendere più facile la gestione di NodeBB, creerai un nuovo file di servizio systemd per NodeBB. Con questo, la tua installazione di NodeBB verrà eseguita in background e potrai gestirla con il comando systemctl.

Crea un nuovo file di servizio systemd ‘ /etc/systemd/system/nodebb.service ‘ con il comando dell’editor nano.

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

Inserisci la seguente configurazione nel file:

[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

Salva e chiudi il file.

Ora esegui il comando qui sotto per ricaricare il gestore systemd e applicare il nuovo file di servizio NodeBB.

sudo systemctl daemon-reload

Dopo di che, avvia e abilita il servizio ‘ nodebb ‘ con il seguente comando systemctl.

sudo systemctl start nodebb  
sudo systemctl enable nodebb

Verifica il servizio ‘ nodebb ‘ con il seguente comando per assicurarti che il servizio sia in esecuzione.

sudo systemctl status nodebb

Puoi vedere qui sotto che NodeBB è in esecuzione in background come servizio systemd.

setup nodebb systemd

Configurazione di Nginx come reverse proxy

A questo punto, NodeBB è in esecuzione in background sulla porta ‘4567’. Ora creerai un nuovo blocco server Nginx che sarà utilizzato come reverse proxy per il tuo forum NodeBB. Assicurati che il tuo nome di dominio sia puntato all’indirizzo IP del tuo server.

Crea una nuova configurazione del blocco server Nginx ‘ /etc/nginx/sites-available/nodebb ‘ con l’editor nano.

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

Aggiungi la seguente configurazione per impostare Nginx come reverse proxy per NodeBB. Assicurati di cambiare il parametro server_name con il tuo nome di dominio.

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;  
  
 # Supporto Socket.IO  
 proxy_http_version 1.1;  
 proxy_set_header Upgrade $http_upgrade;  
 proxy_set_header Connection "upgrade";  
 }  
}

Quando hai finito, salva il file e esci.

Ora attiva il file del blocco server ‘nodebb’ e testa la sintassi di Nginx con il seguente comando:

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

Se hai una sintassi Nginx corretta, vedrai un output ‘syntax is ok - test is successful’.

setup nginx

Infine, esegui il comando qui sotto per riavviare il servizio Nginx e applicare le tue modifiche.

sudo systemctl restart nginx

Sicurezza di NodeBB con HTTPS

In questa guida, proteggerai NodeBB con HTTPS tramite Certbot e Letsencrypt. Se stai utilizzando un dominio locale, puoi saltare questo passaggio oppure puoi anche generare certificati autofirmati.

Installa Certbot e il plugin Certbot Nginx con il seguente comando apt. Digita Y per procedere con l’installazione.

sudo apt install certbot python3-certbot-nginx

Ora esegui il comando certbot qui sotto per generare i certificati SSL per il tuo nome di dominio NodeBB. Assicurati di cambiare sia l’indirizzo email che il nome di dominio con le tue informazioni.

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

Dopo aver completato il processo, la tua installazione di NodeBB dovrebbe essere automaticamente protetta con HTTPS. I tuoi certificati SSL/TLS saranno disponibili nella directory ‘ /etc/letsencrypt/live/domain.com ‘.

Accesso a NodeBB

Visita https://forum.howtoforge.local/ utilizzando il tuo browser web e vedrai la pagina indice predefinita di NodeBB come segue:

homepage

Dalla home page, fai clic sul menu Login e ti verrà mostrata la pagina di accesso di NodeBB. Inserisci il tuo utente amministratore e la password, quindi fai clic su Login.

login page

Se hai successo, vedrai il seguente cruscotto utente.

user dashboard

Fai clic sul menu Admin per accedere al cruscotto di amministrazione di NodeBB come segue:

admin dashboard

Conclusione

Congratulazioni! Hai ora installato NodeBB sul server Debian 12. Hai NodeBB in esecuzione con il database MongoDB e il reverse proxy Nginx. Hai anche protetto NodeBB con HTTPS tramite Certbot e Letsencrypt.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.