Discourse je bezplatný software s otevřeným zdrojovým kódem pro vytváření komunity na internetovém fóru a seznamu adresátů. Byl vytvořen v roce 2013 a napsán v programovacích jazycích Ruby a Javascript. Software diskurzního fóra používá mnoho organizací, včetně Codeacademy, Udacity, Twitter Developers a Docker Community Forum.
V tomto tutoriálu vám krok za krokem ukážeme, jak nainstalovat a nakonfigurovat diskusní fórum s webovým serverem Nginx na Ubuntu 16.04. Konkrétně vám ukážeme, jak nainstalovat software Discourse Forum Software, nakonfigurovat Nginx jako reverzní proxy pro aplikaci Discourse a zabezpečit software Diskusního fóra pomocí bezplatného SSL od společnosti Letsencrypt.
Co uděláme
- Nainstalujte Docker na Ubuntu 16.04
- Nainstalujte a nakonfigurujte software Diskusního fóra
- Vygenerujte SSL Letsencrypt na Ubuntu 16.04
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro Discourse
- Instalátor webu diskursu
- Další konfigurace diskurzu
Předpoklady
- Ubuntu 16.04
- Kořenová oprávnění
- Účet SMTP – Mailgun, SendGrid, Mailjet atd.
Krok 1 – Instalace Dockeru na Ubuntu 16.04
Software Discourse je napsán v Ruby a Javascriptu, používá PostgreSQL jako hlavní databázi a Redis jako mezipaměť a pro přechodná data. Nainstalujeme Discourse pod kontejner Docker.
Proces instalace bude proveden na Ubuntu 16.04. Nejprve tedy nainstalujte Docker pomocí příkazu níže.
wget -qO- https://get.docker.com/ | sh
Po dokončení instalace zkontrolujte službu dockeru a ujistěte se, že je již v systému spuštěna.
systemctl status docker
A také se ujistěte, že je Docker ve spouštěcí spouštěcí aplikaci.
systemctl is-enabled docker
Krok 2 – Instalace a konfigurace diskuzního fóra
V tomto kroku nainstalujeme a nakonfigurujeme software Discourse. Stáhneme skript diskurzu docker-compose, nakonfigurujeme jej podle našich požadavků a poté vytvoříme nový kontejner Docker pro software diskurzního fóra.
Vytvořte nový adresář '/var/discourse' a naklonujte instalační skript.
mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Nyní přejděte do adresáře 'discourse' a zkopírujte ukázku souboru docker-compose.
cd /var/discourse
cp samples/standalone.yml containers/app.yml
Upravte soubor 'app.yml' pomocí editoru vim.
vim containers/app.yml
Konfigurovat mapování portu Docker
Ve výchozím nastavení budou všechny požadavky HTTP a HTTPS zpracovány proxy serverem Docker. A pro tento návod k tomuto účelu použijeme Nginx – veškerý HTTP a HTTPS bude zpracován webovým serverem Nginx.
Musíme tedy změnit konfiguraci mapování portů dockeru. Kontejner diskursu bude mít pouze připojení HTTP a hostitel bude otevírat nový port '2045' a mapovat na port kontejneru 80.
Odkomentujte řádek HTTPS a změňte řádek HTTP na nový port '2045'.
expose:
- "2045:80" # http
# - "443:443" # https
Konfigurace názvu domény diskurzu
Zadejte svůj vlastní název domény pro diskurz nainstalovaný na řádku 'DISCOURSE_HOSTNAME', jak je uvedeno níže.
DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'
A zadejte svou e-mailovou adresu do řádku „DISCOURSE_DEVELOPER_EMAIL“.
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
Konfigurace SMTP
Toto je nejdůležitější konfigurace pro Discourse Software. Ujistěte se, že máte SMTP účet pro instalaci Discourse – můžete si koupit nebo vyzkoušet bezplatný SMTP účet od Mailgun, Mailjet nebo SendGrid.
V tomto tutoriálu budeme používat bezplatný účet SMTP od Mailgun. Odkomentujte konfiguraci SMTP a zadejte svůj účet, jak je uvedeno níže.
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
DISCOURSE_SMTP_PASSWORD: mypassword
Uložte a ukončete.
Dále vytvořte nový obrázek Discourse Docker založený na konfiguraci šablony app.yml.
sudo ./launcher bootstrap app
Poté spusťte/inicializujte nový kontejner diskursu pomocí příkazu níže.
sudo ./launcher start app
Kontejner diskursu by měl být v provozu – zkontrolujte jej pomocí příkazu docker.
docker ps -a
Zkontrolujte otevřený port hostitele pomocí netstat a ujistěte se, že je na seznamu nový docker-proxy port 2045.
netstat -plntu
Software Discourse Forum byl nainstalován pod kontejnerem docker na hostitelském Ubuntu 16.04.
Krok 3 – Vygenerování SSL Letsencrypt na Ubuntu 16.04
Diskusní fórum poběží pod zabezpečeným připojením HTTP a bude ho spravovat webový server Nginx. Pro tuto příručku použijeme bezplatné SSL od Letsencrypt a musíme nainstalovat klienta letsencrypt na server.
Nainstalujte letsencrypt pomocí příkazu apt níže.
sudo apt install letsencrypt -y
Nyní vygenerujte nové certifikáty SSL pomocí příkazu letsencrypt.
letsencrypt certonly
Zadejte svou e-mailovou adresu pro obnovení oznámení a zvolte 'OK'.
Pro Letsencrypt TOS (Terms Of Service) zvolte 'Souhlasím'.
Nyní zadejte název domény diskurzu „discourse.hakase-labs.me“.
A až to bude hotové, dostanete výsledek, jak je uvedeno níže
V adresáři '/etc/letsencrypt/live' byly vygenerovány nové certifikáty SSL z letsencrypt.
Krok 4 – Instalace a konfigurace Nginx jako reverzního proxy pro kontejner diskursu
V tomto kroku nainstalujeme webový server Nginx a nakonfigurujeme jej jako reverzní proxy pro kontejner diskursu, který běží na portu 2045.
Nainstalujte Nginx pomocí příkazu apt níže.
sudo apt install nginx -y
Nyní spusťte Nginx a povolte jeho spuštění při spouštění pomocí příkazu systemctl.
systemctl start nginx
systemctl enable nginx
Nginx byl nainstalován a běží na HTTP portu 80. Můžete to zkontrolovat pomocí netstat.
netstat -plntu
Webový server Nginx byl nainstalován na server Ubuntu 16.04.
Dále musíme vytvořit nový soubor virtuálního hostitele pro kontejner diskursu. Přejděte do konfiguračního adresáře nginx a vytvořte nový soubor 'discourse' pomocí editoru vim.
cd /etc/nginx/
vim sites-available/discourse
Nyní vložte následující konfiguraci virtuálního hostitele 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;
}
}
Uložte a ukončete.
Poznámka:
- Všechny požadavky HTTP budou automaticky přesměrovány na připojení HTTPS.
- Změňte konfiguraci SSL pomocí vlastního adresáře cesty.
- Existuje další konfigurace SSL.
Nyní vytvořte nový dodatečný konfigurační soubor ssl 'ssl.conf'.
vim snippets/ssl.conf
Do souboru vložte následující konfiguraci.
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;
Uložte a ukončete.
A nyní aktivujte virtuálního hostitele diskurzu pomocí příkazu 'ln -s', jak je ukázáno níže.
ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/
Testuje konfiguraci a ujistěte se, že nedošlo k chybě, poté restartujte službu.
nginx -t
systemctl restart nginx
Instalace a konfigurace Nginx jako reverzní proxy pro kontejner diskursu byla dokončena.
Krok 5 – Instalační program diskurzního webu
Otevřete webový prohlížeč a navštivte adresu URL diskurzu.
http://discourse.hakase-labs.me
A budete přesměrováni na zabezpečené připojení HTTP. Kliknutím na tlačítko 'Registrovat' vytvoříte nového administrátora.
Nyní zadejte své administrátorské uživatele a heslo a poté klikněte na 'Registrovat'.
A obdržíte nové e-mailové potvrzení o aktivaci vašeho administrátora.
Níže je ukázková e-mailová zpráva pro potvrzení účtu Diskuse. Kliknutím na odkaz potvrďte a aktivujte účet správce.
A měli byste získat diskurzní stránku, jak je uvedeno níže. Klikněte na tlačítko 'Kliknutím sem aktivujte svůj účet'.
Nyní si můžete nakonfigurovat své vlastní diskusní fórum. Klikněte na tlačítko 'Další' a musíte nakonfigurovat Diskusní fórum s 13 kroky. Nebo jej můžete nakonfigurovat později kliknutím na „Možná později“.
Níže je uvedeno Diskusní fórum nainstalované na webovém serveru Nginx a HTTPS na Ubuntu 16.04.
Následuje můj panel správce diskurzu.
Diskusní fórum bylo nainstalováno s Nginx jako reverzní proxy na serveru Ubuntu 16.04.
Krok 6 – Další konfigurace diskursu
Při instalaci Discourse můžete narazit na problém, kdy neobdržíte e-mailové potvrzení o aktivaci uživatele administrátora.
Chcete-li problém vyřešit, ujistěte se, že máte správný účet SMTP v konfiguračním souboru app.yml. Nebo můžete účet správce aktivovat ručně ze svého serveru.
Chcete-li svůj administrátorský účet aktivovat ručně, přejděte do adresáře '/var/discourse'.
cd /var/discourse
Nyní přejděte ke kontejneru diskurzu pomocí příkazu níže.
./launcher enter app
A aktivujte prvního administrátora pomocí příkazu rails, jak je uvedeno níže.
rails c
u =User.last
u.admin =true
u.activate
u.save
A nyní se můžete přihlásit do diskusního fóra pomocí svého uživatelského jména a hesla.
Odkazy
- https://meta.discourse.org/
- https://github.com/discourse/discourse/tree/master/docs