GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa il software Discourse Forum su Ubuntu 18.04 senza Docker

Questo tutorial ti mostrerà come installare Discourse sul server Ubuntu 18.04. Creato dal fondatore di StackExchange Jeff Atwood, Discourse è un forum Internet open source (noto anche come bacheca di messaggi online) e un software di gestione delle mailing list, con l'obiettivo di rivoluzionare la discussione nei forum. È scritto con Ember.js e Ruby on Rails, utilizzando PostgreSQL come sistema di gestione del database back-end.

Caratteristiche del discorso

  • Scorrimento infinito. Non c'è una pagina successiva in un thread. Scorri verso il basso per saperne di più.
  • aggiornamenti in tempo reale, trascina e rilascia gli allegati.
  • I thread del forum possono essere classificati in base alla popolarità.
  • La vista "miglior thread" può mostrare la migliore risposta a un thread particolare.
  • La capacità di ricordare dove stavi leggendo in un thread.
  • Espansione degli URL per fornire un riepilogo dell'URL.
  • Gli utenti possono rispondere via email.
  • Il sistema di segnalazione nasconde automaticamente i post inappropriati finché non possono essere esaminati da un membro dello staff.
  • I moderatori possono dividere, unire, localizzare o archiviare qualsiasi argomento.
  • In base al livello di fiducia, un utente può essere promosso come moderatore o retrocesso come troll, cattivo attore o spammer per mantenere civile il forum. Protezione antispam ed euristiche integrate di Akismet, inclusi il sandboxing per i nuovi utenti, il blocco dei flag utente e il nofollow standard.
  • Un sistema di badge può mostrare ciò che un utente ha raggiunto.
  • Web design reattivo e ottimizzato per i dispositivi mobili. Gli utenti possono leggere o pubblicare da laptop, tablet e telefono.
  • 100% open source gratuito. Nessuna versione commerciale a pagamento con funzionalità migliori o più complete.
  • Accesso singolo. Integra perfettamente Discourse con il sistema di accesso del tuo sito esistente.
  • Accesso social. Aggiungi facilmente accessi social comuni come Google, Facebook, Twitter, ecc.
  • App disponibile per iOS e Android.
  • Disponibile in più di 30 lingue.
  • Autenticazione a due fattori per migliorare la sicurezza dell'account.
  • E molti altri.

Prerequisiti per l'installazione di Discourse su Ubuntu 18.04 senza Docker

Il metodo ufficiale di installazione di Discourse è con Docker, che è ottimo per coloro che vogliono far funzionare rapidamente un'applicazione. Ma Docker è anche affamato di risorse. Pensaci:se hai già installato e funzionante alcuni componenti come il server di database PostgreSQL, il metodo Docker eseguirà comunque un database PostgreSQL separato all'interno del contenitore, il che è uno spreco di risorse del server. È necessario un server da 2 GB di RAM per eseguire Discourse con Docker. Ti mostrerò come eseguire Discourse su un server da 1 GB di RAM senza docker.

Per eseguire Discourse, è necessario un server con almeno 1 GB di RAM. Puoi fare clic su questo link di riferimento per creare un account su Vultr per ottenere un credito gratuito di $ 50 (solo per i nuovi utenti). Una volta che hai un account su Vultr, installa Ubuntu 18.04 sul tuo server e segui le istruzioni seguenti.

Hai anche bisogno di un nome di dominio. Ho registrato il mio nome di dominio su NameCheap perché il prezzo è basso e offrono protezione della privacy a Whois gratuita per tutta la vita.

Avviso :Ho installato Discourse con un utente sudo su Ubuntu 18.04. Per ottenere i migliori risultati, dovresti anche seguire questo tutorial con un utente sudo, non root.

Per aggiungere un utente sudo, esegui semplicemente

sudo adduser username
sudo adduser username sudo

Quindi passa al nuovo utente.

su - username

Passaggio 1:configurare il server di database PostgreSQL

Accedi al tuo server tramite SSH, quindi esegui il comando seguente per installare PostgreSQL dal repository del software Ubuntu predefinito.

sudo apt install postgresql

Il server di database PostgreSQL si avvierà automaticamente e sarà in ascolto su 127.0.0.1:5432 , come si può vedere con il comando seguente. (Se il tuo server Ubuntu non ha il netstat comando, puoi eseguire sudo apt install net-tools comando per installarlo.)

sudo netstat -lnpt | grep postgres

Se non vedi alcun output dal comando precedente, è probabilmente perché il server PostgreSQL non è in esecuzione. Puoi avviare il server PostgreSQL emettendo il seguente comando.

sudo systemctl start postgresql

Il postgres l'utente verrà creato sul sistema operativo durante il processo di installazione. È il super utente per il server di database PostgreSQL. Per impostazione predefinita, questo utente non ha password e non è necessario impostarne una perché puoi utilizzare sudo per passare a postgres utente e accedi alla console PostgreSQL.

sudo -u postgres psql

Crea un database per Discourse.

CREATE DATABASE discourse;

Crea un utente del database.

CREATE USER discourse_user;

Imposta una password per questo utente.

ALTER USER discourse_user WITH ENCRYPTED PASSWORD 'your_preferred_password';

Imposta questo utente come proprietario del database del discorso.

ALTER DATABASE discourse OWNER TO discourse_user;

Collegati al database del discorso.

\c discourse;

Crea il hstore e pg_trgm estensione.

CREATE EXTENSION hstore;

CREATE EXTENSION pg_trgm;

Esci dalla console PostgreSQL.

\q

Passaggio 2:installa Ruby su Ubuntu 18.04

Il discorso richiede Ruby 2.7 o superiore. Tuttavia, il repository Ubuntu 18.04 viene fornito con Ruby 2.5.1. L'ultima versione di Ruby è la 3.0.1. Tuttavia, non consiglio di utilizzare l'ultima versione, perché potrebbe non essere compatibile con Discourse. Per una migliore compatibilità, consiglio di installare Ruby 2.7 da un PPA.

sudo apt install software-properties-common

sudo apt-add-repository ppa:brightbox/ruby-ng

sudo apt install ruby2.7

Per controllare il tuo numero di versione di Ruby, esegui

ruby -v

Uscita:

ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux-gnu]

Fase 3:scarica e configura il discorso

Installa lo strumento git.

sudo apt install git

Supponendo che tu sia nella tua home directory, esegui il comando seguente per clonare il repository di codice Discourse da Github.

git clone https://github.com/discourse/discourse.git

Crea la directory /var/www/, se non è già stata creata.

sudo mkdir /var/www/

Sposta la directory del discorso su /var/www/ .

sudo mv discourse/ /var/www/

Cambia directory e usa l'ultima versione stabile di Discourse. Puoi andare alla pagina delle versioni di Github per vedere l'ultima versione stabile. Ora sto usando la v2.5.0.

cd /var/www/discourse/

git checkout v2.5.0

Installa bundler:il gestore delle dipendenze di Ruby.

sudo /usr/bin/gem install bundler

Installa i seguenti pacchetti per compilare il codice sorgente.

sudo apt-get install gcc build-essential ruby2.7-dev libxslt-dev libxml2-dev zlib1g-dev libpq-dev imagemagick

Quindi installa le dipendenze di Discourse. Questo processo potrebbe utilizzare molta RAM.

RAILS_ENV=production /usr/local/bin/bundle config set path '/var/www/discourse/vendor/bundle/'
RAILS_ENV=production /usr/local/bin/bundle install

Copia il file di configurazione predefinito in un nuovo file.

cp config/discourse_defaults.conf config/discourse.conf

Modifica il nuovo file.

nano config/discourse.conf

Configura la connessione al database.

# host address for db server
# This is set to blank so it tries to use sockets first
db_host = localhost

# port running db server, no need to set it
db_port = 5432

# database name running discourse
db_name = discourse

# username accessing database
db_username = discourse_user

# password used to access the db
db_password = your_password

Modifica il nome di dominio utilizzato con il tuo forum Discourse.

# hostname running the forum
hostname = "community.example.com"

Salva e chiudi il file.

Fase 4:ottieni una chiave di licenza MaxMind gratuita

Discourse viene fornito con uno strumento di analisi web integrato. Se vuoi conoscere le informazioni geografiche dei tuoi visitatori, hai bisogno di una chiave di licenza MaxMind.

Crea un account su MaxMind. Maxmind ti invierà un'e-mail. Fare clic sul collegamento nell'e-mail per impostare una password, quindi accedere al proprio account MaxMind. Quindi, seleziona My License Key sulla barra di sinistra.

Fai clic su Genera nuova chiave di licenza pulsante.

Assegna un nome alla tua chiave di licenza. Quindi scegli No , perché non è necessario utilizzare il geoipupdate programma. Quindi fai clic su Confirm pulsante.

Una volta creata la chiave di licenza, copia la chiave di licenza. Apri il file di configurazione del discorso.

nano config/discourse.conf

Trova la riga seguente e aggiungi qui la tua chiave di licenza.

maxmind_license_key=

Salva e chiudi il file.

Fase 5:inizia il discorso

Installa i pacchetti richiesti.

sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs npm

sudo npm install -g svgo

Modifica il file di configurazione dell'ambiente di produzione.

nano /var/www/discourse/config/environments/production.rb

Aggiungi il codice seguente come quinta riga.

require 'uglifier'

Quindi trova la riga seguente.

config.assets.js_compressor = :uglifier

Sostituiscilo con:

config.assets.js_compressor = Uglifier.new(:harmony => true)

Salva e chiudi il file. Quindi eseguire il comando seguente per inizializzare il database. Se vedi degli errori durante questo passaggio, esegui semplicemente di nuovo il comando.

RAILS_ENV=production /usr/local/bin/bundle exec rake db:migrate

Successivamente, compileremo risorse statiche come JavaScript, ma prima di farlo, dobbiamo modificare un file.

nano /var/www/discourse/lib/tasks/assets.rake

Dobbiamo trovare le righe che contengono brotli e commentarli per disabilitare la compressione Brotili, perché i file JavaScript verranno compressi con Gzip. Se la compressione Gzip e Brotili sono entrambe abilitate, ci saranno alcuni fastidiosi errori durante la compilazione degli asset. Trova la riga seguente (riga 281) e commentala.

brotli(path, max_compress)

Salva e chiudi il file. Quindi, esegui il comando seguente per compilare le risorse. Questo processo può utilizzare molta RAM come 1 GB.

RAILS_ENV=production /usr/local/bin/bundle exec rake assets:precompile

Quindi, modifica il puma.rb file

nano /var/www/discourse/config/puma.rb

Trova la riga seguente.

APP_ROOT = '/home/discourse/discourse'

Cambia il percorso dell'applicazione in

APP_ROOT = '/var/www/discourse'

Salva e chiudi il file. Quindi crea i socket e la directory ID processo.

mkdir /var/www/discourse/tmp/sockets/ /var/www/discourse/tmp/pids/

Inizia il discorso.

RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb

Esempio di output:

[24161] Puma starting in cluster mode...
[24161] * Version 4.3.1 (ruby 2.7.1-p146), codename: Mysterious Traveller
[24161] * Min threads: 8, max threads: 32
[24161] * Environment: development
[24161] * Process workers: 4
[24161] * Preloading application
[24161] * Listening on unix:///var/www/discourse/tmp/sockets/puma.sock
[24161] ! WARNING: Detected 4 Thread(s) started in app boot:
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:38 sleep_forever> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:40:in `pop'
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus.rb:667 sleep> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/connection/ruby.rb:68:in `select'
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:38 sleep> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:123:in `sleep'
[24161] ! #<Thread:[email protected]/discourse.rb:708 sleep> - lib/discourse.rb:711:in `sleep'
[24161] * Daemonizing...

Discourse è in ascolto su socket Unix:/var/www/discourse/tmp/sockets/puma.sock .

Fase 6:Configura il proxy inverso Nginx

Installa il server web Nginx dal repository del software Ubuntu 18.04 predefinito.

sudo apt install nginx

Copia il file di configurazione dell'host virtuale Nginx di esempio.

sudo cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf

Modifica il nuovo file.

sudo nano /etc/nginx/conf.d/discourse.conf

Trova le righe seguenti e commentale perché useremo Puma.

upstream discourse {
  server unix:/var/www/discourse/tmp/sockets/nginx.http.sock;
  server unix:/var/www/discourse/tmp/sockets/nginx.https.sock;
}

Trova le seguenti righe e decommentale.

# upstream discourse {
#       server unix:/var/www/discourse/tmp/sockets/puma.sock;
# }

Trova la riga seguente.

server_name enter.your.web.hostname.here;

Cambia il nome del server. Non dimenticare di aggiungere un record DNS A per il nome di dominio.

server_name community.example.com;

Nginx per impostazione predefinita non supporta la compressione Brotli, quindi commenta la riga seguente.

brotli_static on;

Salva e chiudi il file. Crea la directory della cache.

sudo mkdir -p /var/nginx/cache/

Quindi testa la configurazione di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Ora dovresti essere in grado di vedere il forum Discourse su http://community.example.com .

Passaggio 7:abilita HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 18.04.

sudo apt install certbot python3-certbot-nginx

Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d community.example.com

Dove

  • --nginx :Usa il plugin nginx.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts : Aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp : Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

E puoi accedere al forum Discourse tramite HTTPS (https://community.example.com ).

Se Firefox mostra un triangolo giallo nella barra degli indirizzi del browser, è perché alcune immagini sono ancora servite sul protocollo HTTP. Per risolvere questo problema, puoi modificare il file di configurazione di Discourse Nginx.

sudo nano /etc/nginx/conf.d/discourse.conf

Aggiungi la seguente riga nel blocco del server SSL per aggiornare le richieste non sicure.

add_header Content-Security-Policy upgrade-insecure-requests;

Salva e chiudi il file. E ricarica Nginx.

sudo nginx -t
sudo systemctl reload nginx

Fase 8:crea un account amministratore

Vai alla directory del discorso (/var/www/discourse/ ) ed esegui il comando seguente per creare un account amministratore.

RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create

Ti verrà chiesto di inserire un indirizzo email e una password per l'account amministratore.

Dopodiché, riavvia Discourse.

RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid restart

Ora aggiorna la pagina web di Discourse e sarai in grado di accedere.

Se vedi l'errore 502 bad gateway, allora il comando di riavvio non ha avuto successo, devi avviare Discourse con:

RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb

Una volta effettuato l'accesso, è possibile avviare la procedura guidata di configurazione. (https://community.example.com/wizard) e segui le istruzioni per completare l'installazione. Se utilizzi Cloudflare CDN, devi andare su impostazioni -> sicurezza -> Politica di sicurezza dei contenuti src e aggiungi questo URL:https://community.example.com/cdn-cgi/

Fase 9:Configura il servizio di elaborazione in background:Sidekiq

Sidekiq è un programmatore di lavoro open source. Molte attività, come l'invio di e-mail, vengono eseguite in modo asincrono da sidekiq. Modifica il sidekiq.yml file.

nano /var/www/discourse/config/sidekiq.yml

Aggiungi le seguenti righe alla fine del file. Questa configurazione è adatta per un forum Discourse con poca attività dell'utente e RAM. Se sono presenti molte attività degli utenti, valuta la possibilità di raddoppiare la concorrenza e il numero di code.

production:
  :concurrency: 2
  :queues:
    - [critical, 4]
    - [default, 2]
    - [low]
    - [ultra_low]

Salva e chiudi il file. Quindi crea un servizio Systemd per sidekiq.

sudo nano /etc/systemd/system/discourse-sidekiq.service

Aggiungi le seguenti righe nel file. Sostituisci nome utente con il tuo vero nome utente.

[Unit]
Description=Discourse sidekiq background processing service
After=multi-user.target

[Service]
Type=simple
User=username
PIDFile=/var/www/discourse/tmp/pids/sidekiq.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec sidekiq -C /var/www/discourse/config/sidekiq.yml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Salva e chiudi il file. Quindi avvia e abilita questo servizio.

sudo systemctl start discourse-sidekiq
sudo systemctl enable discourse-sidekiq

Controlla lo stato. Assicurati che sia in esecuzione.

sudo systemctl status discourse-sidekiq

La dashboard di Sidekiq è disponibile su https://community.example.com/sidekiq .

Fase 10:crea un servizio Systemd per il discorso

Per prima cosa, interrompi l'attuale processo del discorso con

cd /var/www/discourse/
RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid stop

Quindi modifica il puma.rb file.

nano /var/www/discourse/config/puma.rb

Commenta le due righe seguenti (aggiungi il # simbolo all'inizio di ogni riga) perché Systemd gestirà l'ID processo e la demonizzazione.

pidfile "#{APP_ROOT}/tmp/pids/puma.pid"

daemonize true

Quindi, crea un servizio Systemd per Discourse.

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

Aggiungi le seguenti righe nel file. Sostituisci nome utente con il tuo vero nome utente.

[Unit]
Description=Discourse service

[Service]
Type=simple
User=username
PIDFile=/var/www/discourse/tmp/pids/puma.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec puma -C config/puma.rb
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Salva e chiudi il file. Quindi avvia e abilita questo servizio.

sudo systemctl start discourse
sudo systemctl enable discourse

Controlla lo stato. Assicurati che sia in esecuzione.

sudo systemctl status discourse

Fase 11:Configura SMTP

Discourse deve inviare e-mail in modo che i visitatori possano registrare un account sul tuo forum e ricevere notifiche. Per modificare le impostazioni SMTP, apri discourse.conf file.

nano /var/www/discourse/config/discourse.conf

Puoi trovare le seguenti righe per configurare il server SMTP. Normalmente vorresti usare 587 come porta SMTP.

# address of smtp server used to send emails
smtp_address =
# port of smtp server used to send emails
smtp_port = 25

# domain passed to smtp server
smtp_domain =

# username for smtp server
smtp_user_name =

# password for smtp server
smtp_password =

# smtp authentication mechanism
smtp_authentication = plain

# enable TLS encryption for smtp connections
smtp_enable_start_tls = true

Potresti anche voler aggiungere il Da: indirizzo in questo file come di seguito.

# From: address
notification_email = [email protected]

Per come configurare il tuo server di posta, dai un'occhiata al seguente tutorial. Nota che consiglio vivamente di eseguire il server di posta iRedMail su un nuovo sistema operativo pulito. L'installazione di iRedMail su un sistema operativo che dispone di altre applicazioni Web può non riuscire e probabilmente interrompere le applicazioni esistenti.

  • Come configurare facilmente un server di posta completo su Ubuntu 18.04 con iRedMail

Se preferisci utilizzare un servizio di inoltro SMTP di terze parti, ti consiglio Sendinblue, che ti consente di inviare 9000 email al mese gratuitamente.

Dopo aver salvato le impostazioni SMTP, riavvia il servizio Discourse.

sudo systemctl restart discourse discourse-sidekiq

Quindi puoi testare l'invio di email nella dashboard di amministrazione di Discourse.

Puoi andare su mail-tester.com, che ti darà un indirizzo email univoco. Invia un'email di prova dal tuo Discourse a questo indirizzo email per conoscere il punteggio del tuo mittente.

Impossibile inviare e-mail

Se la tua istanza di Discourse non invia email e vedi il seguente messaggio nella pagina web di Discourse,

All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.

devi andare su Impostazioni -> E-mail (non Email), imposta disabilita email a no . Salva l'impostazione e riavvia Discourse.

sudo systemctl restart discourse discourse-sidekiq

Se il tuo Discourse non riesce ancora a inviare e-mail, controlla se può eseguire il ping del server di posta. Inoltre, vai su https://community.example.com/sidekiq/retries , ti mostrerà le email non riuscite e il motivo per cui l'invio delle email non è riuscito.

A volte, il discourse-sidekiq.service può non riuscire e causare il mancato invio delle email, quindi potresti voler controllare se questo servizio è in esecuzione

sudo systemctl status discourse-sidekiq

Ottimizza l'utilizzo della RAM

La configurazione predefinita di puma fa sì che Discourse utilizzi molta RAM. Per impostazione predefinita, il mio discorso utilizza 4 lavoratori, 8 thread minimi, 32 thread massimi. Se la tua RAM non è sufficiente, il server redis verrà arrestato. Per ridurre l'utilizzo della RAM, puoi diminuire il numero di worker e thread in puma.rb file.

nano /var/www/discourse/config/puma.rb

Trova le due righe seguenti.

workers "#{num_workers}"
threads 8, 32

Puoi modificare i valori come di seguito, che dice a puma di utilizzare 2 worker, 4 thread minimi e 16 thread massimi. Questa impostazione è adatta per server con solo 1 GB di RAM.

workers 2
threads 4, 16

Salva e chiudi il file. Quindi riavvia il servizio Discourse.

sudo systemctl restart discourse

Migliora il discorso

Puoi iscriverti al feed RSS delle versioni di Discourse per rimanere informato sull'ultima versione. Prima di aggiornare Discourse, consiglio vivamente di eseguire un backup manuale del database nella dashboard di amministrazione di Discourse e scaricarlo sul disco rigido.

Nota :L'aggiornamento del browser con un clic (https://community.yourdomain.com/admin/upgrade) non funziona se hai installato Discourse senza Docker. Devi seguire le istruzioni seguenti.

Per aggiornare Discourse, prima interrompi il servizio.

sudo systemctl stop discourse

Vai alla directory di installazione di Discourse.

cd /var/www/discourse/

Ottieni nuovi tag dal repository Github.

git fetch --tags

Prima di controllare l'ultima versione stabile, ti consiglio di eseguire il backup del file di configurazione nella tua home directory.

cp config/puma.rb ~
cp config/environments/production.rb ~
cp config/sidekiq.yml ~
cp config/discourse.conf ~

Quindi elimina il file Gemfile.lock.

rm Gemfile.lock

E controlla l'ultima versione stabile. Ad esempio,

git checkout v2.3.4

Se viene visualizzato il seguente messaggio di errore.

Please commit your changes or stash them before you switch branches.
Aborting

Quindi esegui il seguente comando

git stash

Quindi esegui di nuovo il comando git checkout.

Installa le dipendenze per la nuova versione di Discourse. Questo processo potrebbe utilizzare molta RAM.

RAILS_ENV=production /usr/local/bin/bundle install --path vendor/bundle/

Modifica il file asset.rake.

nano /var/www/discourse/lib/tasks/assets.rake

Trova la riga seguente (riga 273) e commentala.

brotli(path, max_compress)

Salva e chiudi il file. Quindi, esegui i seguenti comandi per preparare la produzione.

RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile

Quindi puoi verificare se il nuovo puma.rb il file di configurazione ha aggiunto alcune nuove righe, rispetto al file originale. Se non ci sono novità, puoi semplicemente sostituire il file con quello originale.

mv ~/puma.rb /var/www/discourse/config/puma.rb
mv ~/production.rb /var/www/discourse/config/environments/production.rb
mv ~/sidekiq.yml /var/www/discourse/config/sidekiq.yml
mv ~/discourse.conf /var/www/discourse/config/discourse.conf

Infine, avvia il discorso.

sudo systemctl start discourse

Ora puoi controllare la versione del discorso dalla dashboard dell'amministratore.

Personalizzazione del tema del discorso

Se non ti piace il tema bianco predefinito, puoi personalizzarlo tramite la Dashboard di amministrazione -> Personalizza -> Temi . Ci sono 3 temi installati per impostazione predefinita.

  • Sfumature di blu
  • Scuro
  • Luce

Ho selezionato il tema Sfumature di blu. Puoi anche aggiungere CSS personalizzati facendo clic su Modifica CSS/HTML pulsante. Di seguito sono riportati i CSS che ho aggiunto per il mio Discorso.

html {
    background-color:#ececec;
}

#main-outlet {
    background-color: #fff;
    padding-left: 20px;
}

.d-header {
    background-color:rgb(45, 45, 45);
}


a:visited {
    color: blueviolet;
}

a {
    color: blueviolet;
}

Come spostare il discorso su un nuovo server

Per prima cosa, fai un backup del tuo forum Discourse originale e scarica il file tar.gz. (Non modificare il nome del file.)

Quindi devi installare Discourse sul nuovo server seguendo i passaggi da 1 a 11. Quindi, carica il file di backup su /var/www/discourse/public/backups/default/ directory sul nuovo server.

Vai alla directory /var/www/discourse/ sul nuovo server.

cd /var/www/discourse/

Installa le dipendenze.

sudo gem install thor

Vai a Discourse Dashboard di amministrazione -> Impostazioni -> Backup , seleziona consenti ripristino .

Quindi, esegui il comando seguente per ripristinare il sito dal backup.

RAILS_ENV=production script/discourse restore file-name-of-the-backup-file.tar.gz

Al termine del ripristino, riavvia Discourse.

sudo systemctl restart discourse discourse-sidekiq

Aggiorna la pagina web di Discourse e vedrai di nuovo online il tuo forum Discourse originale.

Se vedi il seguente errore,

You must use Bundler 2 or greater with this lockfile.

Quindi devi aggiornare il bundler.

gem install bundler

Aggiorna gemfile.lock

RAILS_ENV=production bundle update --bundler

Puoi anche rimuovere il file Gemfile.lock in modo da non visualizzare questo errore.

Come disinstallare Discourse

Rimuovere il server di database PostgreSQL.

sudo apt remove postgresql

Rimuovere la directory webroot.

sudo rm /var/www/discourse/ -rf

Rimuovere il file di configurazione di Nginx.

sudo rm /etc/nginx/conf.d/discourse.conf

Rimuovi il certificato SSL Let's Encrypt.

sudo certbot revoke --cert-name community.example.com

Rimuovere il servizio SystemD.

sudo rm /etc/systemd/system/discourse.service
sudo rm /etc/systemd/system/discourse-sidekiq.service

Monitoraggio della salute dell'istanza del tuo discorso

Dovresti tenere d'occhio il registro degli errori del discorso, che puoi trovare tramite la Dashboard di amministrazione -> Registri -> Registri errori . Se il tuo server riceve molto traffico, potresti aver bisogno di più RAM per eseguire Discourse. Il registro seguente mostra che il mio server aveva esaurito la memoria.

Come trattare gli utenti difficili nel discorso

Se c'è un particolare utente nel tuo forum Discourse che ti sta rendendo la vita più difficile, puoi bloccare questo utente su 0: new user livello di affidabilità, quindi vai su Discourse Admin -> Settings -> Posting e richiedono post/argomenti creati da 0: new user da approvare prima di poter essere pubblicati.

Conclusione

Spero che questo articolo ti abbia aiutato a installare il software del forum Discourse su Ubuntu 18.04 senza usare Docker. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi. Abbi cura di 🙂


Ubuntu
  1. Come installare Discourse su Ubuntu 20.04 LTS

  2. Installare il server 18.04 senza connessione di rete?

  3. Come installare il server Ubuntu senza connessione di rete?

  4. Come installare Discourse su Ubuntu 20.04

  5. Come installare un server PostgreSQL su Ubuntu 18.04

Installa Mailtrain v1.24 su Ubuntu 20.04 Server senza Docker

Come installare il server VNC su Ubuntu 14.04+

Installa SonarQube su Ubuntu 20.04 LTS Server

Come installare il software Flarum Forum su Ubuntu 22.04 | 20.04

Come installare il forum phpBB su Ubuntu 22.04 | 20.04 Server

Come installare Discourse Forum su Ubuntu 14.04