Nainštalujte si diskusné fórum na Ubuntu 18.04 bez Dockera
Tento tutoriál vám ukáže, ako nainštalovať Discourse na server Ubuntu 20.04/18.04. Discourse, ktorý vytvoril zakladateľ StackExchange Jeff Atwood, je open-source internetové fórum (aka online nástenka) a softvér na správu zoznamov adries, ktorého cieľom je prevrat v diskusii na fóre. Je napísaný pomocou Ember.js a Ruby on Rails s použitím PostgreSQL ako back-endového systému správy databáz.
Vlastnosti diskurzu
- Nekonečné rolovanie. Vo vlákne nie je žiadna ďalšia stránka. Stačí prejsť nadol a prečítať si viac.
- živé aktualizácie, presúvanie príloh.
- Vlákna fóra môžu byť zoradené podľa popularity.
- Zobrazenie „najlepšie z vlákna“ môže zobraziť najlepšiu odpoveď na konkrétne vlákno.
- Schopnosť zapamätať si, kde ste vo vlákne čítali.
- Rozbalenie adries URL na poskytnutie súhrnu adresy URL.
- Používatelia môžu odpovedať prostredníctvom e-mailu.
- Systém označovania automaticky skrýva nevhodné príspevky, kým ich nemôže skontrolovať zamestnanec.
- Moderátori môžu ľubovoľnú tému rozdeliť, zlúčiť, lokálne alebo archivovať.
- Na základe úrovne dôvery môže byť používateľ povýšený ako moderátor alebo degradovaný ako trolovia, zlí herci alebo spameri, aby fórum zostalo civilizované. Zabudovaná ochrana pred spamom Akismet a heuristika vrátane karantény nového používateľa, blokovania príznaku používateľa a štandardného nofollow.
- Systém odznakov môže ukázať, čo používateľ dosiahol.
- Responzívny webový dizajn vhodný pre mobilné zariadenia. Používatelia môžu čítať alebo uverejňovať príspevky z notebooku, tabletu a telefónu.
- 100% bezplatný open source. Žiadna platená komerčná verzia s lepšími alebo kompletnejšími funkciami.
- Jednotné prihlásenie. Bezproblémovo integrujte Discourse s prihlasovacím systémom vašej existujúcej stránky.
- Sociálne prihlásenie. Jednoducho pridajte bežné sociálne prihlásenia ako Google, Facebook, Twitter atď.
- K dispozícii je aplikácia pre iOS a Android.
- Dostupné vo viac ako 30 jazykoch.
- Dvojfaktorové overenie na zlepšenie zabezpečenia účtu.
- A mnoho ďalších.
Prečo nainštalovať diskurz na Ubuntu 20.04/18.04 bez Dockera
Oficiálna metóda inštalácie Discourse je s Dockerom, čo je skvelé pre tých, ktorí chcú rýchlo spustiť aplikáciu. Docker je však tiež hladný po zdrojoch. Len sa zamyslite: Ak už máte niektoré komponenty, ako je databázový server PostgreSQL, spustené a spustené, metóda Docker bude stále prevádzkovať samostatnú databázu PostgreSQL vo vnútri kontajnera, čo je plytvanie zdrojmi servera. Na spustenie diskurzu s Dockerom potrebujete 2 GB RAM server. Ukážem vám, ako spustiť diskurz na serveri s kapacitou 1 GB RAM bez ukotvenia.
Predpoklady
Na spustenie diskurzu potrebujete server s minimálne 1 GB RAM. Ak hľadáte virtuálny privátny server (VPS), odporúčam Kamatera VPS, ktorý obsahuje:
- 30-dňová bezplatná skúšobná verzia.
- Začína na 4 dolároch mesačne (1 GB RAM)
- Vysoko výkonný VPS založený na KVM
- 9 dátových centier po celom svete vrátane USA, Kanady, Veľkej Británie, Nemecka, Holandska, Hong Kongu a Isrealu.
Podľa nižšie uvedeného návodu vytvorte svoj Linux VPS server na Kamatere.
- Ako vytvoriť Linux VPS server na Kamatere
Keď máte VPS so systémom Ubuntu 20.04/18.04, postupujte podľa pokynov nižšie.
Potrebujete tiež názov domény. Svoj názov domény som zaregistroval na NameCheap, pretože cena je nízka a poskytujú ochranu súkromia whois doživotne.
Upozornenie: Nainštaloval som Discourse s používateľom sudo na Ubuntu 20.04/18.04. Pre dosiahnutie najlepších výsledkov by ste mali postupovať podľa tohto návodu aj s používateľom sudo, nie s rootom.
Ak chcete pridať používateľa sudo, jednoducho spustite
sudo adduser username
sudo adduser username sudoPotom prejdite na nového používateľa.
su - usernameKrok 1: Nakonfigurujte databázový server PostgreSQL
Prihláste sa na svoj server cez SSH a potom spustite nasledujúci príkaz na inštaláciu PostgreSQL z predvoleného úložiska softvéru Ubuntu.
sudo apt install postgresqlDatabázový server PostgreSQL sa automaticky spustí a počúva na 127.0.0.1:5432, ako je možné vidieť na nasledujúcom príkaze. (Ak váš server Ubuntu nemá príkaz netstat, môžete ho nainštalovať spustením príkazu sudo apt install net-tools.)
sudo netstat -lnpt | grep postgresAk nevidíte žiadny výstup z vyššie uvedeného príkazu, je to pravdepodobne preto, že server PostgreSQL nebeží. Server PostgreSQL môžete spustiť zadaním nasledujúceho príkazu.
sudo systemctl start postgresqlPoužívateľ postgres bude vytvorený v OS počas procesu inštalácie. Je to super používateľ pre databázový server PostgreSQL. V predvolenom nastavení tento používateľ nemá žiadne heslo a nie je potrebné ho nastavovať, pretože pomocou sudo môžete prepnúť na používateľa postgres a prihlásiť sa do konzoly PostgreSQL.
sudo -u postgres psqlVytvorte databázu pre diskusiu.
CREATE DATABASE discourse;
Vytvorte používateľa databázy.
CREATE USER discourse_user;Nastavte heslo pre tohto používateľa.
ALTER USER discourse_user WITH ENCRYPTED PASSWORD 'your_preferred_password';Nastavte tohto používateľa ako vlastníka databázy diskurzov.
ALTER DATABASE discourse OWNER TO discourse_user;Pripojte sa k databáze diskurzov.
\c discourse;Vytvorte rozšírenia hstore a pg_trgm.
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;Odhláste sa z konzoly PostgreSQL.
\qKrok 2: Nainštalujte Ruby na Ubuntu 20.04/18.04
Diskurz vyžaduje Ruby 2.7 alebo vyšší. Úložisko Ubuntu 20.04/18.04 však prichádza s Ruby 2.5.1. Najnovšia verzia Ruby je 3.0.1. Neodporúčam však používať najnovšiu verziu, pretože nemusí byť kompatibilná s Diskurzom. Pre najlepšiu kompatibilitu odporúčam nainštalovať Ruby 2.7 z PPA.
sudo apt install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt install ruby2.7Ak chcete skontrolovať číslo verzie Ruby, spustite
ruby -vVýkon :
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux-gnu]Krok 3: Stiahnite si a nakonfigurujte diskusiu
Nainštalujte nástroj git.
sudo apt install git
Za predpokladu, že ste vo svojom domovskom adresári, spustite nasledujúci príkaz na klonovanie úložiska kódu diskurzu z Github.
git clone https://github.com/discourse/discourse.gitVytvorte adresár /var/www/, ak ešte nie je vytvorený.
sudo mkdir /var/www/Presuňte adresár diskurzu do /var/www/.
sudo mv discourse/ /var/www/Zmeňte adresár a použite najnovšie stabilné vydanie diskurzu. Ak chcete zobraziť najnovšiu stabilnú verziu, prejdite na stránku vydaní Github. Teraz používam verziu 2.5.0.
cd /var/www/discourse/
git checkout v2.5.0Nainštalujte balík: správca závislostí Ruby.
sudo /usr/bin/gem install bundlerNainštalujte nasledujúce balíky na kompiláciu zdrojového kódu.
sudo apt-get install gcc build-essential ruby2.7-dev libxslt-dev libxml2-dev zlib1g-dev libpq-dev imagemagickPotom nainštalujte závislosti diskurzu. Tento proces môže spotrebovať veľa pamäte RAM.
RAILS_ENV=production /usr/local/bin/bundle config set path '/var/www/discourse/vendor/bundle/'
RAILS_ENV=production /usr/local/bin/bundle installSkopírujte predvolený konfiguračný súbor do nového súboru.
cp config/discourse_defaults.conf config/discourse.confUpravte nový súbor.
nano config/discourse.confNakonfigurujte pripojenie k databáze.
# 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_passwordZmeňte názov domény používaný vo vašom diskusnom fóre.
# hostname running the forum
hostname = "community.example.com"Uložte a zatvorte súbor.
Krok 4: Získajte bezplatný licenčný kľúč MaxMind
Discourse prichádza so vstavaným nástrojom na webovú analýzu. Ak chcete poznať geografické informácie o svojich návštevníkoch, potrebujete licenčný kľúč MaxMind.
Vytvorte si účet na MaxMind. Maxmind vám pošle e-mail. Kliknutím na odkaz v e-maile nastavte heslo a potom sa prihláste do svojho účtu MaxMind. Ďalej vyberte Môj licenčný kľúč na ľavom paneli.
Kliknite na tlačidlo Generovať nový licenčný kľúč.
Pomenujte svoj licenčný kľúč. Potom zvoľte Nie, pretože nepotrebujeme použiť program geoipupdate. Potom kliknite na tlačidlo Potvrdiť.
Po vytvorení licenčného kľúča skopírujte licenčný kľúč. Otvorte konfiguračný súbor diskurzu.
nano config/discourse.confNájdite nasledujúci riadok a sem pridajte svoj licenčný kľúč.
maxmind_license_key=Uložte a zatvorte súbor.
Krok 5: Začnite diskusiu
Nainštalujte požadované balíčky.
sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs npm
sudo npm install -g svgoUpravte konfiguračný súbor produkčného prostredia.
nano /var/www/discourse/config/environments/production.rbPridajte nasledujúci kód ako piaty riadok.
require 'uglifier'Potom nájdite nasledujúci riadok.
config.assets.js_compressor = :uglifierNahraďte ho:
config.assets.js_compressor = Uglifier.new(:harmony => true)Uložte a zatvorte súbor. Potom spustite nasledujúci príkaz na inicializáciu databázy. Ak počas tohto kroku uvidíte nejaké chyby, jednoducho spustite príkaz znova.
RAILS_ENV=production /usr/local/bin/bundle exec rake db:migrate
Ďalej sa chystáme zostaviť statické aktíva, ako je JavaScript, ale predtým musíme upraviť súbor.
nano /var/www/discourse/lib/tasks/assets.rakeMusíme nájsť riadky, ktoré obsahujú brotli a zakomentovať ich, aby sme zakázali kompresiu Brotili, pretože súbory JavaScript budú komprimované pomocou Gzip. Ak je povolená kompresia Gzip aj Brotili, pri kompilácii aktív sa vyskytnú nepríjemné chyby. Nájdite nasledujúci riadok (riadok 281) a okomentujte ho.
brotli(path, max_compress)Uložte a zatvorte súbor. Potom spustite nasledujúci príkaz na kompiláciu aktív. Tento proces môže využívať veľa pamäte RAM, napríklad 1 GB.
RAILS_ENV=production /usr/local/bin/bundle exec rake assets:precompileAk narazíte na chybu „Ak chcete použiť syntax ES6, musí byť povolený režim harmónie“, jednoducho spustite ten istý príkaz znova a pokračujte.
Po skompilovaní súborov JavaScript a CSS môžete pokračovať ďalším príkazom.
Ďalej upravte súbor puma.rb
nano /var/www/discourse/config/puma.rbNájdite nasledujúci riadok.
APP_ROOT = '/home/discourse/discourse'Zmeňte cestu aplikácie na
APP_ROOT = '/var/www/discourse'Uložte a zatvorte súbor. Potom vytvorte sokety a adresár ID procesu.
mkdir /var/www/discourse/tmp/sockets/ /var/www/discourse/tmp/pids/Začať diskusiu.
RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rbUkážkový 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:0x000055c7d2b72d08@/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:0x000055c7d543cfb8@/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:0x000055c7d543cd88@/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:0x000055c7d5f04680@lib/discourse.rb:708 sleep> - lib/discourse.rb:711:in `sleep'
[24161] * Daemonizing...Diskurz počúva na zásuvke Unix: /var/www/discourse/tmp/sockets/puma.sock.
Krok 6: Nakonfigurujte Nginx Reverse Proxy
Nainštalujte webový server Nginx z predvoleného softvérového úložiska Ubuntu 20.04/18.04.
sudo apt install nginxSkopírujte vzorový konfiguračný súbor virtuálneho hostiteľa Nginx.
sudo cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.confUpravte nový súbor.
sudo nano /etc/nginx/conf.d/discourse.confNájdite nasledujúce riadky a okomentujte ich, pretože budeme používať Puma.
upstream discourse {
server unix:/var/www/discourse/tmp/sockets/nginx.http.sock;
server unix:/var/www/discourse/tmp/sockets/nginx.https.sock;
}Nájdite nasledujúce riadky a odkomentujte ich.
# upstream discourse {
# server unix:/var/www/discourse/tmp/sockets/puma.sock;
# }Nájdite nasledujúci riadok.
server_name enter.your.web.hostname.here;Zmeňte názov servera. Nezabudnite pridať DNS A záznam pre názov domény.
server_name community.example.com;
Nginx v predvolenom nastavení nepodporuje kompresiu Brotli, takže komentujte nasledujúci riadok.
brotli_static on;Uložte a zatvorte súbor. Vytvorte adresár vyrovnávacej pamäte.
sudo mkdir -p /var/nginx/cache/Potom otestujte konfiguráciu Nginx.
sudo nginx -tAk je test úspešný, znova načítajte Nginx, aby sa zmeny prejavili.
sudo systemctl reload nginxTeraz by ste mali vidieť diskusné fórum na http://community.example.com.
Krok 7: Povoľte HTTPS
Na šifrovanie prenosu HTTP môžeme povoliť HTTPS nainštalovaním bezplatného certifikátu TLS vydaného spoločnosťou Let’s Encrypt. Spustite nasledujúci príkaz a nainštalujte klienta Let’s Encrypt (certbot) na server Ubuntu 20.04/18.04.
sudo apt install certbot python3-certbot-nginxPotom spustite nasledujúci príkaz na získanie a inštaláciu certifikátu TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d community.example.comKde
--nginx: Použite doplnok nginx.--agree-tos: súhlasíte so zmluvnými podmienkami.--redirect: Vynúti HTTPS presmerovanie 301.--hsts: Pridajte hlavičku Strict-Transport-Security do každej odpovede HTTP. Nútiť prehliadač, aby vždy používal TLS pre doménu. Chráni pred odstránením SSL/TLS.--staple-ocsp: Povolí zošívanie OCSP. Platná odpoveď OCSP je pripojená k certifikátu, ktorý server ponúka počas TLS.
Certifikát by sa teraz mal získať a automaticky nainštalovať.
A k diskusnému fóru máte prístup cez HTTPS (https://community.example.com).
Ak Firefox zobrazuje v paneli s adresou prehliadača žltý trojuholník, je to preto, že niektoré obrázky sa stále zobrazujú prostredníctvom protokolu HTTP. Ak chcete vyriešiť tento problém, môžete upraviť konfiguračný súbor Discourse Nginx.
sudo nano /etc/nginx/conf.d/discourse.confAk chcete aktualizovať nezabezpečené požiadavky, pridajte nasledujúci riadok do bloku servera SSL.
add_header Content-Security-Policy upgrade-insecure-requests;Uložte a zatvorte súbor. A znova načítajte Nginx.
sudo nginx -t
sudo systemctl reload nginxKrok 8: Vytvorte účet správcu
Prejdite do adresára diskurzu (/var/www/discourse/) a spustite nasledujúci príkaz na vytvorenie účtu správcu.
RAILS_ENV=production /usr/local/bin/bundle exec rake admin:createBudete požiadaní o zadanie e-mailovej adresy a hesla pre účet správcu.
Potom reštartujte Discourse.
RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid restartTeraz obnovte webovú stránku Diskurzu a budete sa môcť prihlásiť.
Ak sa zobrazí chyba 502 zlá brána, potom príkaz reštartu nebol úspešný, musíte začať diskusiu s:
RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rbPo prihlásení môžete spustiť sprievodcu nastavením. (https://community.example.com/wizard) a dokončite inštaláciu podľa pokynov. Ak používate Cloudflare CDN, musíte prejsť na nastavenia -> zabezpečenie -> zásady zabezpečenia obsahu src a pridať túto adresu URL: https://community.example.com/cdn-cgi/
Krok 9: Nakonfigurujte službu spracovania na pozadí: Sidekiq
Sidekiq je plánovač úloh s otvoreným zdrojom. Mnoho úloh, ako napríklad odosielanie e-mailov, vykonáva sidekiq asynchrónne. Upravte súbor sidekiq.yml.
nano /var/www/discourse/config/sidekiq.ymlPridajte nasledujúce riadky na koniec súboru. Táto konfigurácia je vhodná pre diskusné fórum s nízkou aktivitou používateľov a RAM. Ak existuje veľa aktivít používateľov, zvážte zdvojnásobenie súbežnosti a počtu frontov.
production:
:concurrency: 2
:queues:
- [critical, 4]
- [default, 2]
- [low]
- [ultra_low]
Uložte a zatvorte súbor. Potom vytvorte službu Systemd pre sidekiq.
sudo nano /etc/systemd/system/discourse-sidekiq.servicePridajte do súboru nasledujúce riadky. Nahraďte používateľské meno svojím skutočným používateľským menom.
[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 zatvorte súbor. Potom spustite a povoľte túto službu.
sudo systemctl start discourse-sidekiq
sudo systemctl enable discourse-sidekiqSkontrolujte stav. Uistite sa, že beží.
sudo systemctl status discourse-sidekiqInformačný panel Sidekiq je dostupný na adrese https://community.example.com/sidekiq.
Krok 10: Vytvorte Systemd Service for Discourse
Najprv zastavte aktuálny proces diskusie pomocou
cd /var/www/discourse/
RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid stopPotom upravte súbor puma.rb.
nano /var/www/discourse/config/puma.rbZakomentujte nasledujúce dva riadky (na začiatok každého riadku pridajte symbol #), pretože Systemd bude spracovávať ID procesu a démonizáciu.
pidfile "#{APP_ROOT}/tmp/pids/puma.pid"
daemonize trueĎalej vytvorte službu Systemd pre Discourse.
sudo nano /etc/systemd/system/discourse.servicePridajte do súboru nasledujúce riadky. Nahraďte používateľské meno svojím skutočným používateľským menom.
[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 zatvorte súbor. Potom spustite a povoľte túto službu.
sudo systemctl start discourse
sudo systemctl enable discourseSkontrolujte stav. Uistite sa, že beží.
sudo systemctl status discourseKrok 11: Nakonfigurujte SMTP
Discourse potrebuje posielať e-maily, aby si návštevníci mohli zaregistrovať účet na vašom fóre a dostávať upozornenia. Ak chcete upraviť nastavenia SMTP, otvorte súbor discourse.conf.
nano /var/www/discourse/config/discourse.confNa konfiguráciu servera SMTP nájdete nasledujúce riadky. Normálne by ste chceli použiť 587 ako 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 = trueMôžete tiež pridať adresu Od: do tohto súboru, ako je uvedené nižšie.
# From: address
notification_email = [email Informácie o tom, ako nastaviť svoj vlastný poštový server, nájdete v nasledujúcom návode. Upozorňujeme, že dôrazne odporúčam spustenie poštového servera iRedMail na čistom operačnom systéme. Inštalácia iRedMail na OS, ktorý má iné webové aplikácie, môže zlyhať a pravdepodobne prerušiť existujúce aplikácie.
- Ako jednoducho nastaviť plnohodnotný poštový server na Ubuntu 20.04/18.04 pomocou iRedMail
Ak uprednostňujete používanie prenosovej služby SMTP tretej strany, potom odporúčam Sendinblue, ktorá vám umožňuje posielať 9 000 e-mailov mesačne zadarmo.
Po uložení nastavení SMTP reštartujte službu Discourse.
sudo systemctl restart discourse discourse-sidekiqPotom môžete otestovať odosielanie e-mailov na paneli správy diskurzu.
Môžete prejsť na mail-tester.com, ktorý vám poskytne jedinečnú e-mailovú adresu. Pošlite testovací e-mail z vášho diskurzu na túto e-mailovú adresu, aby ste poznali svoje skóre odosielateľa.
Nie je možné odoslať e-mail
Ak vaša inštancia diskurzu neposiela e-maily a na webovej stránke diskurzu sa vám zobrazí nasledujúca správa,
All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.musíte prejsť do Nastavenia -> E-mail (nie E-maily), nastaviť možnosť zakázať e-maily na nie. Uložte nastavenie a reštartujte Discourse.
sudo systemctl restart discourse discourse-sidekiqAk váš diskurz stále nemôže odosielať e-maily, skontrolujte, či môže pingovať poštový server. Prejdite tiež na https://community.example.com/sidekiq/retries, kde sa zobrazia neúspešné e-maily a dôvod, prečo zlyhalo odosielanie e-mailov.
Niekedy môže služba discourse-sidekiq.service zlyhať a spôsobiť neodosielanie e-mailov, takže možno budete chcieť skontrolovať, či je táto služba spustená
sudo systemctl status discourse-sidekiqOptimalizujte využitie pamäte RAM
Predvolená konfigurácia puma spôsobuje, že Discourse využíva veľa pamäte RAM. V predvolenom nastavení používa môj diskurz 4 pracovníkov, 8 minimálnych vlákien, 32 maximálnych vlákien. Ak vaša RAM nestačí, server redis sa zastaví. Ak chcete znížiť využitie RAM, môžete znížiť počet pracovníkov a vlákien v súbore puma.rb.
nano /var/www/discourse/config/puma.rbNájdite nasledujúce dva riadky.
workers "#{num_workers}"
threads 8, 32Hodnoty môžete zmeniť ako nižšie, čo povie pume, aby použila 2 pracovníkov, 4 minimálne vlákna a 16 maximálnych vlákien. Toto nastavenie je vhodné pre servery s iba 1 GB RAM.
workers 2
threads 4, 16Uložte a zatvorte súbor. Potom reštartujte službu Diskurz.
sudo systemctl restart discourseAktualizujte diskusiu
Môžete sa prihlásiť na odber informačného kanála RSS o vydaniach diskurzu, aby ste boli informovaní o najnovšej verzii. Pred aktualizáciou programu Discourse dôrazne odporúčam vykonať manuálnu zálohu databázy v riadiacom paneli diskurzu a stiahnuť si ju na pevný disk.
Poznámka: Inovácia prehliadača jedným kliknutím (https://community.yourdomain.com/admin/upgrade) nebude fungovať, ak ste Discourse nainštalovali bez Dockera. Musíte postupovať podľa pokynov nižšie.
Ak chcete aktualizovať Discourse, najskôr zastavte službu.
sudo systemctl stop discoursePrejdite do inštalačného adresára diskurzu.
cd /var/www/discourse/Získajte nové značky z úložiska Github.
git fetch --tagsPred skontrolovaním najnovšej stabilnej verzie vám odporúčam zálohovať konfiguračný súbor do vášho domovského adresára.
cp config/puma.rb ~
cp config/environments/production.rb ~
cp config/sidekiq.yml ~
cp config/discourse.conf ~Potom odstráňte súbor Gemfile.lock.
rm Gemfile.lockA pozrite si najnovšiu stabilnú verziu. napr.
git checkout v2.3.4Ak sa zobrazí nasledujúce chybové hlásenie.
Please commit your changes or stash them before you switch branches.
Aborting
Potom spustite nasledujúci príkaz
git stashPotom znova spustite príkaz git checkout.
Nainštalujte závislosti pre novú verziu diskurzu. Tento proces môže spotrebovať veľa pamäte RAM.
RAILS_ENV=production /usr/local/bin/bundle install --path vendor/bundle/Upravte súbor assets.rake.
nano /var/www/discourse/lib/tasks/assets.rakeNájdite nasledujúci riadok (riadok 273) a okomentujte ho.
brotli(path, max_compress)Uložte a zatvorte súbor. Potom spustite nasledujúce príkazy na prípravu na výrobu.
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompilePotom môžete skontrolovať, či nový konfiguračný súbor puma.rb pridal nejaké nové riadky v porovnaní s pôvodným súborom. Ak nie je nič nové, môžete súbor jednoducho nahradiť pôvodným súborom.
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.confNakoniec začnite diskusiu.
sudo systemctl start discourseTeraz môžete skontrolovať verziu diskurzu z hlavného panela správcu.
Prispôsobenie témy diskurzu
Ak sa vám nepáči predvolený biely motív, môžete si ho prispôsobiť pomocou hlavného panela správcu -> Prispôsobiť -> Motívy. Štandardne sú nainštalované 3 témy.
- Odtiene modrej
- Tmavý
- Svetlo
Vybral som tému Odtiene modrej. Môžete tiež pridať prispôsobené CSS kliknutím na tlačidlo Upraviť CSS/HTML. Nižšie sú CSS, ktoré som pridal pre svoj prejav.
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;
}
Reštartujte službu Discourse, aby sa zmeny prejavili.
sudo systemctl restart discourse discourse-sidekiqIntegrujte WordPress s diskurzom
Ak prevádzkujete web WordPress, môžete si na svoj web WordPress nainštalovať doplnok WP Discourse a integrovať ho s Discourse. Dovoľuje:
- Uverejňujte príspevky do Diskurzu
- Použite diskusiu pre komentáre WordPress
- Prihláste sa do diskurzu pomocou WordPress (DiscourseConnect)
Pokyny na integráciu týchto dvoch softvérov nájdete na nasledujúcej stránke.
- Inštalácia a nastavenie zásuvného modulu WP Discourse
Ako presunúť diskurz na nový server
Najprv si vytvorte zálohu svojho pôvodného diskusného fóra a stiahnite si súbor tar.gz. (Nemeňte názov súboru.)
Potom musíte nainštalovať Discourse na nový server podľa krokov 1 až 11. Potom nahrajte záložný súbor do adresára /var/www/discourse/public/backups/default/ na novom serveri .
Prejdite do adresára /var/www/discourse/ na novom serveri.
cd /var/www/discourse/Nainštalujte závislosti.
sudo gem install thorPrejdite na Panel správcu -> Nastavenia -> Zálohy a začiarknite možnosť povoliť obnovenie.
Potom spustite nasledujúci príkaz na obnovenie lokality zo zálohy.
RAILS_ENV=production script/discourse restore file-name-of-the-backup-file.tar.gzPo dokončení obnovy reštartujte Discourse.
sudo systemctl restart discourse discourse-sidekiqObnovte webovú stránku Diskusu a uvidíte svoje pôvodné diskusné fórum opäť online.
Ak sa zobrazí nasledujúca chyba,
You must use Bundler 2 or greater with this lockfile.Potom musíte aktualizovať balík.
gem install bundlerAktualizujte súbor gemfile.lock
RAILS_ENV=production bundle update --bundlerMôžete tiež odstrániť súbor Gemfile.lock, aby sa vám táto chyba nezobrazila.
Ako odinštalovať diskurz
Odstrániť databázový server PostgreSQL.
sudo apt remove postgresqlOdstráňte adresár webroot.
sudo rm /var/www/discourse/ -rfOdstráňte konfiguračný súbor Nginx.
sudo rm /etc/nginx/conf.d/discourse.confOdstráňte certifikát Let's Encrypt SSL.
sudo certbot revoke --cert-name community.example.comOdstráňte službu SystemD.
sudo rm /etc/systemd/system/discourse.service
sudo rm /etc/systemd/system/discourse-sidekiq.serviceMonitorovanie zdravia Inštancia vášho diskurzu
Mali by ste sledovať denník chýb diskurzu, ktorý nájdete cez Správcovský panel -> Denníky -> Protokoly chýb. Ak má váš server veľkú návštevnosť, možno budete potrebovať viac pamäte RAM na spustenie diskurzu. Nasledujúci protokol ukazuje, že môj server mal nedostatok pamäte.
Ako sa vysporiadať s náročnými používateľmi v diskusii
Ak je na vašom diskusnom fóre konkrétny používateľ, ktorý vám sťažuje život, môžete tohto používateľa uzamknúť na úroveň dôveryhodnosti 0: nový používateľ a potom prejsť na Správca Diskusu - > Nastavenia -> Uverejňovanie a vyžaduje, aby príspevky/témy vytvorené 0: novým používateľom boli pred zverejnením schválené.
Záver
Dúfam, že vám tento článok pomohol nainštalovať softvér diskusného fóra na Ubuntu 20.04/18.04 bez použitia Docker. Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu a získajte ďalšie tipy a triky. Opatruj sa 🙂

















