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….
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…
Xin hướng dẫn cách install nhiều (từ 2) forum discourse trên cùng 1 VPS.
https://meta.discourse.org/t/starting-a-second-discourse-forum-on-the-same-vps/67160
Bạn tham khảo topic này nhé, khá đầy đủ
Mình mới tìm hiểu về Discourse và có setup thử 1 forum nho nhỏ về Mẹ và Bé (có thể xem tại đây http://forum.123tretho.com)
Mình sử dụng Discourse One-Click Application của Digitalocean, rất nhanh và tiện lợi.
Các bạn có thể tham khảo thêm ở đây: https://www.digitalocean.com/docs/marketplace/discourse/
Mình chạy cmd ./discourse-setup để cài discourse thì gặp lỗi port 80 in used.
VPS mình đã cài hocvps script trước đó.
Vậy có cách nào chạy song song discourse và nginx không nhỉ?
Thanks!
Bạn cần phải cấu hình Nginx làm Reserve Proxy cho Discourse thì mới cài đặt được. Nhưng điều đó không áp dụng cho bài viết này nên bạn tham khảo các hướng dẫn khác nhé, ý tưởng sẽ gần như thế này
https://www.digitalocean.com/community/tutorials/how-to-install-discourse-behind-nginx-on-ubuntu-14-04
https://www.howtoforge.com/tutorial/how-to-install-and-configure-discourse-forum-with-nginx-on-ubuntu-1604/
Cảm ơn Việt Phương!
anh phương cho e hỏi, e muốn tạo trên subfolder thì cấu hình ở bước nào. Web đang chạy hocvpscript, muốn cài đặt vào doamin.com/diendan/ thì sửa ngay bước nào anh
Bạn cần phải cấu hình Nginx làm Reserve Proxy cho Discourse thì mới cài đặt được. Nhưng điều đó không áp dụng cho bài viết này nên bạn tham khảo các hướng dẫn khác nhé, ý tưởng sẽ gần như thế này
https://www.digitalocean.com/community/tutorials/how-to-install-discourse-behind-nginx-on-ubuntu-14-04
https://www.howtoforge.com/tutorial/how-to-install-and-configure-discourse-forum-with-nginx-on-ubuntu-1604/
…..
Chào anh, diễn đàn Discourse cấu hình máy chủ như thế nào để hoạt động ổn định khoảng 10.000 user mỗi ngày.
Vấn đề này mình không rõ rồi. Không giúp bạn được
Tại sao cài đặt xong, trong phần tạo tài khoản quản trị sparkpost có gửi mail mà gmail không nhận được
Bác xác nhận đúng là Sparkpost có gửi mail chứ? Bạn đã thực hiện test mail chưa? Nếu thế bạn check các hòm mail của gmail xem
ANh Luân hướng dẫn cài tiếng việt cho Discourse được không ạ?
Discourse chưa hỗ trợ tiếng Việt bạn nhé https://www.transifex.com/discourse/discourse-org/
Mình mới check lại thì Discourse đã hỗ trợ tiếng Việt rồi bạn nha, nhưng tình hình dịch hoàn thiện là 54%, anh em xúm lại dịch cho nốt nha 😀
Cái này chắc vọc phá được chứ ko cài chung trên HocVPS script được.
Hy vọng sẽ có bài viết hướng dẫn tích hợp được
Chào bạn,
Mã nguồn Discourse phải dùng VPS mới được, không như mấy mã nguồn vBulletin, wordpres… nhỉ?
Cảm ơn bạn đã chia sẻ!
Cần support hệ thống từ nhà cung cấp nên bạn hỏi nhà cung cấp trước khi mua Hosting nhé. Ví dụ chính Discourse vẫn cung cấp hosting https://payments.discourse.org/pricing
cái này cài trên hocvps scrips dc ko canh me?
HocVPS hay cacs LEMP/LAMP stack thì bạn chờ bài viết sau cài Nginx làm Reserve Proxy nhé. Hiện tại bạn chỉ có thể cài độc lập trên VPS trắng
Mã nguồn này phải trả phí để dùng được hay vẫn dùng miễn phí được vậy anh Phương? https://payments.discourse.org/pricing
Miễn phí nhé. Thu phí là dịch vụ Discourse Hosting