Chuyên mục
Web Development

Hướng dẫn cài đặt Discourse trên Ubuntu sử dụng AUFS làm storage driver cho Docker

Discourse là nền tảng forum mã nguồn mở tối ưu cho việc trao đổi, thảo luận cộng đồng đang được sử dụng khá phổ biến hiện nay. Một số trang web lớn đang sử dụng Discourse có thể kể đến như Envato (chuyên bán plugins, theme), Let’s Encrypt (chứng chỉ SSL miễn phí), SitePoint (web developer), Atom (code editor)…

Hiện tại mình đang dùng Discourse cho CLUB Yêu Chạy Bộ làm nơi để trao đổi / tư vấn các vấn đề về chạy bộ. Các bạn có thể tham khảo theo link CLUB.

Discourse chạy trên nền Docker nên muốn cài đặt, các bạn cần phải sử dụng KVM VPS (không dùng OpenVZ được do OpenVZ không hỗ trợ Docker), RAM tối thiểu 1GB. Một số nhà cung cấp VPS được khuyên dùng: Digital Ocean, Linode, Vultr.

Một trong những yêu cầu quan trọng trước khi cài đặt Discourse là bạn phải cấu hình VPS của bạn sử dụng AUFS làm Storage driver cho Docker (mặc định Ubuntu sử dụng Device Mapper sẽ gây lỗi cho Discourse, xem chi tiết). Ngay cả trang hướng dẫn cài đặt chính chủ của Discourse trên Github cũng không đề cập về vấn đề này, gây khó khăn cho việc troubleshoot nếu gặp lỗi sau này.

Thật tình mình hoàn toàn chẳng biết gì về Docker cũng như các thuật ngữ chuyên môn của (Các bạn nào quan tâm storage driver là gì có thể tham khảo ở đây). Mình chia sẻ lại bài viết này từ kinh nghiệm của bản thân:

  1. Trang CLUB Yêu Chạy Bộ của mình trước đây được cài đặt theo đúng hướng dẫn trên Github, không cấu hình AUFS.
  2. Một ngày đẹp trời bỗng dưng nó lăn ra chết, sau khi mò mẫm mới phát hiện ra mình đang cài Discourse trên Device Mapper.
  3. Sau đó phải ngồi cài đặt lại và phục hồi lại từ file backup (cũng may là có back up phòng ngừa trường hợp xấu nhất).

1. Cài đặt Docker với AUFS

Yêu cầu đầu tiên là sử dụng VPS mới tinh, cài đặt Ubuntu 14.04. Chạy lênh sau để cài đặt Docker với AUFS làm Storage Driver

sudo apt-get update
sudo apt-get -y install linux-image-extra-$(uname -r)
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get -y install lxc-docker

Xác nhận lại VPS đã cài đặt Docker thành công với AUFS bằng lệnh docker info

root@vps344586:~# docker info
Containers: 1
Images: 3
Server Version: 1.9.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 5
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-100-generic
Operating System: Ubuntu 14.04.5 LTS
CPUs: 1
Total Memory: 1.908 GiB
Name: vps344586.ovh.net
ID: UKNN:2WJU:76QO:KWIS:CWCA:E4FF:HV5G:LE43:4A3B:5HFX:7CUL:CZZH
WARNING: No swap limit support

2. Cài đặt Discourse

Tải Discourse về thư mục /var/discourse và bắt đầu cài đặt

sudo -s
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup

Bạn cần cung cấp các thông tin sau để cấu hình Discourse.

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account? [me@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP user name? [postmaster@discourse.example.com]: 
SMTP port [587]:
SMTP password? []:

Bạn cần phải cung cấp chính xác thông tin hostname, email, SMTP,…vì nếu cung cấp thông tin sai, sẽ không thể truy cập được sau khi cài đặt xong. Nếu chưa có SMTP server, các bạn có thể tham khảo danh sách các nhà cung cấp.

Hệ thống sẽ tự động tạo ra file cấu hình app.yml và bắt đầu cài đặt. Quá trình này sẽ mất từ 2-8 phút tuỳ tốc độ VPS. Nếu bạn cần thay đổi thông tin ở trên, hãy sửa lại thông tin trong file app.yml

sudo nano /var/discourse/containers/app.yml

Sau đó tiến hành cấu hình lại hệ thống

cd /var/discourse

./launcher rebuild app

3. Khởi động Discourse

Sau khi quá trình cấu hình hoàn tất, bạn có thể truy cập ngay theo tên miền cung cấp ở bước 2, hoặc bạn cũng có thể truy cập theo địa chỉ IP của VPS.

4. Tạo tài khoản admin

Việc đầu tiên bạn cần làm là đăng ký tài khoản admin. Nhớ sử dụng đúng email mà bạn đã cung cấp ở bước 2.

Tạo tài khoản admin
Xác nhận tài khoản

Hệ thống sẽ gửi email yêu cầu xác nhận tài khoản. Nếu bạn cấu hình SMTP server không đúng ở bước 2, email sẽ không thể gửi được, bạn không thể tạo tài khoản admin và xem như không thể quản lý Discourse. Đó là lý do phải cấu hình thông tin SMTP chính xác trước khi cài đặt Discourse.

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

Các bạn có thể cài đặt thêm nhiều tính năng cho Discourse theo hướng dẫn ở cuối bài viết này trên Github.


Chúc bạn cài đặt thành công Discourse – nền tảng forum HOT nhất hiện nay. Nếu bạn nào cảm thấy quá khó thì có thể liên hệ với mình để yêu cầu cài đặt giúp, chi phí thương lượng 😉

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng mò vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

4 trả lời trong “Hướng dẫn cài đặt Discourse trên Ubuntu sử dụng AUFS làm storage driver cho Docker”

Cách cài đặt SSL bản quuyền từ NameCheap như thế nào bạn? Mình tìm mãi vẫn chưa biết tìm chỗ nào để upload tập tin .txt để xác nhận chứng chỉ SSL. Nếu có kinh nghiệm cài SSL cho Discourse, giúp minh với.

Trả lời Tien Hủy

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 *