Cách cài đặt Wikijs trên Rocky Linux

theanh

Administrator
Nhân viên
Wiki.js là phần mềm wiki mã nguồn mở được viết bằng JavaScript và chạy trên Node.js runtime, được phát hành theo giấy phép APGL-v3. Wiki.js là phần mềm wiki nhẹ và mạnh mẽ với giao diện người dùng đẹp và trực quan, được thiết kế cho web hiện đại. Wiki.js là phần mềm wiki có khả năng mở rộng cao và phù hợp với nhiều loại tài liệu và triển khai khác nhau, có thể được sử dụng cho cả người dùng chuyên nghiệp và không chuyên nghiệp.

Wiki.js được hỗ trợ bởi nhiều loại mô-đun khác nhau để mở rộng các tính năng và biến nó thành phần mềm wiki mạnh mẽ và có khả năng mở rộng. Dưới đây là một số tính năng đáng chú ý và mặc định của Wiki.js:
  • Hỗ trợ nhiều cơ sở dữ liệu (PostgreSQL, MySQL, SQLite và MSSQL Server).
  • Nhiều trình soạn thảo, bao gồm Markdown dành cho nhà phát triển, WYSIWYG dành cho người không chuyên về kỹ thuật, mã và Tabular (giống Excel)
  • Công cụ tìm kiếm dựa trên cơ sở dữ liệu tích hợp, cũng hỗ trợ một công cụ tìm kiếm khác như Apache Solr, Elasticsearch, v.v.
  • Hỗ trợ nhiều kho lưu trữ dữ liệu để sao lưu như Git, sFTP, AWS S3, Google Drive, Dropbox, v.v.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Wiki.js trên máy chủ Rocky Linux. Bạn sẽ cài đặt Wiki.js bằng phiên bản LTS mới nhất của Node.js, sử dụng PostgreSQL làm cơ sở dữ liệu chính và sử dụng máy chủ web Nginx làm proxy ngược.

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

  • Hệ thống Rocky Linux. Đảm bảo tất cả các gói và kho lưu trữ được cập nhật lên phiên bản mới nhất
  • Người dùng root hoặc người dùng có quyền root. Bạn sẽ sử dụng người dùng này để cài đặt các gói mới và chỉnh sửa cấu hình hệ thống.

Cài đặt Nodejs trên Rocky Linux​

Đầu tiên, bạn sẽ cài đặt Node.js trên Rocky Linux. Và theo mặc định, kho lưu trữ AppStream cung cấp nhiều phiên bản Node.js LTS.

1. Kiểm tra mô-đun kho lưu trữ cho 'nodejs' bằng cách chạy lệnh sau.
Mã:
sudo dnf module list nodejs
Bạn sẽ thấy nhiều phiên bản của mô-đun Node.js.



2. Bật mô-đun kho lưu trữ 'nodejs:14' bằng lệnh bên dưới.
Mã:
sudo dnf module enable nodejs:14
Gõ 'y' để bật mô-đun kho lưu trữ 'nodejs:14'.



3. Tiếp theo, thực hiện lệnh sau để cài đặt các gói Node.js và npm.
Mã:
sudo dnf install nodejs npm
Gõ 'y' và nhấn 'Enter' để xác nhận cài đặt.



4. Sau khi cài đặt hoàn tất, hãy thực hiện lệnh sau để kiểm tra phiên bản Node.js và npm.
Mã:
node --version
npm --version
Bạn sẽ thấy đầu ra tương tự như bên dưới.
Mã:
# Phiên bản Node.js
v14.17.3

# Phiên bản NPM 
6.14.13

Cài đặt cơ sở dữ liệu PostgreSQL​

Trong giai đoạn này, bạn sẽ cài đặt PostgreSQL từ kho lưu trữ PostgreSQL chính thức. Đối với sản xuất, nên sử dụng PostgreSQL làm cơ sở dữ liệu chính cho Wiki.js.

1. Bây giờ hãy thực hiện lệnh sau để thêm kho lưu trữ PostgreSQL vào hệ thống Rocky Linux.
Mã:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm


2. Vô hiệu hóa kho lưu trữ Rocky Linux PostgreSQL mặc định bằng lệnh sau.
Mã:
sudo dnf module -qy disable postgresql
3. Tiếp theo, hãy chạy lệnh bên dưới để cài đặt PostgreSQL 13 vào máy chủ Rocky Linux.
Mã:
sudo dnf install postgresql13-server
Gõ 'y' và nhấn 'Enter' để tiếp tục cài đặt.



4. Nếu quá trình cài đặt PostgreSQL hoàn tất, hãy thực hiện lệnh sau để khởi tạo cơ sở dữ liệu PostgreSQL, khởi động và kích hoạt dịch vụ PostgreSQL.

Khởi tạo cơ sở dữ liệu PostgreSQL bằng lệnh bên dưới.
Mã:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Cho phép PostgreSQL tự động khởi động khi hệ thống khởi động bằng lệnh bên dưới.
Mã:
sudo systemctl enable postgresql-13
Bây giờ hãy khởi động dịch vụ PostgreSQL và kiểm tra trạng thái của dịch vụ này bằng lệnh sau.
Mã:
sudo systemctl start postgresql-13
sudo systemctl status postgresql-13
Nếu dịch vụ PostgreSQL của bạn đang chạy, bạn sẽ thấy thông báo đầu ra là 'active (running)' giống như ảnh chụp màn hình bên dưới.


Tạo cơ sở dữ liệu và người dùng mới​

Sau khi cài đặt máy chủ PostgreSQL, bạn sẽ tạo cơ sở dữ liệu và người dùng mới cho cài đặt Wiki.js.

1. Thực hiện lệnh sau để đăng nhập vào shell PostgreSQL.
Mã:
sudo -u postgres psql
2. Tạo tên người dùng PostgreSQL mới là 'wiki' với mật khẩu là 'wikijspassworddb' bằng cách sử dụng truy vấn sau.
Mã:
CREATE USER wiki WITH 
CREATEDB
PASSWORD 'wikijspassworddb';
3. Bây giờ hãy tạo một tên cơ sở dữ liệu mới là 'wikidb' và biến người dùng 'wiki' thành chủ sở hữu của cơ sở dữ liệu bằng cách sử dụng truy vấn PostgreSQL bên dưới.
Mã:
CREATE DATABASE wikidb OWNER wiki;
Bây giờ hãy nhập '\q' để thoát khỏi shell PostgreSQL.



Tùy chọn, bạn có thể xác minh người dùng và cơ sở dữ liệu bằng cách sử dụng các truy vấn bên dưới.
Mã:
# Kiểm tra người dùng khả dụng
\du

# Hiển thị danh sách cơ sở dữ liệu
\l

Tải xuống và cấu hình Wiki.js​

Đối với hướng dẫn này, bạn sẽ chạy Wiki.js dưới dạng dịch vụ và nó sẽ chạy dưới dạng người dùng không phải root.

1. Thực hiện lệnh bên dưới để tạo người dùng mới 'wiki' cho cài đặt Wiki.js.
Mã:
sudo adduser --system --user-group --no-create-home --shell /sbin/nologin wiki
2. Tạo thư mục mới '/var/wiki' và thay đổi thư mục làm việc vào đó. Sau đó, chạy lệnh wget để tải xuống phiên bản ổn định mới nhất của mã nguồn Wiki.js.
Mã:
mkdir -p /var/wiki; cd /var/wiki/
wget https://github.com/Requarks/wiki/releases/download/2.5.201/wiki-js.tar.gz


Nếu quá trình tải xuống hoàn tất, hãy giải nén mã nguồn Wiki.js bằng lệnh tar bên dưới.
Mã:
tar -xf wiki-js.tar.gz
3. Tiếp theo, sao chép cấu hình mẫu Wiki.js vào 'config.yml' và chỉnh sửa bằng nano.
Mã:
cp config.sample.yml config.yml
nano config.yml
Thay đổi thông tin chi tiết về tên cơ sở dữ liệu, người dùng và mật khẩu như bên dưới.
Mã:
db:
 type: postgres

 # Chỉ dành cho PostgreSQL / MySQL / MariaDB / MS SQL Server:
 host: localhost
 port: 5432
 user: wiki
 pass: wikijspassworddb
 db: wikidb
 ssl: false
Đặt '#' trước tùy chọn lưu trữ SQLite như bên dưới.
Mã:
# Chỉ dành cho SQLite:
 #storage: path/to/database.sqlite
Thay đổi tùy chọn 'bindIP' thành '127.0.0.1' để chạy Wiki.js chỉ trên IP cục bộ.
Mã:
# ------------------------------------------------------------------
# Địa chỉ IP mà máy chủ phải lắng nghe
# ------------------------------------------------------------------
# Để lại 0.0.0.0 cho tất cả các giao diện

bindIP: 127.0.0.1
Lưu cấu hình và thoát bằng cách nhấn nút 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter'.

4. Tiếp theo, điều quan trọng nhất là thay đổi quyền sở hữu thư mục '/var/wiki' thành người dùng và nhóm 'wiki' bằng lệnh bên dưới.
Mã:
sudo chown -R wiki:wiki /var/wiki

Thiết lập Wiki.js dưới dạng Dịch vụ Systemd​

1. Để tạo tệp dịch vụ systemd mới, hãy thay đổi thư mục làm việc thành '/etc/systemd/system' và tạo tệp dịch vụ mới 'wikijs.service' bằng nano.
Mã:
cd /etc/systemd/system/
sudo nano wikijs.service
Sao chép và dán cấu hình sau.
Mã:
[Unit]
Description=Wiki.js
After=network.target postgresql-13.service

[Service]
Type=simple
ExecStart=/bin/node server
Restart=always
# Hãy cân nhắc tạo người dùng chuyên dụng cho Wiki.js tại đây:
User=wiki
Group=wiki
Environment=NODE_ENV=production
WorkingDirectory=/var/wiki

[Install]
WantedBy=multi-user.target
Nhấn 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter' để lưu cấu hình và thoát.

2. Tải lại 'systemd-manager' để áp dụng cấu hình dịch vụ mới.
Mã:
sudo systemctl daemon-reload
3. Tiếp theo, bật dịch vụ 'wikijs' để chạy khi khởi động hệ thống bằng lệnh bên dưới.
Mã:
sudo systemctl enable wikijs


4. Khởi động dịch vụ 'wikijs' và kiểm tra trạng thái của nó bằng lệnh sau.
Mã:
sudo systemctl start wikijs
sudo systemctl status wikijs
Bây giờ bạn sẽ thấy wikijs.service đang hoạt động và chạy trên hệ thống Rocky Linux.


Cài đặt và cấu hình Nginx làm Proxy ngược cho Wiki.js​

Trong giai đoạn này, bạn sẽ cài đặt và cấu hình máy chủ web Nginx như một proxy ngược cho Wiki.js. Nếu bạn đã cài đặt máy chủ web Nginx trên máy chủ của mình, hãy chuyển sang giai đoạn số 2 để cấu hình các khối máy chủ Nginx.

1. Để cài đặt máy chủ web Nginx, hãy thực thi lệnh dnf bên dưới.
Mã:
sudo dnf install nginx
Nhập 'y' để xác nhận và cài đặt máy chủ web Nginx.



2. Nếu quá trình cài đặt hoàn tất, hãy thay đổi thư mục làm việc thành '/etc/nginx/conf.d' và tạo cấu hình khối máy chủ Nginx mới 'wikijs.conf' bằng nano.
Mã:
cd /etc/nginx/conf.d/
sudo nano wikijs.conf
Sao chép và dán cấu hình sau và đảm bảo thay đổi giá trị của tùy chọn 'server_name' bằng tên miền của bạn.
Mã:
server {
 listen 80;

 server_name wiki.domain-name.io;

 charset utf-8;
 client_max_body_size 50M;

 location / {
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_pass http://127.0.0.1:3000;
 proxy_http_version 1.1;
 proxy_set_header Nâng cấp $http_upgrade;
 proxy_set_header Kết nối "nâng cấp";
 proxy_next_upstream lỗi hết thời gian chờ http_502 http_503 http_504;
 }

}
Nhấn 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter' để lưu cấu hình và thoát.

3. Tiếp theo, hãy kiểm tra cấu hình Nginx và đảm bảo không có lỗi, sau đó bật dịch vụ Nginx.
Mã:
sudo nginx -t
sudo systemctl enable nginx


4. Bây giờ hãy khởi động và kiểm tra trạng thái của dịch vụ Nginx bằng cách chạy lệnh sau.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx
Bạn sẽ thấy đầu ra của dịch vụ Nginx là 'active (running)' như bên dưới.


Bảo mật Wikijs bằng SSL Letsencrypt​

Trong giai đoạn này, bạn sẽ bảo mật cài đặt Wiki.js bằng SSL Letsencrypt.

1. Thực hiện lệnh sau để cài đặt plugin certbot và certbot-nginx.
Mã:
sudo dnf install certbot python3-certbot-nginx
2. Sau khi cài đặt hoàn tất, hãy tạo một SSL Letsencrtypt mới cho tên miền radicale bằng lệnh certbot bên dưới.
Mã:
sudo certbot --nginx --agree-tos --email [emailprotected] -d wiki.domain-name.io
Và bạn sẽ được hỏi một số câu hỏi bên dưới.
  • Địa chỉ email: khi chứng chỉ SSL hết hạn, bạn sẽ được thông báo qua email này.
  • Letsencrypt TOS (Điều khoản dịch vụ): nhập 'A' để đồng ý.
  • Chia sẻ email với EFF: bạn có thể chọn 'N' để không.
  • Tự động chuyển hướng HTTP sang HTTPS: chọn số '2' để bật tính năng tự động chuyển hướng.
Sau khi quá trình hoàn tất, bạn sẽ thấy chứng chỉ SSL có sẵn tại thư mục '/etc/letsencrypt/live/wiki.domain-name.io'. Và cấu hình khối máy chủ Nginx của bạn đã thay đổi với cấu hình bổ sung từ letsencrypt.

Cấu hình Quản trị Wiki.js và Trang chủ mặc định​

Mở trình duyệt web của bạn và nhập địa chỉ URL của cài đặt Wiki.js của bạn vào thanh địa chỉ.

https://wiki.domain-name.io/

1. Bạn sẽ được chuyển hướng đến kết nối HTTPS và bạn sẽ thấy trang sau.



Nhập thông tin chi tiết của tài khoản Quản trị viên với địa chỉ email và mật khẩu của bạn, sau đó nhập tên miền Wiki.js của bạn làm URL trang web, sau đó nhấp vào nút 'CÀI ĐẶT'.

Chờ cài đặt Wiki.js.

2. Và nếu quá trình cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập Wiki.js như bên dưới.



Nhập địa chỉ email và mật khẩu của quản trị viên, sau đó nhấp vào nút 'Đăng nhập'.

3. Và bạn sẽ thấy thông báo chào mừng của Wiki.js.



Nhấp vào nút '+ TẠO TRANG CHỦ' để tạo trang chủ mới cho wiki của bạn.

4. Chọn trình soạn thảo mà bạn cảm thấy thoải mái và nhấp vào trình soạn thảo đó. Đối với ví dụ này, chúng ta sẽ sử dụng trình soạn thảo 'Markdown'.



5. Trên cửa sổ bật lên 'Thuộc tính trang', hãy nhập tiêu đề chi tiết và mô tả ngắn về trang chủ của bạn. Và để đường dẫn mặc định là 'trang chủ'.



Nhấp vào 'Ok' để xác nhận cấu hình thuộc tính trang.

6. Nhập nội dung trang chủ của bạn, sau đó nhấp vào nút 'TẠO' để lưu.



7. Bây giờ bạn sẽ được chuyển hướng đến trang chủ Wiki.js của mình như bên dưới.


Kết luận​

Xin chúc mừng! Bây giờ bạn đã tạo thành công Wiki của mình bằng Wiki.js trên máy chủ Rocky Linux. Wiki.js hiện đang chạy với phiên bản ổn định mới nhất của Node.js, cơ sở dữ liệu PostgreSQL và proxy ngược Nginx. Ngoài ra, nó được bảo mật bằng SSL Letsencrypt. Đối với bước tiếp theo, bạn có thể thêm một số mô-đun bổ sung khi cần, chẳng hạn như phân tích, xác thực, ghi nhật ký và trình soạn thảo mã/văn bản. Và bạn đã sẵn sàng để viết tài liệu về các dự án của mình.
 
Back
Bên trên