Cách cài đặt NodeBB Forum với Nginx và Let's Encrypt SSL trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
NodeBB là phần mềm diễn đàn hiện đại được hỗ trợ bởi Node.js, sử dụng MongoDB/Redis làm nền tảng cơ sở dữ liệu. Nó sử dụng web socket để tương tác tức thời và thông báo theo thời gian thực.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt diễn đàn NodeBB trên máy chủ chạy Ubuntu 20.04.

Điều kiện tiên quyết​


  • Máy chủ chạy Ubuntu 20.04 với người dùng không phải root có quyền sudo.

  • RAM tối thiểu 2GB. Nếu máy chủ của bạn chỉ có 1GB RAM, tốt nhất là bật phân vùng hoán đổi.

  • Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
[*]
Một số gói thiết yếu. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Ubuntu mặc định có ufw (Uncomplicated Firewall).

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Trạng thái: không hoạt động
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cho phép Cổng 27017 cho máy chủ MongoDB và cổng 4567 để chạy diễn đàn NodeBB. Cho phép cả cổng HTTPHTTPS.
Mã:
$ sudo ufw allow 27017$ sudo ufw allow 4567$ sudo ufw allow 80$ sudo ufw allow 443
Bật Tường lửa.
Mã:
$ sudo ufw enableLệnh có thể làm gián đoạn các kết nối ssh hiện có. Tiến hành thao tác (y|n)? yTường lửa đang hoạt động và được bật khi khởi động hệ thống
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Trạng thái: đang hoạt độngĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere27017 ALLOW Anywhere4567 ALLOW Anywhere80 ALLOW Anywhere443 ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)27017 (v6) ALLOW Anywhere (v6)4567 (v6) ALLOW Anywhere (v6)80 (v6) ALLOW Anywhere (v6)443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Node.js​

Chúng tôi sẽ cài đặt phiên bản LTS của Node.js tại đây. Chạy các lệnh sau để cài đặt Node.js.
Mã:
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -$ sudo apt install nodejs
Kiểm tra xem Node đã được cài đặt đúng chưa.
Mã:
$ node --version
Bạn sẽ thấy kết quả tương tự.
Mã:
v12.18.3
Kiểm tra cả npm nữa.
Mã:
$ npm --version6.14.6

Bước 3 - Cài đặt MongoDB​

MongoDB là cơ sở dữ liệu mặc định cho NodeBB. Bạn cũng có thể sử dụng Redis thay cho MongoDB. Chúng tôi sẽ đề cập đến cả hai cơ sở dữ liệu trong hướng dẫn của mình.

Kho lưu trữ của MongoDB cho Ubuntu 20.04 vẫn chưa sẵn sàng và bản thân Ubuntu có phiên bản rất cũ. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụng kho lưu trữ MongoDB cho 18.04 hoạt động tốt. Bạn có thể cập nhật danh sách gói bằng kho lưu trữ mới nhất khi có hỗ trợ chính thức.

Nhập khóa công khai cho MongoDB.
Mã:
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Thêm kho lưu trữ MongoDB.
Mã:
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Cập nhật cơ sở dữ liệu gói cục bộ.
Mã:
$ sudo apt update
Cài đặt MongoDB.
Mã:
$ sudo apt install mongodb-org
Xác minh cài đặt MongoDB.
Mã:
$ mongod --versiondb version v4.2.8...
Khởi động dịch vụ MongoDB.
Mã:
$ sudo systemctl start mongod
Kích hoạt dịch vụ MongoDB.
Mã:
$ sudo systemctl enable mongod
Kiểm tra trạng thái của dịch vụ MongoDB.
Mã:
$ sudo systemctl status mongod

Bước 4 - Cấu hình MongoDB​

Quản trị MongoDB được thực hiện thông qua MongoDB shell. Cài đặt MongoDB mặc định lắng nghe trên cổng 27017.

Truy cập MongoDB shell.
Mã:
$ mongo
Chuyển sang cơ sở dữ liệu admin tích hợp sẵn.
Mã:
> sử dụng admin
Tạo người dùng quản trị. Người dùng này không giống với người dùng quản trị NodeBB.
Mã:
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
Thay đổi chỗ giữ chỗ “yourpassword” thành mật khẩu của riêng bạn.

Thêm cơ sở dữ liệu mới cho NodeBB.
Mã:
> use nodebb
Tiếp theo, tạo người dùng nodebb để quản lý cơ sở dữ liệu nodebb.
Mã:
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
Quyền readwrite cho phép NodeBB lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu nodebb. Quyền clustermonitor cho phép NodeBB truy cập chỉ đọc vào số liệu thống kê cơ sở dữ liệu có thể nhìn thấy thông qua bảng điều khiển Quản trị của nó.

Thoát khỏi shell Mongo.
Mã:
> quit()
Mở tệp cấu hình MongoDB để chỉnh sửa.
Mã:
$ sudo nano /etc/mongod.conf
Thêm dòng sau vào cuối tệp.
Mã:
security: authorization: enabled
Khởi động lại MongoDB và xác minh người dùng quản trị đã tạo trước đó.
Mã:
$ sudo systemctl restart mongod$ mongo -u admin -p yourpassword --authenticationDatabase=admin
Bạn sẽ thấy dấu nhắc Mongo nếu mọi thứ đã được cấu hình đúng.

Bước 5 - Cài đặt Git​

Trước khi tiến hành cài đặt NodeBB, chúng ta cần cài đặt Git.

Chạy lệnh sau để cài đặt Git.
Mã:
$ sudo apt install git
Chạy các lệnh sau để thực hiện cấu hình ban đầu của Git.
Mã:
$ git config --global user.name "Tên của bạn"$ git config --global user.email "[emailprotected]"

Bước 6 - Cài đặt NodeBB​

Không nên chạy NodeBB với tư cách là người dùng root.

Tạo một người dùng không có đặc quyền.
Mã:
$ sudo adduser nodebb
Đặt mật khẩu theo ý bạn và bỏ qua các tùy chọn khác.

Tạo thư mục nơi diễn đàn NodeBB của bạn sẽ tồn tại.
Mã:
$ sudo mkdir /var/www/nodebb
Đổi quyền sở hữu thư mục thành người dùng mới được tạo.
Mã:
$ sudo chown -R nodebb:nodebb /var/www/nodebb
Đăng nhập vào người dùng mới tạo.
Mã:
$ su nodebb
Chuyển đến thư mục cài đặt NodeBB.
Mã:
$ cd /var/www/nodebb
Để cài đặt NodeBB, trước tiên chúng ta cần sao chép kho lưu trữ Github của nó.

Sao chép NodeBB vào thư mục /var/www/nodebb. Dấu chấm ở cuối lệnh tham chiếu đến thư mục hiện tại.
Mã:
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
Ở đây chúng tôi đã sao chép v1.14.2 của NodeBB, đây là phiên bản ổn định mới nhất tại thời điểm viết hướng dẫn. Bạn có thể tìm thấy nhánh ổn định mới nhất từ trang Bản phát hành mới nhất của NodeBB.

NodeBB đi kèm với một tiện ích dòng lệnh. Sử dụng lệnh sau để cài đặt NodeBB.
Mã:
$ ./nodebb setup
Bạn có thể nhấn enter để chọn giá trị mặc định.

Đối với giá trị của URL được sử dụng để truy cập NodeBB này, hãy chọn URL cuối cùng mà bạn muốn truy cập diễn đàn. Nếu bạn sẽ truy cập diễn đàn thông qua IP máy chủ của mình, hãy nhập URL đó hoặc nhập tên miền đầy đủ của diễn đàn. Ở đây, chúng ta sẽ nhập http://forum.example.com.

Tiếp tục chọn các giá trị mặc định cho đến khi bạn được nhắc nhập Tên người dùng MongoDB, đó là lúc bạn nhập nodebb và mật khẩu mà bạn đã chọn trước đó cho tên người dùng đó khi định cấu hình MongoDB. Bạn nên chọn cơ sở dữ liệu nodebb. Bạn cũng sẽ được yêu cầu tạo người dùng quản trị viên và thông tin chi tiết của người dùng đó.

Sau khi thiết lập hoàn tất, hãy chạy lệnh sau để khởi động NodeBB.
Mã:
$ ./nodebb start
Diễn đàn của bạn hiện đang chạy. Bạn có thể truy cập diễn đàn qua http://:4567.



Bạn có thể thấy thông báo lỗi có nội dung Có vẻ như kết nối của bạn với NodeBB đã bị mất, vui lòng đợi trong khi chúng tôi thử kết nối lại. Có vẻ như chúng tôi đã chọn URL mặc định cho NodeBB http://forum.example.com chứ không phải http://
 
Back
Bên trên