Discourse adalah perangkat lunak sumber terbuka dan gratis untuk membuat komunitas forum Internet dan milis. Itu dibuat pada tahun 2013, dan ditulis menggunakan bahasa pemrograman Ruby dan Javascript. Perangkat lunak forum wacana telah digunakan oleh banyak organisasi, termasuk Codeacademy, Udacity, Pengembang Twitter, Forum Komunitas Docker, dll.
Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah demi langkah, cara menginstal dan mengkonfigurasi Forum Wacana dengan server Web Nginx di bawah server CentOS 7. Secara khusus, kami akan menunjukkan cara menginstal Perangkat Lunak Forum Wacana, mengonfigurasi Nginx sebagai proxy terbalik untuk aplikasi Wacana, dan mengamankan perangkat lunak forum wacana menggunakan SSL gratis dari Letsencrypt.
Apa yang akan kami lakukan
- Instal Docker di CentOS 7
- Memasang dan Mengonfigurasi Perangkat Lunak Forum Wacana
- Buat SSL Letsencrypt di CentOS 7
- Instal dan Konfigurasi Nginx sebagai Proksi Terbalik untuk Wacana
- Pemasang Web Wacana
- Konfigurasi Tambahan Wacana
Prasyarat
- CentOS 7
- Keistimewaan Root
- Akun SMTP - mis. dari Mailgun, SendGrid, atau Mailjet
Langkah 1 - Instal Docker di CentOS 7
Forum wacana akan dipasang di bawah wadah Docker. Jadi langkah pertama yang harus kita lakukan adalah menginstall Docker di server CentOS 7 kita.
Instal Docker di CentOS 7 menggunakan perintah berikut.
wget -qO- https://get.docker.com/ | sh
Jika Anda tidak memiliki perintah wget, instal dari repositori.
yum -y install wget
Jika penginstalan selesai, mulai layanan Docker dan aktifkan untuk diluncurkan saat boot menggunakan perintah systemctl berikut.
systemctl start docker
systemctl enable docker
Mesin Docker telah diinstal dan berjalan di server CentOS 7. Periksa status layanan menggunakan perintah berikut.
systemctl status docker
Layanan Docker aktif dan berjalan.
Langkah 2 - Instal dan konfigurasikan Perangkat Lunak Forum Wacana
Pada langkah ini, kita akan menginstal dan mengkonfigurasi perangkat lunak Wacana. Kami akan mengunduh skrip pembuatan docker wacana, mengonfigurasinya sesuai kebutuhan, lalu membuat wadah Docker baru untuk perangkat lunak forum wacana.
Sebelum mendownload wacana, kita perlu menginstal perintah git ke server.
yum -y install git
Sekarang buat direktori baru '/var/discourse' dan unduh/kloning skrip wacana buruh pelabuhan menggunakan perintah git.
mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Buka direktori wacana dan salin contoh skrip docker-compose 'standalone.yml' ke direktori '/var/discourse/containers/' dengan nama 'app.yml'.
cd /var/discourse
cp samples/standalone.yml containers/app.yml
Sekarang edit file 'app.yml' menggunakan vim.
vim containers/app.yml
- Pemetaan Pelabuhan Docker
Secara default, semua permintaan HTTP dan HTTPS akan ditangani oleh proxy Docker. Dan untuk panduan ini, kami akan menggunakan Nginx untuk tujuan ini - semua HTTP dan HTTPS akan ditangani oleh server web Nginx.
Jadi kita perlu mengubah konfigurasi pemetaan port docker. Wadah Wacana hanya akan memiliki koneksi HTTP, dan host akan membuka port baru '2045' dan memetakan ke port penampung 80.
Batalkan komentar pada baris HTTPS dan ubah baris HTTP dengan port baru '2045', seperti yang ditunjukkan di bawah ini.
expose:
- "2045:80" # http
# - "443:443" # https
- Konfigurasi Nama Domain Wacana
Ketik nama domain Anda sendiri untuk wacana yang dipasang pada baris 'DISCOURSE_HOSTNAME' seperti di bawah ini.
DISCOURSE_HOSTNAME: 'discourse.hakase-labs.co'
Dan ketik alamat email Anda di baris 'DISCOURSE_DEVELOPER_EMAIL'.
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
- Konfigurasi SMTP
Konfigurasi SMTP adalah konfigurasi terpenting untuk Perangkat Lunak Wacana. Pastikan Anda memiliki akun SMTP untuk instalasi Wacana - Anda dapat membeli atau mencoba akun SMTP tingkat gratis dari Mailgun, Mailjet, atau SendGrid.
Untuk tutorial ini, kita akan menggunakan akun SMTP free-tier dari Mailgun. Daftar dengan Mailgun dan konfigurasikan nama domain Anda, dan pastikan Anda mendapatkan detail akun SMTP Anda.
Kemudian batalkan komentar konfigurasi SMTP dan ketik detail akun Anda seperti di bawah ini.
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
DISCOURSE_SMTP_PASSWORD: mypassword
Itu dia. Simpan perubahan dan keluar dari editor.
Selanjutnya, buat image Docker Wacana baru berdasarkan konfigurasi template app.yml.
sudo ./launcher bootstrap app
Jika semua sudah selesai, mulai/inisialisasi Wadah Wacana baru menggunakan perintah berikut.
sudo ./launcher start app
Dan Wadah Docker Wacana aktif dan berjalan - periksa menggunakan perintah 'docker ps'.
docker ps -a
Periksa host open port menggunakan netstat, dan pastikan service docker-proxy baru dengan port 2045 ada dalam daftar.
netstat -plntu
Perangkat lunak Forum Wacana telah diinstal di bawah wadah buruh pelabuhan di host CentOS 7.
Langkah 3 - Buat SSL Letsencrypt di CentOS 7
Untuk tutorial ini, kita akan menjalankan forum Wacana di bawah server web Nginx dan hanya menerima koneksi HTTPS. Untuk tujuan ini, kami memerlukan Sertifikat SSL baru untuk nama domain, jadi, kami akan menggunakan sertifikat SSL gratis dari Letsencrypt.
Instal alat baris perintah Letsencrypt menggunakan perintah yum dengan cara berikut.
yum -y install letsencrypt
Setelah instalasi, tambahkan layanan HTTP dan HTTPS baru ke konfigurasi Firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Sekarang buat sertifikat SSL baru untuk forum Wacana menggunakan perintah letsencrypt di bawah ini.
letsencrypt certonly
Anda akan melihat dua verifikasi dari Letsencrypt. Ketik nomor '1' untuk mengaktifkan server web sementara untuk autentikasi.
Sebagai bagian dari ini, ketik alamat email Anda untuk memperbarui pemberitahuan, ketik 'A' untuk menyetujui KL letsencrypt (Ketentuan Layanan).
Sekarang ketikkan nama domain wacana 'discourse.hakase-labs.co'.
Dan jika prosesnya sudah selesai maka anda akan mendapatkan hasil seperti dibawah ini.
Sertifikat SSL baru dari letsencrypt telah dibuat di direktori '/etc/letsencrypt/live'.
Langkah 4 - Instal dan Konfigurasi Nginx sebagai Proxy Terbalik untuk Wacana
Dalam tutorial ini, kita akan menggunakan server web Nginx sebagai proxy terbalik untuk Wacana yang berjalan di bawah wadah Docker. Server web Nginx akan berjalan di bawah port HTTP dan HTTPS, dan semua permintaan klien akan ditangani oleh Nginx.
Sebelum menginstal server web Nginx, kita perlu menginstal repositori EPEL di sistem.
yum -y install epel-release
Sekarang instal nginx dari repositori EPEL menggunakan perintah yum berikut.
yum -y install nginx
Setelah semua instalasi selesai, masuk ke direktori konfigurasi nginx '/etc/nginx'.
cd /etc/nginx/
Dan buat konfigurasi SSL tambahan baru 'ssl.conf' menggunakan vim.
vim ssl.conf
Tempelkan konfigurasi SSL berikut di sana.
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;
Simpan perubahan dan keluar dari editor.
Selanjutnya, buat file host virtual nginx baru 'discourse.conf' untuk Discourse.
vim conf.d/discourse.conf
Tempelkan konfigurasi berikut di sana.
server {
listen 80; listen [::]:80;
server_name discourse.hakase-labs.co;
# Automatic Redirect HTTP to HTTPS Nginx
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name discourse.hakase-labs.co;
# SSL Configuration
ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.co/privkey.pem;
include /etc/nginx/ssl.conf;
# Reverse Proxy Configuration
location / {
proxy_pass http://discourse.hakase-labs.co: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.co:2045/ https://discourse.hakase-labs.co;
}
}
Simpan dan keluar.
Sekarang uji konfigurasi nginx dan pastikan tidak ada kesalahan. Kemudian restart layanan Nginx.
nginx -t
systemctl restart nginx
Instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk Wadah Wacana telah selesai.
Langkah 5 - Penginstal Web Wacana
Buka browser web Anda dan kunjungi URL wacana Anda, milik saya adalah:
http://discourse.hakase-labs.co
Dan Anda akan diarahkan ke koneksi HTTPS.
Klik 'Daftar '.
Sekarang kita perlu membuat akun 'Administrator' baru.
Ketik nama pengguna dan sandi admin Anda, lalu klik 'Daftar '.
Dan Anda akan mendapatkan halaman untuk konfirmasi email. Periksa kotak masuk email Anda dan pastikan Anda mendapatkan konfigurasi email dari forum Wacana seperti di bawah ini.
Klik 'Tautan '.
Dan Anda akan mendapatkan halaman 'Discourse Welcome'.
Klik tombol 'klik di sini untuk mengaktifkan akun Anda '. Dan sekarang Anda harus membuka halaman berikut.
Klik 'Mungkin Nanti '.
Forum Wacana telah diinstal, dan kami mendapatkan beranda default seperti yang ditunjukkan di bawah ini.
Anda dapat membuka 'Dasbor Admin', dan Anda akan mendapatkan Dasbor Admin Wacana.
Perangkat Lunak Forum Wacana telah diinstal dengan Nginx sebagai proxy terbalik di server CentOS 7.
Langkah 6 - Konfigurasi Tambahan Wacana
Selama instalasi Wacana, beberapa orang mengatakan bahwa mereka tidak mendapatkan email konfirmasi untuk aktivasi pengguna admin.
Untuk masalah ini, pastikan Anda memiliki akun SMTP yang benar pada konfigurasi app.yml. Atau Anda dapat mengaktifkan akun admin secara manual dari server Anda.
Untuk mengaktifkan akun admin Anda secara manual, buka direktori '/var/discourse'.
cd /var/discourse
Sekarang akses wadah wacana dengan perintah berikut.
./launcher enter app
Dan aktifkan user admin pertama menggunakan perintah rails seperti di bawah ini.
rails c
u = User.last
u.admin = true
u.activate
u.save
Sekarang Anda dapat masuk ke forum Wacana dengan nama pengguna dan kata sandi Anda.