Cài đặt diễn đàn Discourse trên Centos

Cài đặt diễn đàn Discourse

Discourse là một ứng dụng mã nguồn mở phổ biến để xây dựng diễn đàn thảo luận trực tuyến. Thiết lập vào 2013, Discourse được viết bằng ngôn ngữ lập trình Ruby và JavaScript.

Các tính năng nổi bật của Discourse:

  • Hỗ trợ trên 25 ngôn ngữ.
  • Thiết kế tối ưu SEO cho Google tìm kiếm, hỗ trợ CDN.
  • Thiết kế 100% hỗ trợ điện thoại, giao diện hiển thị và tương thích với mọi trình duyệt/thiết bị. Ứng dụng hỗ trợ Discourse trên cả iOS và Android.
  • Cho phép đăng nhập qua mạng xã hội Facebook, Twitter, Google, Yahoo, GitHub… và reply qua email.
  • Thảo luận liên tục, không có phân trang, tất cả chỉ có cuộn lện và cuộn xuống. Đảm bảo không ngắt quãng cuộc thảo luận của bạn.
  • Trust System và chống spam: hạn chế quyền hạn thành viên mới (số hình ảnh/link có thể đăng…) và bỏ dần theo thời gian (độ tin cậy gia tăng). Mọi hoạt động spam được phát hiện chính xác và loại bỏ tự động.
  • Backup tự động theo ngày. Nâng cấp dễ dàng qua Docker và Github.
  • Và còn nhiều tính năng khác nữa, bạn có thể tham khảo đầy đủ tại trang Discourse Features

Cho đến nay, Discourse đã được sử dụng rộng rãi bởi rất nhiều tổ chức lớn, như Codeacademy, Udacity, Twitter Developers, Docker Community, Let’s Encrypt Community, Envato Community….

Nội dung bài viết

1. Yêu cầu hệ thống

2. Cài đặt Docker

3. Cài đặt Discourse

4. Khởi động Discourse

1. Yêu cầu hệ thống

Discourse yêu cầu hệ điều hành Linux 64bit tương thích với Docker, tối thiểu 1GB RAM và 10GB dung lượng ổ đĩa. Một số nhà cung cấp VPS được khuyên dùng: Vultr, Digital Ocean và Linode…

Bên cạnh đó, một yếu tố rất quan trọng cần phải chú ý để Discourse có thể hoạt động ổn định được đó là SMTP Server. SMTP Server được dùng để gửi email thông báo khi có bài viết mới, khi user subscribe, khi admin có post cần duyệt, khi có update mới…, nói chung SMTP Server rất quan trọng đối với Discourse.

Hiện nay có rất nhiều SMTP Server miễn phí các bạn có thể sử dụng, mình thì khuyến khích đăng ký ở SparkPost (Free 15,000 Mail), Elastic Email (150k emails/tháng) hoặc trả phí thì có SendGrid (40k emails trong 30 ngày dùng thử). Hướng dẫn đăng kí và sử dụng mình đều viết bài trên Canh Me hết rồi.

Trong bài viết này, HocVPS sẽ hướng dẫn các bạn cài đặt trên hệ điều hành CentOS7/Ubuntu 16.04 64bit và sử dụng SparkPost làm Mail Server.

2. Cài đặt Docker

– Cài đặt Git
Đối với CentOS

# yum -y install wget git

Đối với Ubuntu

# apt-get update
# apt-get install git

– Cài đặt, khởi động và thiết lập Docker khởi động cùng hệ thống

# wget -qO- https://get.docker.com/ | sh
# systemctl start docker
# systemctl enable docker

Kiểm tra trạng thái Docker

# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2017-12-19 12:03:48 UTC; 8s ago
     Docs: https://docs.docker.com
 Main PID: 13523 (dockerd)
   CGroup: /system.slice/docker.service
           ├─13523 /usr/bin/dockerd
           └─13563 docker-containerd --config /var/run/docker/containerd/containerd.toml

Chú ý: có một số nhà cung cấp VPS/Server không cài đặt được Docker, nguyên nhân thì có rất nhiều. Nếu gặp vấn đề các bạn hãy liên hệ với nhà cung cấp để được hỗ trợ.

3. Cài đặt Discourse

– Tạo và lưu mã nguồn tại thư mục /var/discourse:

# mkdir /var/discourse
# git clone https://github.com/discourse/discourse_docker.git /var/discourse

– Cài đặt Discourse
Lưu ý: Đối với hệ thống 2GB RAM trở xuống và không có Swap, Discourse sẽ tự tạo 2GB swap để đảm bảo hoạt động.

# cd /var/discourse
# ./discourse-setup

– Cung cấp các thông tin cần thiết, đặc biệt thông tin SMTP cần chính xác để gửi được mail xác nhận:

Hostname for your Discourse? [discourse.example.com]: hoidap.hocvps.com
Email address for admin account(s)? [me@example.com,you@example.com]: support@hocvps.com
SMTP server address? [smtp.example.com]: smtp.sparkpostmail.com
SMTP port [587]: 587
SMTP user name? [user@example.com]: hoidap@hocvps.com
SMTP password? []: xxxxxxxxx
Let's Encrypt account email? (ENTER to skip) [me@example.com]:

Quá trình cài đặt mất 2-8 phút và sẽ tự động tạo file cấu hình app.yml.

Lưu ý: Nếu cần thay đổi thông tin, chỉnh sửa file cấu hình /var/discourse/containers/app.yml.
Rồi tiến hành cấu hình lại hệ thống:

# cd /var/discourse
# ./launcher rebuild app

4. Khởi động Discourse

Quá trình cài đặt hoàn tất, bạn có thể truy cập diễn đàn theo IP của VPS hoặc tên miền đã thiết lập.

Việc đầu tiên cần làm là tạo tài khoản admin với email đã thiết lập trước đó. Hệ thống sẽ gửi email xác nhận tài khoản. Nếu không thấy mail xác nhận, nạn kiểm tra lại cấu hình SMTP, log hệ thống /var/discourse/shared/standalone/log/rails/production.log và tổng hợp những vấn đề liên quan đến email.

Sau khi xác nhận thành công, bạn có thể bắt đầu cấu hình diễn đàn Discourse của mình.

Nếu mới làm quen với Discourse, bạn nên tham khảo hướng dẫn Admin Quick Start Guide để nắm vững cách quản trị hệ thống.

Trong quá trình hoạt động, sẽ có rất nhiều bản nâng cấp hệ thống, bạn có thể thao tác bằng dòng lệnh để get phiên bản mới nhất từ Git repo:

# cd /var/discourse
# git pull
# ./launcher rebuild app

hoặc update trực tiếp từ trình duyệt bằng cách truy cập đường dẫn: http://discourse.domain.com/admin/upgrade

Chúc các bạn thành công. Hãy cùng đón chờ những phần tiếp theo về cài đặt Nginx làm Reserve Proxy cho Discourse, cài đặt tính năng thêm như SSL, Social Login…

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *