GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare il forum NodeBB su Debian 9

NodeBB è un software per forum basato su Node.js creato per il Web moderno. È costruito su un database MongoDB o Redis. Utilizza prese web per interazioni istantanee e notifiche in tempo reale. NodeBB ha molte funzionalità moderne pronte all'uso, come l'integrazione con i social network e le discussioni in streaming. Ulteriori funzionalità sono abilitate tramite l'uso di plug-in 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 NodeBBB sul sistema operativo Debian 9 usando Nginx come proxy inverso, MongoDB come database e acme.sh e Let's Encrypt per HTTPS.

Requisiti

NodeBB richiede l'installazione del seguente software:

  • Versione di Node.js 6 o superiore
  • Versione MongoDB 2.6 o successiva o versione Redis 2.8.9 o superiore
  • Versione Nginx 1.3.13 o superiore
  • Git

NOTA : L'installazione delle dipendenze di NodeBB potrebbe richiedere più di 512 megabyte di memoria di sistema. Ti consigliamo di abilitare una partizione di swap per compensare se il tuo sistema Linux ha memoria insufficiente.

Prerequisiti

  • Un sistema Debian 9 in esecuzione con almeno 1 GB di RAM.
  • Nome di dominio con A /AAAA record impostati.
  • Un utente non root con privilegi sudo.

Passaggi iniziali

Controlla la tua versione di Debian:

lsb_release -ds

Imposta il fuso orario:

sudo dpkg-reconfigure tzdata

Aggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché ti assicura di avere gli ultimi aggiornamenti e correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:

sudo apt update && sudo apt upgrade -y

Installa alcuni pacchetti essenziali che sono necessari per l'amministrazione di base del sistema operativo Debian:

sudo apt install -y curl wget vim git unzip sudo socat bash-completion apt-transport-https

Passaggio 1:installa Node.js e npm

NodeBB è basato su Node.js. Installeremo la versione consigliata per NodeBB che è la versione 8  nel momento in cui scrivo. Su Linux, hai alcune opzioni di installazione di Node.js:Linux Binaries (x86/x64), Source Code o tramite Package Manager. Useremo l'opzione Package Management che rende l'installazione e l'aggiornamento di Node.js un gioco da ragazzi.

Scarica e installa l'ultima versione di supporto a lungo termine (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 componenti aggiuntivi nativi da npm potresti anche dover installare gli strumenti di compilazione:

sudo apt install -y build-essential

NOTA :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.1

Npm è 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 [email protected]

Questo comando aggiornerà npm all'ultima versione stabile.

Ricontrolla la versione npm con:

npm -v
# 6.7.0

E dovrebbe restituire i numeri di versione più recenti.

Fase 2:installa e configura MongoDB

NodeBB ha bisogno di un database per archiviare i suoi dati e supporta MongoDB e Redis. In questo tutorial, abbiamo scelto MongoDB come motore dell'archivio dati. Quindi, nei prossimi passaggi, scaricheremo e installeremo il database MongoDB dal repository rpm MongoDB ufficiale:

Per installare la versione stabile del pacchetto MongoDB dal repository MongoDB ufficiale, immetti il ​​seguente comando:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org

Controlla la versione di MongoDB:

mongo --version | head -n 1 && mongod --version | head -n 1

Avvia e abilita (impostalo per l'avvio al riavvio ) Servizio MongoDB:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Controlla lo stato del server di database MongoDB eseguendo:

sudo systemctl status mongod.service
# active (running)

Quindi, crea un database MongoDB e un utente per NodeBB.

Connettiti prima al server MongoDB.

mongo

Passa all'admin integrato banca dati.

> use admin

Crea un utente amministrativo.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

NOTA: Sostituisci il segnaposto <Enter a secure password> con la tua password selezionata.

Aggiungi un nuovo database chiamato nodebb .

> use nodebb

Il database verrà creato e il contesto passerà a nodebb . Quindi, crea il nodebb utente con i privilegi appropriati.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

NOTA: Ancora una volta, sostituisci il segnaposto <Enter a secure password> con la tua password selezionata.

Esci dalla shell 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=admin

Se tutto è andato bene, il tuo MongoDB dovrebbe essere installato e preparato per NodeBB. Nel passaggio successivo, ci occuperemo dell'installazione e della configurazione del server web.

Passaggio 3:installa il client acme.sh e ottieni il certificato Lets Encrypt

Questo passaggio è facoltativo. Proteggere il tuo forum NodeBB con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere il certificato TLS da Let's Encrypt utilizzeremo il client acme.sh. Acme.sh è un puro software shell Unix per ottenere certificati TLS da Let's Encrypt con zero 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.0

Ottieni RSA e ECC/ECDSA certificati 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-256

Se vuoi certificati falsi per i test puoi aggiungere --staging flag ai comandi precedenti.

Dopo aver eseguito i comandi precedenti, i tuoi certificatichiavi sarà in:

  • Per RSA :/home/username/example.com directory.
  • Per ECC/ECDSA :/home/username/example.com_ecc directory.

Per elencare i certificati emessi puoi eseguire:

acme.sh --list

Crea una directory in cui archiviare i tuoi certificati. Useremo /etc/letsencrypt directory.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installa/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 al normale utente sudo:

exit

Fase 4:installa e configura Nginx

NodeBB può funzionare correttamente con molti server web. In questo tutorial, abbiamo selezionato Nginx.

Installa il pacchetto Nginx, emetti il ​​seguente comando:

sudo apt install -y nginx

Dopo l'installazione, puoi verificare la versione di Nginx eseguendo:

nginx -v

Avvia e abilita (impostalo per l'avvio al riavvio ) Servizio Nginx:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Controlla lo stato del server web Nginx eseguendo:

sudo systemctl status nginx.service
# active (running)

NodeBB per impostazione predefinita viene eseguito sulla porta 4567 . Per evitare di digitare http://example.com:4567 , configureremo Nginx come proxy inverso per l'applicazione NodeBB. Ogni richiesta sulla porta 80 o 443 (se viene utilizzato SSL ) sarà inoltrato alla porta 4567 .

Esegui sudo vim /etc/nginx/conf.d/nodebb.conf e configura Nginx come proxy inverso 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;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

Controlla la configurazione di Nginx:

sudo nginx -t

Infine, affinché le modifiche abbiano effetto, dobbiamo ricaricare Nginx:

sudo systemctl reload nginx.service

Fase 5:installa e configura NodeBB

Crea una directory principale del documento in cui dovrebbe risiedere NodeBB:

sudo mkdir -p /var/www/nodebb

Vai alla directory principale del documento:

cd /var/www/nodebb

Modifica la proprietà del /var/www/nodebb directory a tuo_utente.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

NOTA:  Sostituisci your_user nel comando precedente con il tuo utente non root che avresti dovuto creare come prerequisito per questo tutorial .

Clona l'ultimo repository NodeBB nella cartella principale del documento:

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Avvia lo script di installazione eseguendo l'app con setup bandiera. Rispondi a ciascuna delle domande:

./nodebb setup

Dopo aver completato la configurazione di NodeBB, esegui ./nodebb start per avviare manualmente il tuo server NodeBB:

./nodebb start

Dopo aver eseguito questo comando, dovresti essere in grado di accedere al tuo nuovissimo forum nel tuo browser web:

Passaggio 6:esegui NodeBB come servizio di sistema

Quando è stato avviato tramite ./nodebb start , NodeBB non si riavvierà automaticamente al riavvio del sistema. Per evitarlo, dovremo configurare NodeBB come servizio di sistema.

Se in esecuzione, arresta NodeBB:

./nodebb stop

Crea un nuovo nodebb utente:

sudo useradd nodebb

Modifica la proprietà del /var/www/nodebb directory in nodebb utente:

sudo chown -R nodebb:nodebb /var/www/nodebb

Crea un nodebb.service file di configurazione dell'unità systemd. Questo file di unità gestirà l'avvio del demone NodeBB. Esegui sudo vim /etc/systemd/system/nodebb.service e aggiungi i seguenti contenuti:

[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 della directory in base ai nomi scelti.

Abilita nodebb.service al riavvio e avviare immediatamente nodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Controlla il nodebb.service stato:

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Congratulazioni! Hai installato e distribuito correttamente la piattaforma di discussione NodeBB sul sistema Debian 9. Dovresti essere in grado di accedere al tuo forum sul tuo dominio e interagire con il tuo forum.

Link

  • https://nodebb.org/
  • https://docs.nodebb.org/
  • https://github.com/NodeBB/NodeBB

Debian
  1. Come installare Debian 10 (Buster)

  2. Come installare Python 3.9 su Debian 10

  3. Come installare Node.js e npm su Debian 9

  4. Come installare Node.js e npm su Debian 11

  5. Come installare NodeBB su Debian 9

Come installare Debian 11

Come installare Node.JS 14 LTS / 16 e NPM su Debian 11 Bullseye

Come installare Vai su Debian 10

Come installare ReactJS su Debian 11

Come installare RevealJS su Ubuntu 20.04 / Debian 11?

Come installare Vai su Debian