Trang chủ / Code / Cài đặt Discourse trên VPS Ubuntu 14.04 / Debian 8
cài đặt discourse trên ubuntu 14.04 qua docker

Cài đặt Discourse trên VPS Ubuntu 14.04 / Debian 8

Hôm nay mình sẽ hướng dẫn các bạn cài đặt Discourse trên VPS Ubuntu 14.04 và Debian 8.

Discourse là một mã nguồn mở để tạo trang web dạng hỏi đáp cũng như diễn đàn rất chuyên nghiệp. Với giao diện hiện đại, tốc độ nhanh Discourse đang được rất nhiều các trang web lớn lựa chọn. Qua sử dụng, mình đánh giá Discourse là một mã nguồn rất tuyệt vời về cả tính năng, giao diện vì rất dễ sử dụng. Discourse cũng cấp tất cả các chức năng trong một trang admin và bạn chỉ cần vài giờ là có thể làm chủ Discourse.

Xem demo Discourse tại đây 

Việc cài đặt Discourse có rất nhiều cách như cài đặt môi trường Ruby On Rails, PosgresSQL và tải mã nguồn Discourse về cài đặt hoặc cài đặt qua Docker. Tuy  nhiên việc cài đặt Discourse từ mã nguồn khá phức tạp và chỉ khi bạn đã có kinh nghiệm bởi vì kể cả bạn đã setup được một môi trường Rails cho Discourse thì cũng chưa chắc nó sẽ hoạt động hiệu quả do đó mình sẽ hướng dẫn các bạn cài đặt qua Docker chỉ khoảng 20 phút là xong và chỉ việc copy và paste thôi :D

Docker là gì ? Docker là một giải pháp cho phép bạn đóng gói phần mềm (bao gồm tất cả thành phần của phần mềm) tại chỗ và sau khi đóng gói nó có chạy ở bất cứ nển tảng nào miễn là hỗ trợ Docker. Và Discourse đã được các chuyên gia cài đặt (setup Rails, PosgresSQL, Redis, source) trên hệ thống của họ và sau đó họ đóng gói lại chúng ta có thể sử dụng nó mà không mất công cài đặt lại nữa.

Để sử dụng Discourse bạn cần VPS tối thiểu 1GB RAM (theo lời của Discourse) và khuyến cáo là 2GB. Mình đã thử cài trên VPS 512MB Ram thì vẫn chạy bình thường nhưng chỉ dành cho mục đích test thôi. Mình sẽ cài đặt trên Ubuntu 14.04 còn trên Debian thì tương tự.

Cài đặt Swap (bắt buộc nếu bạn chỉ có 1GB RAM, 2GB thì không cần)

  1. Tạo một file swap rỗng:
     sudo install -o root -g root -m 0600 /dev/null /swapfile
  2. Ghi 1GB ổ cứng vào file swap:
    dd if=/dev/zero of=/swapfile bs=1k count=1024k
  3. Nói với Linux đây là file swap:
    mkswap /swapfile
  4. Kích hoạt swap:
    swapon /swapfile
  5. Tự động tạo swap sau khi reboot hệ thống:
     echo "/swapfile swap swap auto 0 0" | sudo tee -a /etc/fstab
  6. Cài đặt swappiness để chỉ sử dụng swap trong trường thiếu ram:
    sudo sysctl -w vm.swappiness=10

Cài đặt Git:

sudo apt-get install git

Cài đặt Docker:

wget -qO- https://get.docker.io/ | sh

Cài đặt Discourse:

  1. Tạo thư mục chứa Docker Image:
    mkdir /var/discourse
  2. Download Docker Image từ Github:
    git clone https://github.com/discourse/discourse_docker.git /var/discourse
  3. Chuyển tới thư mục chứa Docker:
    cd /var/discourse
  4. Copy file cấu hình :
     cp samples/standalone.yml containers/app.yml

Cấu hình Discourse

  1. Sửa file app.yml trong /var/discourse/containers/: nano /var/discourse/containers/app.yml
  2. Thay đổi email admin ( Để sau khi bạn tạo tài khoản bằng email này nó sẽ tự thành Admin): Sửa  trường DISCOURSE_DEVELOPER_EMAILS thành email của bạn.
  3. Sửa DISCOURSE_HOSTNAME thành domain của bạn
  4. Tiếp bạn cần cấu hình Email để Discourse có thể gửi email cho các thành viên như email kích hoạt tài khoản,… Nếu bạn chưa setup mail server thì đơn giản nhất là dùng SMTP bên ngoài. Bạn đăng ký một tài khoản Mandrill sau đó vào Setitings của Mandrill để lấy các thông tin và nhập vào đây, hoặc dùng gmail SMTP
DISCOURSE_SMTP_ADDRESS: smtp.mandrill.com

DISCOURSE_SMTP_PORT: 587

DISCOURSE_SMTP_USERNAME: abc@gmail.com

DISCOURSE_SMTP_PASSWORD: 1ST#4GTjsuZioW6

5. Nếu bạn chỉ có 1GB RAM thì sửa UNICORN_WORKERS = 2 và db_shared_buffers = 128MB\

6. Lưu lại và thoát (Ctrl+ O và Ctrl +X)

Trong quá trình chỉnh sửa file app.yml ở trên, bạn chú ý ở mỗi dòng bạn chỉnh nếu có dấu “#” thì phải bỏ đi nhé, như thế mới có hiệu lực.

Bootstrap Discourse

Chạy lệnh

./launcher bootstrap app 

nếu được hỏi thì cứ enter hoặc yes nhé

Chờ khoảng  8 phút hoặc hơn đến khi quá trình Bootstrap Discourse thành công

Khi xong, chạy tiếp lệnh:

./launcher start app

Như vậy là bạn đã cài đặt xong Discourse trên Unbuntu qua Docker

Truy cập vào tên miền bạn đã cài đặt trong file app.yml và bạn sẽ thấy giao diện quen thuộc của Discourse

Nếu bạn gặp lỗi 502 Nginx Bad Gateway thì chờ 30s sau vào lại nhé, chắc chắn sẽ được

Sau đó hãy tạo một tài khoản với email bạn đã nhập ở trên nhé, nó sẽ tự thành admin

Có gì khó khăn comment bên dưới nhé.

Nếu bạn thấy có ích, hãy subcribe blog của tôi để nhận thêm nhiều tút hay qua email nữa nhé!