GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare NodeBB Forum con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

NodeBB è un moderno software per forum basato su Node.js che utilizza MongoDB/Redis come piattaforme di database. Utilizza prese web per interazioni istantanee e notifiche in tempo reale.

In questo tutorial impareremo come installare il forum NodeBB su un server basato su Ubuntu 20.04.

Prerequisiti

  • Un server basato su Ubuntu 20.04 con utente non root con privilegi sudo.

  • Minimo 2 GB di RAM. Se il tuo server ha solo 1 GB di RAM, è meglio abilitare una partizione di scambio.

  • Assicurati che tutto sia aggiornato.

    $ sudo apt update && sudo apt upgrade
    
  • Pochi pacchetti essenziali. Alcuni di questi saranno già sul tuo server.

    $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
    

Passaggio 1:configurazione del firewall

Il primo passo è configurare il firewall. Ubuntu viene fornito con ufw (Uncomplicated Firewall) per impostazione predefinita.

Controlla se il firewall è in esecuzione.

$ sudo ufw status

Dovresti ottenere il seguente output.

Status: inactive

Consenti porta SSH in modo che il firewall non interrompa la connessione corrente quando lo si abilita.

$ sudo ufw allow OpenSSH

Consenti 27017 porta per il server MongoDB e 4567 port per eseguire il forum NodeBB. Consenti HTTP e HTTPS anche le porte.

$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443

Abilita il firewall.

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Ricontrolla lo stato del firewall.

$ sudo ufw status

Dovresti vedere un output simile.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
4567                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)
4567 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passaggio 2 - Installa Node.js

Installeremo la versione LTS di Node.js qui. Esegui i seguenti comandi per installare Node.js.

$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs

Controlla se Node è installato correttamente.

$ node --version

Dovresti vedere un output simile.

v12.18.3

Controlla anche npm.

$ npm --version
6.14.6

Passaggio 3:installa MongoDB

MongoDB è il database predefinito per NodeBB. Puoi anche usare Redis invece di MongoDB. Tratteremo entrambi i database nel nostro tutorial.

Il repository di MongoDB per Ubuntu 20.04 non è ancora pronto e Ubuntu stesso contiene una versione molto vecchia. Per il nostro scopo, utilizzeremo il repository MongoDB per 18.04 che funziona perfettamente. Puoi aggiornare l'elenco dei pacchetti con l'ultimo repository una volta disponibile il supporto ufficiale.

Importa la chiave pubblica per MongoDB.

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

Aggiungi repository MongoDB.

$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Aggiorna il database del pacchetto locale.

$ sudo apt update

Installa MongoDB.

$ sudo apt install mongodb-org

Verifica l'installazione di MongoDB.

$ mongod --version
db version v4.2.8
...

Avvia il servizio MongoDB.

$ sudo systemctl start mongod

Abilita il servizio MongoDB.

$ sudo systemctl enable mongod

Controlla lo stato del servizio MongoDB.

$ sudo systemctl status mongod

Fase 4 - Configurazione di MongoDB

L'amministrazione di Mongo viene eseguita tramite la shell MongoDB. L'installazione predefinita di MongoDB è in ascolto sulla porta 27017.

Accedi alla shell di MongoDB.

$ mongo

Passa all'admin integrato banca dati.

> use admin

Crea un utente amministrativo. Questo non è lo stesso dell'utente amministratore di NodeBB.

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

Cambia il segnaposto “yourpassword” alla tua password.

Aggiungi un nuovo database per NodeBB.

> use nodebb

Quindi, crea il nodebb utente per gestire il nodebb banca dati.

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

Il readwrite l'autorizzazione consente a NodeBB di archiviare e recuperare dati da nodebb Banca dati. Il clustermonitor l'autorizzazione consente a NodeBB l'accesso in sola lettura alle statistiche del database che sono visibili tramite il suo pannello di amministrazione.

Esci dalla shell Mongo.

> quit()

Apri il file di configurazione di MongoDB per la modifica.

$ sudo nano /etc/mongod.conf

Aggiungi la riga seguente alla fine del file.

security:
  authorization: enabled

Riavvia MongoDB e verifica l'utente amministrativo creato in precedenza.

$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin

Dovresti vedere il prompt di Mongo se tutto è stato configurato correttamente.

Passaggio 5:installa Git

Prima di procedere con l'installazione di NodeBB, è necessario installare Git.

Esegui il comando seguente per installare Git.

$ sudo apt install git

Esegui i seguenti comandi per eseguire la configurazione iniziale di Git.

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Passaggio 6 - Installa NodeBB

Non è consigliabile eseguire NodeBB come utente root.

Crea un utente senza privilegi.

$ sudo adduser nodebb

Imposta una password a tua scelta e salta le altre opzioni.

Crea la directory in cui vivrà il tuo forum NodeBB.

$ sudo mkdir /var/www/nodebb

Cambia la proprietà della cartella nell'utente appena creato.

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

Accedi all'utente appena creato.

$ su nodebb

Passa alla directory di installazione di NodeBB.

$ cd /var/www/nodebb

Per installare NodeBB, dobbiamo prima clonare il suo repository Github.

Clona NodeBB in /var/www/nodebb directory. Il punto alla fine del comando si riferisce alla directory corrente.

$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .

Qui abbiamo clonato la v1.14.2 di NodeBB che era l'ultima versione stabile al momento della stesura del tutorial. Puoi trovare l'ultimo ramo stabile dalla pagina Ultima versione di NodeBB.

NodeBB viene fornito con un'utilità della riga di comando. Usa il comando seguente per installare NodeBB.

$ ./nodebb setup

Puoi premere Invio per scegliere il valore predefinito.

Per il valore di URL utilizzato per accedere a questo NodeBB scegli l'URL finale a cui vuoi accedere al forum. Se accederai al forum tramite l'IP del tuo server, inserisci quello o accedi al dominio completo del forum. Qui inseriremo http://forum.example.com .

Continua a scegliere i valori predefiniti finché non ti viene richiesto il nome utente MongoDB che è quando inserisci nodebb e la password che hai scelto in precedenza per quel nome utente durante la configurazione di MongoDB. Il tuo database nodebb dovrebbe essere scelto. Ti verrà anche chiesto di creare un utente amministratore e i suoi dettagli.

Una volta completata l'installazione, esegui il comando seguente per avviare NodeBB.

$ ./nodebb start

Il tuo forum è ora in esecuzione. Dovresti essere in grado di accedervi tramite http://<yourserverip>:4567 .

Potresti visualizzare un messaggio di errore che dice Sembra che la tua connessione a NodeBB sia stata persa, attendi mentre proviamo a riconnetterci. Appare perché abbiamo scelto l'URL predefinito per NodeBB http://forum.example.com e non http://<yourserverip . Ma se inserisci l'indirizzo IP durante la configurazione, non riceverai più l'errore ma dovrai configurarlo di nuovo in seguito dopo aver scelto un dominio per il tuo forum.

Esci dall'utente NodeBB.

$ exit

Passaggio 7:installa Nginx

Ubuntu 20.04 per impostazione predefinita contiene l'ultima versione stabile di Nginx. Lo installeremo.

$ sudo apt install nginx

Controlla se è installato correttamente.

$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Avvia e abilita Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Apri l'indirizzo IP del tuo server nel tuo browser web. Dovresti vedere la seguente pagina che significa che il tuo server è attivo e funzionante.

Passaggio 8 - Configura Nginx

Esegui il comando seguente per aggiungere un file di configurazione per il tuo sito.

$ sudo nano /etc/nginx/sites-available/nodebb.conf

Incolla il codice seguente nell'editor.

server {
    listen 80;

    server_name forum.example.com;
    
    access_log /var/log/nginx/forum.example.com.access.log;
    error_log /var/log/nginx/forum.example.com.error.log;

    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";
    }
}

Premi Ctrl + X per uscire dall'editor e inserire Y quando richiesto.

Una volta terminato, verifica che la configurazione di Nginx sia corretta.

$ sudo nginx -t

Ricarica il servizio Nginx per abilitare la configurazione.

$ sudo systemctl reload nginx

Visita http://forum.example.com nel tuo browser per aprire il forum NodeBB.

Passaggio 9:esegui NodeBB come servizio di sistema

Il servizio NodeBB non verrà eseguito dopo il riavvio del sistema. Per evitare di avviare NodeBB ogni volta, è necessario installarlo come servizio di sistema.

Interrompi prima il servizio NodeBB.

$ ./nodebb stop

Esegui il comando seguente per creare e modificare nodebb.service file di configurazione dell'unità systemd.

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

Incolla il codice seguente nell'editor.

[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

Qui abbiamo scelto il nome utente come nodebb che abbiamo creato nel passaggio 6 e il percorso che abbiamo scelto per installare NodeBB in esso.

Abilita il servizio NodeBB.

$ sudo systemctl enable nodebb

Avvia il servizio NodeBB.

$ sudo systemctl start nodebb

Verifica lo stato del servizio.

$ sudo systemctl status nodebb

Passaggio 10:ottieni un certificato SSL Let's Encrypt

La protezione del tuo forum NodeBB con HTTPS è un passaggio necessario per proteggere il traffico del tuo sito. Per questo tutorial, utilizzeremo il client Certbot per installare SSL.

Per prima cosa, installa lo strumento Certbot.

$ sudo apt install certbot python3-certbot-nginx

Genera i certificati.

$ sudo certbot --nginx -d forum.example.com

Se è la prima volta che esegui Certbot sul tuo sistema, ti verrà chiesto un indirizzo e-mail e di accettare i termini del servizio. Ti verrà anche chiesto se accetti di condividere i dati con la fondazione EFF a cui puoi dire di no. Dopo averlo fatto, Certbot comunicherà con i server Let's Encrypt ed eseguirà una sfida per verificare i tuoi domini.

Se l'operazione ha esito positivo, ti verrà chiesto come gestire i reindirizzamenti HTTPS.

Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Seleziona Secure scelta e premere invio. Ciò garantirà che tutte le richieste al dominio http vengano correttamente reindirizzate alla versione https. I tuoi certificati verranno quindi creati e i tuoi file di configurazione Nginx verranno aggiornati con le impostazioni SSL.

I tuoi certificati sono pronti e ora puoi aprire il tuo sito andando su https://forum.example.com

Passaggio 11:verifica del rinnovo automatico SSL

Questo è l'ultimo passaggio prima di terminare questo tutorial.

Verifica il processo di rinnovo eseguendo un test a secco del processo di rinnovo.

$ sudo certbot renew --dry-run

Se non ricevi errori, significa che sei a posto. Certbot rinnoverà automaticamente i tuoi certificati per te. Ti verrà inviata un'email di avviso sulla scadenza del certificato.

Conclusione

Questo è tutto per questo tutorial. La configurazione del tuo forum NodeBB è completa. Se hai domande, pubblicale nei commenti qui sotto.


Ubuntu
  1. Proteggi Nginx con Lets Encrypt su Ubuntu 20.04

  2. Come installare Nextcloud con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

  3. Come installare Magento 2 con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

  4. Come installare Shopware con NGINX e Lets crittografare su Ubuntu 18.04 LTS

  5. Installa Automatad CMS con Nginx e Lets Encrypt SSL su Ubuntu 18.04

Come installare MediaWiki con Nginx e Lets Encrypt SSL su Ubuntu 20.04

Come installare Gitea con Nginx e Lets Encrypt SSL gratuito su Ubuntu 20.04

Come installare Let's Encrypt SSL con Nginx su Ubuntu 16.04 LTS

Come installare Let's Encrypt SSL per Nginx su Ubuntu 18.04 LTS

Come installare Nginx con Let's Encrypt SSL su Ubuntu 20.04 LTS

Come installare Apache con Let's Encrypt SSL su Ubuntu 20.04 LTS