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:
1. Kiểm tra mô-đun kho lưu trữ cho 'nodejs' bằng cách chạy lệnh sau.
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.
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.
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.
Bạn sẽ thấy đầu ra tương tự như bên dưới.
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.
2. Vô hiệu hóa kho lưu trữ Rocky Linux PostgreSQL mặc định bằng lệnh sau.
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.
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.
Cho phép PostgreSQL tự động khởi động khi hệ thống khởi động bằng lệnh bên dưới.
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.
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.
1. Thực hiện lệnh sau để đăng nhập vào shell PostgreSQL.
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.
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.
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.
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.
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.
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.
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.
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.
Đặt '#' trước tùy chọn lưu trữ SQLite như bên dưới.
Thay đổi tùy chọn 'bindIP' thành '127.0.0.1' để chạy Wiki.js chỉ trên IP cục bộ.
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.
Sao chép và dán cấu hình sau.
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.
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.
4. Khởi động dịch vụ 'wikijs' và kiểm tra trạng thái của nó bằng lệnh sau.
Bây giờ bạn sẽ thấy wikijs.service đang hoạt động và chạy trên hệ thống Rocky Linux.
1. Để cài đặt máy chủ web Nginx, hãy thực thi lệnh dnf bên dưới.
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.
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.
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.
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.
Bạn sẽ thấy đầu ra của dịch vụ Nginx là 'active (running)' như bên dưới.
1. Thực hiện lệnh sau để cài đặt plugin certbot và 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.
Và bạn sẽ được hỏi một số câu hỏi bên dưới.
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.
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.
Đ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
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
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
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
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
Mã:
sudo dnf install postgresql13-server
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
Mã:
sudo systemctl enable postgresql-13
Mã:
sudo systemctl start postgresql-13
sudo systemctl status postgresql-13
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
Mã:
CREATE USER wiki WITH
CREATEDB
PASSWORD 'wikijspassworddb';
Mã:
CREATE DATABASE wikidb OWNER wiki;
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
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
Mã:
cp config.sample.yml config.yml
nano config.yml
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
Mã:
# Chỉ dành cho SQLite:
#storage: path/to/database.sqlite
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
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
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
2. Tải lại 'systemd-manager' để áp dụng cấu hình dịch vụ mới.
Mã:
sudo systemctl daemon-reload
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
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
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
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;
}
}
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ả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
Mã:
sudo certbot --nginx --agree-tos --email [emailprotected] -d wiki.domain-name.io
- Đị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.
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.