Thứ Bảy, 29 tháng 7, 2023

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.

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é.

Bài viết này được đăng tại tranvanbinh.vn

Mục lục

  • 1. Điều kiện cài đặt Discourse trên Ubuntu
  • 2. Các bước cài đặt Discourse trên Ubuntu
    • Cài đặt Docker
    • Download Discourse
    • Cài đặt và cấu hình Discourse

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.

1
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.

1
2
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.

1
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é.

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:

1
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:

1
2
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é.

1
2
3
4
5
6
7
8
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.

1
2
3
4
5
6
7
8
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:

1
2
3
4
5
6
7
8
9
10
11
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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é.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master