GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte software Diskusního fóra na Ubuntu 18.04 bez Dockeru

Tento tutoriál vám ukáže, jak nainstalovat Discourse na server Ubuntu 18.04. Discourse, vytvořený zakladatelem StackExchange Jeffem Atwoodem, je open source internetovým fórem (také známým jako online nástěnka) a softwarem pro správu e-mailových konferencí s cílem převratně změnit diskuzi na fóru. Je napsán pomocí Ember.js a Ruby on Rails s využitím PostgreSQL jako back-endového systému správy databází.

Funkce diskurzu

  • Nekonečné posouvání. Ve vláknu není žádná další stránka. Chcete-li si přečíst více, přejděte dolů.
  • živé aktualizace, přetahování příloh.
  • Vlákna fóra lze seřadit podle oblíbenosti.
  • Zobrazení „nejlepší z vlákna“ může zobrazit nejlepší odpověď na konkrétní vlákno.
  • Schopnost zapamatovat si, kde jste ve vláknu četli.
  • Rozbalení adres URL za účelem poskytnutí souhrnu adresy URL.
  • Uživatelé mohou odpovídat prostřednictvím e-mailu.
  • Systém nahlašování automaticky skryje nevhodné příspěvky, dokud je nemůže zkontrolovat zaměstnanec.
  • Moderátoři mohou rozdělit, sloučit, lokálně nebo archivovat jakékoli téma.
  • Na základě úrovně důvěry může být uživatel povýšen na moderátora nebo degradován jako trollové, špatní herci nebo spameři, aby fórum zůstalo civilizované. Vestavěná ochrana před spamem Akismet a heuristika včetně nového uživatelského sandboxu, blokování uživatelských příznaků a standardního nofollow.
  • Systém odznaků může ukázat, čeho uživatel dosáhl.
  • Responzivní webový design vhodný pro mobilní zařízení. Uživatelé mohou číst nebo přidávat příspěvky z notebooku, tabletu a telefonu.
  • 100% bezplatný open source. Žádná placená komerční verze s lepšími nebo úplnějšími funkcemi.
  • Jednotné přihlášení. Bezproblémově integrujte Discourse s přihlašovacím systémem vašeho stávajícího webu.
  • Přihlášení do sociálních sítí. Snadno přidejte běžná sociální přihlášení, jako je Google, Facebook, Twitter atd.
  • K dispozici je aplikace pro iOS a Android.
  • K dispozici ve více než 30 jazycích.
  • Dvoufaktorové ověření pro zlepšení zabezpečení účtu.
  • A mnoho dalších.

Předpoklady instalace diskurzu na Ubuntu 18.04 bez Docker

Oficiální způsob instalace Discourse je s Dockerem, což je skvělé pro ty, kteří chtějí aplikaci rychle zprovoznit. Docker je ale také hladový po zdrojích. Jen o tom přemýšlejte:Pokud již máte některé komponenty, jako je databázový server PostgreSQL, zprovozněny a spuštěny, metoda Docker bude stále provozovat samostatnou databázi PostgreSQL uvnitř kontejneru, což je plýtvání zdroji serveru. Ke spuštění diskurzu s Dockerem potřebujete 2GB RAM server. Ukážu vám, jak spustit Discourse na 1GB RAM serveru bez dockeru.

Ke spuštění Discourse potřebujete server s alespoň 1 GB RAM. Kliknutím na tento odkaz můžete vytvořit účet u Vultr a získat kredit 50 $ zdarma (pouze pro nové uživatele). Jakmile budete mít účet na Vultr, nainstalujte si Ubuntu 18.04 na svůj server a postupujte podle pokynů níže.

Potřebujete také název domény. Zaregistroval jsem své doménové jméno na NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

Upozornění :Nainstaloval jsem Discourse s uživatelem sudo na Ubuntu 18.04. Chcete-li dosáhnout nejlepších výsledků, měli byste tento návod sledovat také s uživatelem sudo, nikoli s uživatelem root.

Chcete-li přidat uživatele sudo, jednoduše spusťte

sudo adduser username
sudo adduser username sudo

Poté přepněte na nového uživatele.

su - username

Krok 1:Konfigurace databázového serveru PostgreSQL

Přihlaste se na svůj server přes SSH a poté spusťte následující příkaz k instalaci PostgreSQL z výchozího úložiště softwaru Ubuntu.

sudo apt install postgresql

Databázový server PostgreSQL se automaticky spustí a naslouchá na 127.0.0.1:5432 , jak je vidět na následujícím příkazu. (Pokud váš server Ubuntu nemá netstat můžete spustit sudo apt install net-tools příkaz k instalaci.)

sudo netstat -lnpt | grep postgres

Pokud nevidíte žádný výstup z výše uvedeného příkazu, je to pravděpodobně proto, že server PostgreSQL neběží. Server PostgreSQL můžete spustit zadáním následujícího příkazu.

sudo systemctl start postgresql

postgres uživatel bude vytvořen v OS během procesu instalace. Je to super uživatel pro databázový server PostgreSQL. Ve výchozím nastavení tento uživatel nemá žádné heslo a není třeba jej nastavovat, protože můžete použít sudo pro přepnutí do postgres a přihlaste se do konzole PostgreSQL.

sudo -u postgres psql

Vytvořte databázi pro diskurz.

CREATE DATABASE discourse;

Vytvořte uživatele databáze.

CREATE USER discourse_user;

Nastavte heslo pro tohoto uživatele.

ALTER USER discourse_user WITH ENCRYPTED PASSWORD 'your_preferred_password';

Nastavte tohoto uživatele jako vlastníka databáze diskurzu.

ALTER DATABASE discourse OWNER TO discourse_user;

Připojte se k diskurzní databázi.

\c discourse;

Vytvořte hstore a pg_trgm rozšíření.

CREATE EXTENSION hstore;

CREATE EXTENSION pg_trgm;

Odhlaste se z konzole PostgreSQL.

\q

Krok 2:Nainstalujte Ruby na Ubuntu 18.04

Rozhovor vyžaduje Ruby 2.7 nebo vyšší. Úložiště Ubuntu 18.04 však přichází s Ruby 2.5.1. Nejnovější verze Ruby je 3.0.1. Nedoporučuji však používat nejnovější verzi, protože nemusí být kompatibilní s Discourse. Pro nejlepší kompatibilitu doporučuji nainstalovat Ruby 2.7 z PPA.

sudo apt install software-properties-common

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

sudo apt install ruby2.7

Chcete-li zkontrolovat číslo verze Ruby, spusťte

ruby -v

Výstup:

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

Krok 3:Stažení a konfigurace diskurzu

Nainstalujte nástroj git.

sudo apt install git

Za předpokladu, že jste ve svém domovském adresáři, spusťte následující příkaz pro klonování úložiště kódu diskurzu z Github.

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

Vytvořte adresář /var/www/, pokud ještě není vytvořen.

sudo mkdir /var/www/

Přesuňte adresář diskursu do /var/www/ .

sudo mv discourse/ /var/www/

Změňte adresář a použijte nejnovější stabilní verzi Discourse. Můžete přejít na stránku vydání Github a zobrazit nejnovější stabilní verzi. Nyní používám verzi 2.5.0.

cd /var/www/discourse/

git checkout v2.5.0

Nainstalujte bundler:správce závislostí Ruby.

sudo /usr/bin/gem install bundler

Pro kompilaci zdrojového kódu nainstalujte následující balíčky.

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

Poté nainstalujte závislosti diskursu. Tento proces může spotřebovat hodně paměti RAM.

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

Zkopírujte výchozí konfigurační soubor do nového souboru.

cp config/discourse_defaults.conf config/discourse.conf

Upravte nový soubor.

nano config/discourse.conf

Nakonfigurujte připojení k databázi.

# 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

Změňte název domény používaný ve vašem diskurzním fóru.

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

Uložte a zavřete soubor.

Krok 4:Získejte bezplatný licenční klíč MaxMind

Discourse přichází s vestavěným nástrojem pro webovou analýzu. Pokud chcete znát geografické informace vašich návštěvníků, potřebujete licenční klíč MaxMind.

Vytvořte si účet u MaxMind. Maxmind vám pošle e-mail. Kliknutím na odkaz v e-mailu nastavte heslo a poté se přihlaste ke svému účtu MaxMind. Dále vyberte My License Key na levé liště.

Klikněte na Vygenerovat nový licenční klíč tlačítko.

Pojmenujte svůj licenční klíč. Poté zvolte No , protože nepotřebujeme používat geoipupdate program. Poté klikněte na Confirm tlačítko.

Jakmile je licenční klíč vytvořen, zkopírujte jej. Otevřete konfigurační soubor diskurzu.

nano config/discourse.conf

Najděte následující řádek a přidejte sem svůj licenční klíč.

maxmind_license_key=

Uložte a zavřete soubor.

Krok 5:Zahajte diskurz

Nainstalujte požadované balíčky.

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

sudo npm install -g svgo

Upravte konfigurační soubor produkčního prostředí.

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

Přidejte následující kód jako pátý řádek.

require 'uglifier'

Pak najděte následující řádek.

config.assets.js_compressor = :uglifier

Nahraďte jej řetězcem:

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

Uložte a zavřete soubor. Poté spusťte následující příkaz pro inicializaci databáze. Pokud během tohoto kroku uvidíte nějaké chyby, jednoduše spusťte příkaz znovu.

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

Dále se chystáme zkompilovat statická aktiva, jako je JavaScript, ale než to uděláme, musíme upravit soubor.

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

Musíme najít řádky, které obsahují brotli a zakomentujte je, abyste zakázali kompresi Brotili, protože soubory JavaScriptu budou komprimovány pomocí Gzip. Pokud je povolena komprese Gzip i Brotili, dojde při kompilaci aktiv k nepříjemným chybám. Najděte následující řádek (řádek 281) a okomentujte jej.

brotli(path, max_compress)

Uložte a zavřete soubor. Dále spusťte následující příkaz pro kompilaci datových zdrojů. Tento proces může využívat spoustu paměti RAM, například 1 GB.

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

Dále upravte puma.rb soubor

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

Najděte následující řádek.

APP_ROOT = '/home/discourse/discourse'

Změňte cestu aplikace na

APP_ROOT = '/var/www/discourse'

Uložte a zavřete soubor. Poté vytvořte sokety a adresář ID procesu.

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

Zahájit diskurz.

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

Ukázkový výstup:

[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...

Diskurz naslouchá na Unixovém socketu:/var/www/discourse/tmp/sockets/puma.sock .

Krok 6:Nakonfigurujte Nginx Reverse Proxy

Nainstalujte webový server Nginx z výchozího úložiště softwaru Ubuntu 18.04.

sudo apt install nginx

Zkopírujte ukázkový konfigurační soubor virtuálního hostitele Nginx.

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

Upravte nový soubor.

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

Najděte následující řádky a zakomentujte je, protože budeme používat Puma.

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

Najděte následující řádky a odkomentujte je.

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

Najděte následující řádek.

server_name enter.your.web.hostname.here;

Změňte název serveru. Nezapomeňte pro název domény přidat záznam DNS A.

server_name community.example.com;

Nginx ve výchozím nastavení nepodporuje kompresi Brotli, proto zakomentujte následující řádek.

brotli_static on;

Uložte a zavřete soubor. Vytvořte adresář mezipaměti.

sudo mkdir -p /var/nginx/cache/

Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Nyní byste měli být schopni vidět diskusní fórum na adrese http://community.example.com .

Krok 7:Povolte HTTPS

Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu 18.04.

sudo apt install certbot python3-certbot-nginx

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

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

Kde

  • --nginx :Použijte plugin nginx.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Ke každé odpovědi HTTP přidejte záhlaví Strict-Transport-Security. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp : Povoluje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Certifikát by nyní měl být získán a automaticky nainstalován.

A k diskurznímu fóru máte přístup přes HTTPS (https://community.example.com ).

Pokud Firefox zobrazuje v adresním řádku prohlížeče žlutý trojúhelník, je to proto, že některé obrázky jsou stále zobrazovány pomocí protokolu HTTP. Chcete-li tento problém vyřešit, můžete upravit konfigurační soubor Discourse Nginx.

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

Chcete-li upgradovat nezabezpečené požadavky, přidejte do bloku serveru SSL následující řádek.

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

Uložte a zavřete soubor. A znovu načtěte Nginx.

sudo nginx -t
sudo systemctl reload nginx

Krok 8:Vytvořte účet správce

Přejděte do adresáře diskursu (/var/www/discourse/ ) a spusťte následující příkaz k vytvoření účtu správce.

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

Budete požádáni o zadání e-mailové adresy a hesla pro účet správce.

Poté restartujte Discourse.

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

Nyní obnovte webovou stránku Diskurzu a budete se moci přihlásit.

Pokud vidíte chybu 502 špatná brána, pak příkaz restart nebyl úspěšný, musíte začít Discourse s:

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

Po přihlášení můžete spustit průvodce nastavením. (https://community.example.com/wizard) a dokončete instalaci podle pokynů. Pokud používáte Cloudflare CDN, musíte přejít do nastavení -> zabezpečení -> zásady zabezpečení obsahu src a přidejte tuto adresu URL:https://community.example.com/cdn-cgi/

Krok 9:Konfigurace služby zpracování na pozadí:Sidekiq

Sidekiq je plánovač úloh s otevřeným zdrojovým kódem. Mnoho úkolů, jako je odesílání e-mailů, se provádí asynchronně pomocí sidekiq. Upravte sidekiq.yml soubor.

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

Přidejte následující řádky na konec souboru. Tato konfigurace je vhodná pro diskusní fórum s nízkou aktivitou uživatelů a RAM. Pokud existuje mnoho uživatelských aktivit, zvažte zdvojnásobení souběžnosti a počtu front.

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

Uložte a zavřete soubor. Poté vytvořte službu Systemd pro sidekiq.

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

Přidejte do souboru následující řádky. Nahraďte uživatelské jméno s vaším skutečným uživatelským jménem.

[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

Uložte a zavřete soubor. Poté spusťte a povolte tuto službu.

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

Zkontrolujte stav. Ujistěte se, že běží.

sudo systemctl status discourse-sidekiq

Panel Sidekiq je k dispozici na adrese https://community.example.com/sidekiq .

Krok 10:Vytvořte Systemd Service for Discourse

Nejprve zastavte aktuální proces diskurzu pomocí

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

Poté upravte puma.rb soubor.

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

Zakomentujte následující dva řádky (přidejte # symbol na začátku každého řádku), protože Systemd bude zpracovávat ID procesu a démonizaci.

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

daemonize true

Dále vytvořte službu Systemd pro Discourse.

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

Přidejte do souboru následující řádky. Nahraďte uživatelské jméno s vaším skutečným uživatelským jménem.

[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

Uložte a zavřete soubor. Poté spusťte a povolte tuto službu.

sudo systemctl start discourse
sudo systemctl enable discourse

Zkontrolujte stav. Ujistěte se, že běží.

sudo systemctl status discourse

Krok 11:Konfigurace SMTP

Discourse musí posílat e-maily, aby si návštěvníci mohli zaregistrovat účet na vašem fóru a dostávat upozornění. Chcete-li upravit nastavení SMTP, otevřete discourse.conf soubor.

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

Pro konfiguraci serveru SMTP naleznete následující řádky. Normálně byste chtěli použít 587 jako port 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

Můžete také přidat Od: adresu v tomto souboru jako níže.

# From: address
notification_email = [email protected]

Informace o tom, jak nastavit svůj vlastní poštovní server, naleznete v následujícím návodu. Poznámka že vřele doporučuji provozovat poštovní server iRedMail na čerstvém čistém OS. Instalace iRedMail na OS, který má jiné webové aplikace, může selhat a pravděpodobně přerušit stávající aplikace.

  • Jak snadno nastavit plně vybavený poštovní server na Ubuntu 18.04 pomocí iRedMail

Pokud dáváte přednost použití přenosové služby SMTP třetí strany, pak doporučuji Sendinblue, která vám umožní odeslat 9 000 e-mailů měsíčně zdarma.

Po uložení nastavení SMTP restartujte službu Discourse.

sudo systemctl restart discourse discourse-sidekiq

Poté můžete otestovat odesílání e-mailů na řídicím panelu pro správu diskurzu.

Můžete přejít na mail-tester.com, který vám poskytne jedinečnou e-mailovou adresu. Pošlete testovací e-mail z vašeho diskursu na tuto e-mailovou adresu, abyste věděli své skóre odesílatele.

Nelze odeslat e-mail

Pokud vaše instance Discourse neodesílá e-maily a na webové stránce Discourse vidíte následující zprávu,

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

musíte přejít do Nastavení -> E-mail (ne E-maily), nastavte deaktivovat e-maily na ne . Uložte nastavení a restartujte Discourse.

sudo systemctl restart discourse discourse-sidekiq

Pokud váš diskurz stále nemůže odesílat e-maily, zkontrolujte, zda může pingnout poštovní server. Přejděte také na https://community.example.com/sidekiq/retries , zobrazí vám neúspěšné e-maily a důvod, proč se odeslání e-mailu nezdařilo.

Někdy discourse-sidekiq.service může selhat a způsobit, že se e-mail neodešle, takže možná budete chtít zkontrolovat, zda tato služba běží

sudo systemctl status discourse-sidekiq

Optimalizace využití paměti RAM

Výchozí konfigurace puma způsobuje, že Discourse využívá hodně paměti RAM. Ve výchozím nastavení používá můj diskurz 4 pracovníky, 8 minimálních vláken, 32 maximálních vláken. Pokud vaše RAM nestačí, server redis bude zastaven. Chcete-li snížit využití paměti RAM, můžete snížit počet pracovníků a vláken v puma.rb soubor.

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

Najděte následující dva řádky.

workers "#{num_workers}"
threads 8, 32

Hodnoty můžete změnit jako níže, což říká pumě, aby použila 2 dělníky, 4 minimální vlákna a 16 maximálních vláken. Toto nastavení je vhodné pro servery s pouze 1 GB RAM.

workers 2
threads 4, 16

Uložte a zavřete soubor. Poté restartujte službu Discourse.

sudo systemctl restart discourse

Upgradujte diskurz

Můžete se přihlásit k odběru kanálu RSS o vydáních diskurzu, abyste byli informováni o nejnovější verzi. Před upgradem aplikace Discourse důrazně doporučuji provést ruční zálohu databáze v řídicím panelu správy diskursu a stáhnout ji na váš pevný disk.

Poznámka :Upgrade prohlížeče jedním kliknutím (https://community.yourdomain.com/admin/upgrade) nefunguje, pokud jste nainstalovali Discourse bez Dockeru. Musíte postupovat podle pokynů níže.

Chcete-li upgradovat Discourse, nejprve zastavte službu.

sudo systemctl stop discourse

Přejděte do instalačního adresáře diskursu.

cd /var/www/discourse/

Získejte nové značky z úložiště Github.

git fetch --tags

Než si zkontrolujete nejnovější stabilní verzi, doporučuji zálohovat konfigurační soubor do vašeho domovského adresáře.

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

Poté smažte soubor Gemfile.lock.

rm Gemfile.lock

A podívejte se na nejnovější stabilní verzi. Například,

git checkout v2.3.4

Pokud se zobrazí následující chybová zpráva.

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

Poté spusťte následující příkaz

git stash

Poté znovu spusťte příkaz git checkout.

Nainstalujte závislosti pro novou verzi diskurzu. Tento proces může spotřebovat hodně paměti RAM.

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

Upravte soubor assets.rake.

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

Najděte následující řádek (řádek 273) a okomentujte jej.

brotli(path, max_compress)

Uložte a zavřete soubor. Dále spusťte následující příkazy pro přípravu na produkci.

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

Pak můžete zkontrolovat, zda je nový puma.rb konfigurační soubor přidal několik nových řádků ve srovnání s původním souborem. Pokud není nic nového, můžete soubor jednoduše nahradit původním.

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

Nakonec spusťte Diskurz.

sudo systemctl start discourse

Nyní můžete zkontrolovat verzi diskurzu z administračního panelu.

Přizpůsobení tématu diskurzu

Pokud se vám nelíbí výchozí bílý motiv, můžete si ho upravit pomocí Administrátorského panelu -> Přizpůsobit -> Motivy . Ve výchozím nastavení jsou nainstalovány 3 motivy.

  • Odstíny modré
  • Tmavý
  • Světlo

Vybral jsem si téma Odstíny modré. Můžete také přidat přizpůsobené CSS kliknutím na Upravit CSS/HTML knoflík. Níže jsou CSS, které jsem přidal pro svůj projev.

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

Jak přesunout diskurz na nový server

Nejprve si vytvořte zálohu svého původního diskurzního fóra a stáhněte si soubor tar.gz. (Neměňte název souboru.)

Poté musíte nainstalovat Discourse na nový server podle kroků 1 až 11. Dále nahrajte záložní soubor do /var/www/discourse/public/backups/default/ adresář na novém serveru.

Přejděte do adresáře /var/www/discourse/ na novém serveru.

cd /var/www/discourse/

Nainstalujte závislosti.

sudo gem install thor

Přejděte na Administrátorský panel Diskuse -> Nastavení -> Zálohy , zaškrtněte povolit obnovení .

Poté spusťte následující příkaz pro obnovení webu ze zálohy.

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

Po dokončení obnovy restartujte Discourse.

sudo systemctl restart discourse discourse-sidekiq

Obnovte webovou stránku diskurzu a uvidíte své původní fórum diskurzu zpět online.

Pokud se zobrazí následující chyba,

You must use Bundler 2 or greater with this lockfile.

Poté musíte aktualizovat balíček.

gem install bundler

Aktualizujte soubor gemfile.lock

RAILS_ENV=production bundle update --bundler

Můžete také odstranit soubor Gemfile.lock, aby se vám tato chyba nezobrazovala.

Jak odinstalovat diskurz

Odeberte databázový server PostgreSQL.

sudo apt remove postgresql

Odeberte adresář webroot.

sudo rm /var/www/discourse/ -rf

Odeberte konfigurační soubor Nginx.

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

Odeberte certifikát Let’s Encrypt SSL.

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

Odebrat službu SystemD.

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

Monitorování zdravotního stavu vaší instance diskurzu

Měli byste sledovat protokol chyb diskurzu, který najdete na Administrátorském panelu -> Protokoly -> Protokoly chyb . Pokud váš server zaznamenává velký provoz, možná budete potřebovat více paměti RAM ke spuštění Discourse. Následující protokol ukazuje, že můj server měl nedostatek paměti.

Jak jednat s obtížnými uživateli v diskurzu

Pokud je na vašem diskurzním fóru konkrétní uživatel, který vám ztěžuje život, můžete tohoto uživatele uzamknout na 0: new user úroveň důvěryhodnosti, poté přejděte na Admin diskursu -> Settings -> Posting a vyžadují příspěvky/témata vytvořená 0: new user ke schválení před jejich zveřejněním.

Závěr

Doufám, že vám tento článek pomohl nainstalovat software diskusního fóra na Ubuntu 18.04 bez použití Dockeru. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂


Ubuntu
  1. Jak nainstalovat diskurz na Ubuntu 20.04 LTS

  2. Instalovat server 18.04 bez připojení k síti?

  3. Jak nainstalovat server Ubuntu bez síťového připojení?

  1. Jak nainstalovat Docker CE (Community Edition) na Ubuntu Server

  2. Jak nainstalovat diskurz na Ubuntu 20.04

  3. Jak nainstalovat server PostgreSQL na Ubuntu 18.04

  1. Jak nainstalovat diskusní fórum s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Mailtrain Newsletter Software na Ubuntu 18.04

  3. Jak nainstalovat diskusní fórum na Ubuntu 20.04 LTS