GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Discourse Forum con Nginx su Ubuntu 16.04

Discourse è un software gratuito e open source per la creazione di comunità di forum su Internet e mailing list. È stato creato nel 2013 e scritto nei linguaggi di programmazione Ruby e Javascript. Il software del forum Discourse è stato utilizzato da molte organizzazioni, tra cui Codeacademy, Udacity, Twitter Developers e Docker Community Forum.

In questo tutorial, ti mostreremo passo dopo passo come installare e configurare Discourse Forum con il server web Nginx su Ubuntu 16.04. In particolare, ti mostreremo come installare il software del forum Discourse, configurare Nginx come proxy inverso per l'app Discourse e proteggere il software del forum Discourse utilizzando SSL gratuito da Letsencrypt.

Cosa faremo

  1. Installa Docker su Ubuntu 16.04
  2. Installa e configura il software Discourse Forum
  3. Genera SSL Letsencrypt su Ubuntu 16.04
  4. Installa e configura Nginx come proxy inverso per Discourse
  5. Programma di installazione Web di Discourse
  6. Configurazione aggiuntiva del discorso

Prerequisiti

  • Ubuntu 16.04
  • privilegi radice
  • Account SMTP - Mailgun, SendGrid, Mailjet ecc.

Passaggio 1:installa Docker su Ubuntu 16.04

Il software Discourse è scritto in Ruby e Javascript, utilizzando PostgreSQL come database principale e Redis come cache e per i dati transitori. Installeremo Discourse nel contenitore Docker.

Il processo di installazione verrà eseguito su Ubuntu 16.04. Quindi, per cominciare, installa Docker usando il comando seguente.

wget -qO- https://get.docker.com/ | sh

Al termine dell'installazione, controlla il servizio Docker e assicurati che sia già in esecuzione sul sistema.

systemctl status docker

E assicurati anche che Docker sia sull'app di avvio di avvio.

systemctl is-enabled docker

Passaggio 2 - Installa e configura il forum di discorso

In questo passaggio installeremo e configureremo il software Discourse. Scaricheremo lo script di composizione mobile del discorso, lo configureremo in base ai nostri requisiti e quindi creeremo un nuovo contenitore Docker per il software del forum del discorso.

Crea una nuova directory '/var/discourse' e clona lo script di installazione.

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Ora vai alla directory 'discourse' e copia l'esempio del file docker-compose.

cd /var/discourse
cp samples/standalone.yml containers/app.yml

Modifica il file 'app.yml' usando l'editor vim.

vim containers/app.yml

Configura mappatura porte Docker

Per impostazione predefinita, tutte le richieste HTTP e HTTPS verranno gestite dal proxy Docker. E per questa guida, useremo Nginx per questo scopo:tutti gli HTTP e HTTPS saranno gestiti dal server web Nginx.

Quindi dobbiamo modificare la configurazione della mappatura delle porte docker. Il contenitore Discourse avrà solo la connessione HTTP e l'host aprirà la nuova porta "2045" e eseguirà il mapping alla porta del contenitore 80.

Decommenta la riga HTTPS e cambia la riga HTTP con la nuova porta '2045'.

expose:
  - "2045:80"   # http
#  - "443:443" # https

Configurazione del nome di dominio del discorso

Digita il tuo nome di dominio per il discorso installato nella riga "DISCOURSE_HOSTNAME" come di seguito.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

E digita il tuo indirizzo email nella riga 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

Configurazione SMTP

Questa è la configurazione più importante per il software Discourse. Assicurati di disporre dell'account SMTP per l'installazione di Discourse:puoi acquistare o provare un account SMTP di livello gratuito da Mailgun, Mailjet o SendGrid.

In questo tutorial, utilizzeremo l'account SMTP di livello gratuito di Mailgun. Decommenta la configurazione SMTP e digita il tuo account come di seguito.

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: mypassword

Salva ed esci.

Quindi, crea una nuova immagine Discourse Docker basata sulla configurazione del modello app.yml.

sudo ./launcher bootstrap app

Successivamente, avvia/inizializza il nuovo contenitore Discourse utilizzando il comando seguente.

sudo ./launcher start app

Il contenitore Discourse dovrebbe essere attivo e funzionante:controllalo usando il comando docker.

docker ps -a

Controlla la porta aperta dell'host utilizzando netstat e assicurati che la nuova porta proxy docker 2045 sia nell'elenco.

netstat -plntu

Il software Discourse Forum è stato installato sotto il contenitore docker sull'host Ubuntu 16.04.

Passaggio 3 - Genera Letsencrypt SSL su Ubuntu 16.04

Il forum Discourse verrà eseguito con la connessione protetta HTTP e sarà gestito dal server Web Nginx. Utilizzeremo SSL gratuito di Letsencrypt per questa guida e dobbiamo installare il client Letsencrypt sul server.

Installa letencrypt con il comando apt di seguito.

sudo apt install letsencrypt -y

Ora genera nuovi certificati SSL usando il comandoletsencrypt.

letsencrypt certonly

Digita il tuo indirizzo email per la notifica di rinnovo e scegli "OK".

Per Letsencrypt TOS (Termini di servizio), scegli "Accetto".

Ora digita il nome del dominio del tuo discorso "discourse.hakase-labs.me".

E quando è completo, otterrai il risultato come di seguito

Nuovi certificati SSL daletsencrypt sono stati generati nella directory '/etc/letsencrypt/live'.

Passaggio 4:installa e configura Nginx come proxy inverso per il contenitore Discourse

In questo passaggio, installeremo il server Web Nginx e lo configureremo come proxy inverso per il container Discourse in esecuzione sulla porta 2045.

Installa Nginx con il comando apt di seguito.

sudo apt install nginx -y

Ora avvia Nginx e abilitalo all'avvio all'avvio usando il comando systemctl.

systemctl start nginx
systemctl enable nginx

Nginx è stato installato ed è in esecuzione sulla porta HTTP 80. Puoi verificarlo utilizzando netstat.

netstat -plntu

Il server web Nginx è stato installato sul server Ubuntu 16.04.

Successivamente, dobbiamo creare un nuovo file host virtuale per il contenitore Discourse. Vai alla directory di configurazione di nginx e crea un nuovo file 'discourse' usando l'editor vim.

cd /etc/nginx/
vim sites-available/discourse

Ora, incolla la seguente configurazione dell'host virtuale Discourse nginx.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.me;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.me;

    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.me/privkey.pem;
    include /etc/nginx/snippets/ssl.conf;
 
    location / {
        proxy_pass http://discourse.hakase-labs.me:2045/;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect http://discourse.hakase-labs.me:2045/ https://discourse.hakase-labs.me;
    }
}

Salva ed esci.

Nota:

  • Tutte le richieste HTTP verranno reindirizzate automaticamente alla connessione HTTPS.
  • Cambia la configurazione SSL con la tua directory del percorso.
  • Esiste una configurazione SSL aggiuntiva.

Ora crea un nuovo file di configurazione SSL aggiuntivo 'ssl.conf'.

vim snippets/ssl.conf

Incolla la seguente configurazione nel file.

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Salva ed esci.

E ora attiva l'host virtuale del discorso usando il comando 'ln -s', come mostrato di seguito.

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/

Verifica la configurazione e verifica che non vi siano errori, quindi riavvia il servizio.

nginx -t
systemctl restart nginx

L'installazione e la configurazione di Nginx come proxy inverso per il contenitore Discourse sono state completate.

Fase 5 - Programma di installazione di Discourse Web

Apri il tuo browser web e visita l'URL del discorso.

http://discourse.hakase-labs.me

E verrai reindirizzato alla connessione protetta HTTP. Fai clic sul pulsante "Registrati" per creare un nuovo utente amministratore.

Ora digita l'utente e la password di amministratore, quindi fai clic su "Registrati".

E riceverai una nuova email di conferma sull'attivazione dell'utente amministratore.

Di seguito è riportato un messaggio di posta elettronica di esempio per la conferma dell'account Discourse. Fare clic sul collegamento per confermare e attivare l'account amministratore.

E dovresti ottenere la pagina del discorso come mostrato di seguito. Fai clic sul pulsante "Fai clic qui per attivare il tuo account".

Ora puoi configurare il tuo forum Discourse. Fai clic sul pulsante "Avanti" e devi configurare il Forum del discorso con 13 passaggi. Oppure puoi configurarlo in un secondo momento facendo clic su "Forse dopo".

Di seguito è mostrato il Discourse Forum installato sul server web Nginx e HTTPS su Ubuntu 16.04.

Di seguito è riportato il mio dashboard di amministrazione di Discourse.

Il Discourse Forum è stato installato con Nginx come proxy inverso sul server Ubuntu 16.04.

Fase 6 - Configurazione aggiuntiva del discorso

Durante l'installazione di Discourse, potresti riscontrare un problema in cui non ricevi un'e-mail di conferma per l'attivazione dell'utente amministratore.

Per risolvere il problema, assicurati di avere l'account SMTP corretto nella configurazione app.yml. Oppure puoi attivare manualmente l'account amministratore dal tuo server.

Per attivare manualmente il tuo account amministratore, vai alla directory '/var/discourse'.

cd /var/discourse

Ora accedi al contenitore del discorso con il comando seguente.

./launcher enter app

E attiva il primo utente amministratore usando il comando rails come di seguito.

rails c
u =User.last
u.admin =true
u.activate
u.save

E ora puoi accedere al forum Discourse con il tuo nome utente e password.

Riferimenti

  • https://meta.discourse.org/
  • https://github.com/discourse/discourse/tree/master/docs

Ubuntu
  1. Come installare Docker su Ubuntu 22.04

  2. Come installare WordPress con Nginx su Ubuntu 18.04

  3. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  4. Come installare Discourse Forum con Nginx su CentOS 7

  5. Come installare Discourse su Ubuntu 20.04

Come installare Discourse Forum con Docker su CentOS 8

Come installare Nginx con ModSecurity su Ubuntu 15.04

Come installare Sentry con Docker su Ubuntu 20.04

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Come installare Mailtrain su Ubuntu 18.04 con Docker

Come installare Talkyard Forum con Nginx su Ubuntu 18.04