Installazione software · 8 min read · Oct 19, 2025
Come installare il forum NodeBB su Ubuntu 18.04 LTS

NodeBB è un software per forum basato su Node.js, costruito per il web moderno. È costruito su un database MongoDB o Redis. Utilizza i web socket per interazioni istantanee e notifiche in tempo reale. NodeBB ha molte funzionalità moderne già pronte all’uso, come integrazione con i social network e discussioni in streaming. Funzionalità aggiuntive sono abilitate tramite l’uso di plugin di terze parti. NodeBB è un progetto open source che può essere trovato su Github. In questa guida, ti guideremo passo dopo passo attraverso il processo di installazione di NodeBB sul sistema operativo Ubuntu 18.04 LTS utilizzando Nginx come reverse proxy, MongoDB come database e acme.sh e Let’s Encrypt per HTTPS.
Requisiti
NodeBB richiede il seguente software da installare:
- Node.js versione 6 o superiore
- MongoDB versione 2.6 o superiore o Redis versione 2.8.9 o superiore
- Nginx versione 1.3.13 o superiore
- Git
NOTA: L’installazione delle dipendenze di NodeBB potrebbe richiedere più di 512 megabyte di memoria di sistema. Si consiglia di abilitare una partizione di swap per compensare se il tuo sistema Linux ha memoria insufficiente.
Prerequisiti
- Un sistema Ubuntu 18.04 in esecuzione con almeno 1GB di RAM.
- Nome di dominio con record
A/AAAAconfigurati. - Un utente non root con privilegi sudo.
Passi iniziali
Controlla la tua versione di Ubuntu:
lsb_release -ds
# Ubuntu 18.04.1 LTSImposta il fuso orario:
sudo dpkg-reconfigure tzdataAggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché garantisce che tu abbia gli ultimi aggiornamenti e le correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:
sudo apt update && sudo apt upgrade -yInstalla alcuni pacchetti essenziali che sono necessari per l’amministrazione di base del sistema operativo Ubuntu:
sudo apt install -y curl wget vim git unzip socat bash-completion Passo 1: Installa Node.js e npm
NodeBB è costruito su Node.js. Installeremo la versione raccomandata per NodeBB che è la versione 8 ** al momento della scrittura. Su Linux, hai alcune opzioni di installazione di Node.js: Binaries Linux (x86/x64), Codice sorgente o tramite Gestori di pacchetti. Utilizzeremo l’opzione di Gestione pacchetti che rende l’installazione e l’aggiornamento di Node.js un gioco da ragazzi.
Scarica e installa l’ultima versione Long-Term Support (LTS) di Node.js dal repository Nodesource:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs Per compilare e installare addon nativi da npm potresti anche aver bisogno di installare gli strumenti di build:
sudo apt install -y build-essentialNOTA: npm è distribuito con Node.js - il che significa che quando scarichi Node.js, ottieni automaticamente npm installato sul tuo sistema.
Controlla le versioni di Node.js e npm:
node -v && npm -v
# v10.15.1
# 6.4.1Npm è un progetto separato da Node.js e tende ad aggiornarsi più frequentemente. Di conseguenza, anche se hai appena scaricato Node.js (e quindi npm), probabilmente dovrai aggiornare il tuo npm. Fortunatamente, npm sa come aggiornarsi! Per aggiornare il tuo npm, digita questo nel tuo terminale:
sudo npm install -g npm@latestQuesto comando aggiornerà npm all’ultima versione stabile.
Controlla di nuovo la versione di npm con:
npm -v
# 6.7.0 E dovrebbe restituire i numeri di versione più recenti.
Passo 2: Installa e configura MongoDB
NodeBB ha bisogno di un database per memorizzare i suoi dati e supporta MongoDB e Redis. In questo tutorial, abbiamo scelto MongoDB come motore di archiviazione dei dati. Quindi, nei prossimi passaggi, scaricheremo e installeremo il database MongoDB dal repository rpm ufficiale di MongoDB:
Per installare la versione stabile del pacchetto MongoDB, emetti il seguente comando:
sudo apt install -y mongodbControlla la versione di MongoDB:
mongo --version | head -n 1 && mongod --version | head -n 1 Avvia e abilita (imposta per avviarsi al riavvio) il servizio MongoDB:
sudo systemctl start mongodb.service
sudo systemctl enable mongodb.serviceControlla lo stato del server del database MongoDB eseguendo:
sudo systemctl status mongodb.service
# active (running)Successivamente, crea un database MongoDB e un utente per NodeBB.
Collegati prima al server MongoDB.
mongoPassa al database admin integrato.
> use adminCrea un utente amministrativo.
> db.createUser( { user: "admin", pwd: "", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } ) NOTA: Sostituisci il segnaposto con la tua password scelta.
Aggiungi un nuovo database chiamato nodebb.
> use nodebbIl database verrà creato e il contesto passerà a nodebb. Successivamente, crea l’utente nodebb con i privilegi appropriati.
> db.createUser( { user: "nodebb", pwd: "", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } ) NOTA: Ancora una volta, sostituisci il segnaposto con la tua password scelta.
Esci dalla shell di Mongo.
> quit()Riavvia MongoDB e verifica che l’utente amministrativo creato in precedenza possa connettersi.
sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=adminSe tutto è andato bene, il tuo MongoDB dovrebbe essere installato e pronto per NodeBB. Nel prossimo passaggio, ci occuperemo dell’installazione e configurazione del server web.
Passo 3 - Installa il client acme.sh e ottieni il certificato Let’s Encrypt (opzionale)
Proteggere il tuo forum NodeBB con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere un certificato TLS da Let’s Encrypt utilizzeremo il client acme.sh. Acme.sh è un software shell unix puro per ottenere certificati TLS da Let’s Encrypt senza dipendenze.
Scarica e installa acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~Controlla la versione di acme.sh:
acme.sh --version
# v2.8.0Ottieni certificati RSA e ECC/ECDSA per il tuo dominio/nome host:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Se desideri certificati falsi per testare, puoi aggiungere il flag --staging ai comandi sopra.
Dopo aver eseguito i comandi sopra, i tuoi certificati e chiavi saranno in:
- Per RSA: directory
/home/username/example.com. - Per ECC/ECDSA: directory
/home/username/example.com_ecc.
Per elencare i tuoi certificati emessi puoi eseguire:
acme.sh --listCrea una directory per memorizzare i tuoi certificati. Utilizzeremo la directory /etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_eccInstalla/copia i certificati nella directory /etc/letsencrypt.
# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"Tutti i certificati verranno rinnovati automaticamente ogni 60 giorni.
Dopo aver ottenuto i certificati, esci dall’utente root e torna all’utente sudo normale:
exitPasso 4: Installa e configura Nginx
NodeBB può funzionare bene con molti server web. In questo tutorial, abbiamo selezionato Nginx.
Installa il pacchetto Nginx, emettendo il seguente comando:
sudo apt install -y nginxDopo l’installazione, puoi verificare la versione di Nginx eseguendo:
ginx -v Avvia e abilita (imposta per avviarsi al riavvio) il servizio Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceControlla lo stato del server web Nginx eseguendo:
sudo systemctl status nginx.service
# active (running)NodeBB per impostazione predefinita funziona sulla porta 4567. Per evitare di digitare http://example.com:4567, configureremo Nginx come reverse proxy per l’applicazione NodeBB. Ogni richiesta sulla porta 80 o 443 (se viene utilizzato SSL) sarà inoltrata alla porta 4567.
Esegui sudo vim /etc/nginx/conf.d/nodebb.conf e configura Nginx come reverse proxy HTTPS.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
client_max_body_size 50M;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
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";
}
}Controlla la configurazione di Nginx:
sudo nginx -tInfine, affinché le modifiche abbiano effetto, dobbiamo ricaricare Nginx:
sudo systemctl reload nginx.servicePasso 5: Installa e configura NodeBB
Crea una directory di root del documento in cui NodeBB dovrebbe risiedere:
sudo mkdir -p /var/www/nodebbNaviga nella directory di root del documento:
cd /var/www/nodebbCambia la proprietà della directory /var/www/nodebb al tuo_user.
sudo chown -R [your_user]:[your_user] /var/www/nodebbNOTA: Sostituisci your_user nel comando sopra con il tuo utente non root che dovresti aver creato come prerequisito per questo tutorial.
Clona l’ultima repository di NodeBB nella cartella di root del documento:
git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .Inizializza lo script di configurazione eseguendo l’app con il flag setup. Rispondi a ciascuna delle domande:
./nodebb setupDopo che la configurazione di NodeBB è completata, esegui ./nodebb start per avviare manualmente il tuo server NodeBB:
./nodebb startDopo aver eseguito questo comando, dovresti essere in grado di accedere al tuo nuovissimo forum nel tuo browser web:

Passo 6: Esegui NodeBB come servizio di sistema
Quando avviato tramite ./nodebb start, NodeBB non si avvierà automaticamente di nuovo quando il sistema si riavvia. Per evitare ciò, dovremo configurare NodeBB come servizio di sistema.
Se in esecuzione, ferma NodeBB:
./nodebb stopCrea un nuovo utente nodebb:
sudo useradd nodebbCambia la proprietà della directory /var/www/nodebb all’utente nodebb:
sudo chown -R nodebb:nodebb /var/www/nodebbCrea un file di configurazione dell’unità systemd nodebb.service. Questo file unità gestirà l’avvio del demone NodeBB. Esegui sudo vim /etc/systemd/system/nodebb.service e aggiungi il contenuto qui sotto:
[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=forking
User=nodebb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always
[Install]
WantedBy=multi-user.target
NOTA: Imposta il nome utente e i percorsi delle directory secondo i tuoi nomi scelti.
Abilita nodebb.service all’avvio e avvia immediatamente nodebb.service:
sudo systemctl enable nodebb.service
sudo systemctl start nodebb.serviceControlla lo stato di nodebb.service:
sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.serviceCongratulazioni! Hai installato e distribuito con successo la piattaforma di discussione NodeBB sul sistema Ubuntu 18.04. Dovresti essere in grado di accedere al tuo forum sul tuo dominio e interagire con il tuo forum.
Link
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.