Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Hướng dẫn cài đặt Discourse trên Ubuntu cực kì nhanh

Trong bài này mình sẽ hướng dẫn các bạn cách cài đặt Discourse rtên Ubuntu 20.04, đây là một CMS dùng để phát triển forum rất mạnh, có thể nói là tốt nhất ở thời điểm hiện tại.

Discourse là một dự án mã nguồn mở phát triển với chức năng như một forum, các thành viên có thể thảo luận, gửi tin nhắn cho nhau cực kì nhanh gọn. ĐIểm mạnh của nó là hệ thống gửi mail tự động rất tốt, giúp việc cảnh báo tin mới đến các thành vien hiệu quả hơn.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Discourse được viết bằng Ember.js và Ruby on Rails, và sử dụng PostgreSQL cho cơ sở dữ liệu back-end, cung cấp các tính năng rất hay như: Chặn spam, thông báo, đăng nhập bằng mạng xã hội, xác thực hai yếu tố, API, kiểm duyệt mạnh mẽ, giao diện responsie, và đặc biệt là tốc độ load trang cực nhanh.

Và sau đây mình sẽ hướng dẫn các bạn cách cài đặt nó trên Ubuntu 20.04 nhé.

1. Điều kiện cài đặt Discourse trên Ubuntu

Để chạy một website thì bạn cần phải có một số thứ như sau:

  • Một VPS chạy Ubuntu, cụ thể là Ubuntu 20.04. Xem mua tại bài viết VPS tốt nhất.
  • Một domain để chạy website, cũng có thể sử dụng subdomain. Xem mua domain tại bài viết mua domain ở đâu.
  • Một SMTP mail server. Nếu bạn chưa có mail server thì có thể sử dụng Gmail, hoặc sử dụng [SparkPost].
  • Tài khoản root để đăng nhập vào VPS

Với phiên bản hiện tại thì khi cài đặt trên Ubuntu cực kì đơn giản, chỉ vào thao tác là bạn sẽ thực hiện thành công.

Tóm lại, bạn cần thực hiện thao tác như sau:

  1. Trỏ domain về VPS mà bạn đã mua
  2. Thông tin SMTP Mail server.
  3. Thông tin tài khoản root để đăng nhập vào VPS

2. Các bước cài đặt Discourse trên Ubuntu

Đầu tiên chúng ta cần cài đặt Docker đã nhé, nó sẽ giúp việc cài đặt các gói cần thiết một cách nhanh nhất.

Cài đặt Docker

Mặc định thì Docker đã có sẵn trong phiên bản Ubuntu 20.04, vì vậy bạn chỉ việc chạy lệnh sau là có thể cài đặt được Docker.

apt-get install docker.io -y

Sau khi cài đặt docker thành công, bạn hãy chạy lần lượt hai lệnh dưới đây để khởi động Docker.

systemctl start docker
systemctl enable docker

Vậy là xong, bây giờ chúng ta hãy qua bước tiếp theo.

Download Discourse

Chúng ta sẽ tạo một thư mục tên là discourse nằm trong thư mục opt của Linux, hãy chạy lệnh sau để tiến hành tạo thư mục.

mkdir /opt/discourse

Sử dụng git để tải mã nguồn về thư mục mà ta đã tạo đó. Mặc định thì git đã có sẵn trong Ubuntu 20, nếu bạn sử dụng bản thấp hơn thì hãy tải và cài đặt git trước nhé.

git clone https://github.com/discourse/discourse_docker.git /opt/discourse

Bây giờ ta cần cài thêm net-tools package trong hệ thống của mình bằng lệnh sau:

apt-get install net-tools -y

Chờ cho tới khi máy báo thành công là bạn có thể qua bước tiếp theo.

Cài đặt và cấu hình Discourse

Bây giờ bạn hãy sử dụng lệnh cd để di chuyển đến thư mục discourse mà ta đã tạo ở trên, sau đó chạy file discourse-setup để tiến hành cài đặt. Hãy chạy lần lượt hai lệnh sau:

cd /opt/discourse
./discourse-setup

Thời gian cài đặt có thể mất vài phút, và nó cũng sẽ hỏi bạn một số thông tin.

Đầu tiên là sẽ hỏi domain bạn là gì, bạn hãy nhập vào nhé.

Ports 80 and 443 are free for use
'samples/standalone.yml' -> 'containers/app.yml'
Found 4GB of memory and 2 physical CPU cores
setting db_shared_buffers = 1024MB
setting UNICORN_WORKERS = 4
containers/app.yml memory parameters updated.

Hostname for your Discourse? [discourse.hoicode.com]: hoicode.com

Trong hình là mình nhập domain hoicode.com.

Tiếp theo bạn cần cung cấp cấu hình SMTP, Port, tài khoản đăng nhập SMTP.

Checking your domain name . . .
Connection to discourse.linuxbuz.com succeeded.
Email address for admin account(s)? [me@example.com,you@example.com]: thehalfheart@gmail.com
SMTP server address? [smtp.example.com]: smtp.gmail.com
SMTP port? [587]: 
SMTP user name? [user@example.com]: hitjethva81@gmail.com
SMTP password? [pa$$word]: vyom@123
Optional email address for Let's Encrypt warnings? (ENTER to skip) [me@example.com]: thehalfheart@gmail.com

Hãy cung cấp đung thông tin nhé. Sau mỗi thông tin bạn nhấn Enter để qua bước tiếp theo, và cuối cùng sẽ thu được một phần tổng hợp như sau:

Does this look right?

Hostname      : hoicode.com
Email         : thehalfheart@gmail.com
SMTP address  : smtp.gmail.com
SMTP port     : 587
SMTP username : thehalfheart@gmail.com
SMTP password : asdfgsd
Let's Encrypt : thehalfheart@gmail.com

ENTER to continue, 'n' to try again, Ctrl+C to exit:

Bạn hãy nhấn Enter để tiếp tục cài đặt, sau khi xong bạn sẽ nhận được giao diện như sau:

Enabling Let's Encrypt
web.ssl.template.yml enabled
letsencrypt.ssl.template.yml enabled

Configuration file at  updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=discourse.linuxbuz.com -e DISCOURSE_DEVELOPER_EMAILS=hitjethva81@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=hitjethva81@gmail.com -e DISCOURSE_SMTP_PASSWORD=asdfgsd -e LETSENCRYPT_ACCOUNT_EMAIL=hitjethva81@gmail.com -h ubuntu2004-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:43:15:82:15:a7 local_discourse/app /sbin/boot
7e303b07344c3643846a03d5c2f758ec67a6aa94b2a6a399bcb2766ccd02b3c2

Đoạn code trên sẽ tạo ra một file app.yml nằm trong thư mục discourse/containers. Sau này nếu bạn muốn thay đổi thông tin cấu hình thì chỉ cần sử dụng VI Editor để chỉnh file /opt/discouse/containers/app.yml, sau đó chạy lệnh ./launcher rebuild app để Discourse thiết lập lại cấu hình.

Vậy là xong, bây giờ bạn hãy truy cập vào domain mà bạn đã thiết lập. Như trong ví dụ này thì minh sẽ truy cập vào hoicode.com.

cai dat discourse thanh cong JPG

Tại đây bạn hãy tiến hành các bước thiết lập như yêu cầu trên màn hình nhé, rất dễ dàng nên mình sẽ không hướng dẫn cụ thể.

Như vậy là mình đã hướng dẫn xong cách cài đặt và cấu hình Discourse trên Linux, cụ thể là Ubuntu 20.04. Chúc bạn thực hiện thành công nhé.

Cùng chuyên mục:

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Vòng lặp while trong Shell Script

Vòng lặp while trong Shell Script

Trong Linux script, vòng lặp while được sử dụng trong ...

Top