Cách cài đặt Wiki.js trên Debian 12

theanh

Administrator
Nhân viên
Wiki.js là phần mềm wiki miễn phí và mã nguồn mở dựa trên Node.js, Git và Markdown. Phần mềm này được phát hành theo Giấy phép AGPL-v3 và được thiết kế để tiết kiệm tài nguyên hệ thống và hiệu suất. Wiki.js là phần mềm Wiki mạnh mẽ có thể cài đặt ở bất kỳ đâu trên hệ thống của bạn. Bạn có thể cài đặt phần mềm này trên hệ điều hành hoặc sử dụng các dịch vụ đám mây như Heroku và cũng có thể triển khai Wiki.js trên môi trường chứa của bạn, chẳng hạn như Docker và Kubernetes.

Wiki.js tương thích với cơ sở dữ liệu PostgreSQL và cung cấp hơn 50 tích hợp để xác thực, hệ thống ghi nhật ký, công cụ tìm kiếm, kết xuất và lưu trữ bổ sung. Đây là phần mềm Wiki mạnh mẽ được xây dựng trên các giao diện đẹp mắt và trực quan cho cả bảng điều khiển quản trị và các trang. Đây là phần mềm wiki hoàn toàn có thể tùy chỉnh để ghi lại tài liệu về ngăn xếp công nghệ của bạn.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách cài đặt Wiki.js trên hệ thống Debian 12. Chúng tôi sẽ hướng dẫn bạn cài đặt Wiki.js, sử dụng máy chủ cơ sở dữ liệu PostgreSQL, Nginx làm proxy ngược, sau đó bảo mật phiên bản Wiki.js của bạn bằng chứng chỉ SSL/TLS từ Let's Encrypt.

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

Trước khi tiếp tục, hãy đảm bảo rằng bạn có:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền được trỏ đến địa chỉ IP của máy chủ của bạn. Ví dụ này sẽ sử dụng miền wiki.howtoforge.local.

Cài đặt các phụ thuộc​

Ở giai đoạn đầu tiên, bạn sẽ cài đặt một số phụ thuộc sẽ được Wiki.js sử dụng, bao gồm:
  • Máy chủ cơ sở dữ liệu PostgreSQL: Máy chủ này sẽ được sử dụng làm cơ sở dữ liệu cho Wiki.js của bạn.
  • Máy chủ web Nginx: Máy chủ web Nginx sẽ được sử dụng làm proxy ngược cho Wiki.js.
  • Node.js và NPM: Công cụ chạy JavaScript Node.js và trình quản lý gói NPM.
  • Certbot và Nginx Certbot Plugin: Certbot để tạo chứng chỉ SSL/TLS thông qua Let's Encrypt và Nginx Certbot Plugin sẽ tự động xác nhận khối máy chủ Nginx của bạn bằng HTTPS.
Để bắt đầu, hãy cập nhật và làm mới kho lưu trữ Debian bằng lệnh bên dưới trước khi cài đặt các gói.
Mã:
sudo apt update
Bây giờ hãy cài đặt các gói phụ thuộc cho Wiki.js thông qua lệnh apt install bên dưới. Với lệnh sau, bạn sẽ cài đặt máy chủ cơ sở dữ liệu PostgreSQL, Node.js và NPM, máy chủ web Nginx, Certbot và plugin Certbot Nginx.
Mã:
sudo apt install postgresql postgresql-common nodejs npm nginx certbot python3-certbot-nginx
Nhập y để xác nhận và tiếp tục cài đặt.


1-install-dependencies.png



Sau khi cài đặt xong các phụ thuộc, hãy xác minh từng phụ thuộc bằng các lệnh sau.

Xác minh trạng thái dịch vụ PostgreSQL bằng lệnh systemctl bên dưới.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Một đầu ra tương tự bên dưới sẽ được hiển thị.


2-checking-postgresql.png



Xác minh trạng thái dịch vụ Nginx để đảm bảo nó đang chạy và đã bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Nếu Nginx đang chạy và được bật, đầu ra bên dưới sẽ được hiển thị trên thiết bị đầu cuối của bạn.


3-check-nginx.png



Cuối cùng, hãy xác minh Node.js và NPN bằng cách thực hiện lệnh sau. Đầu ra sẽ hiển thị phiên bản Node.js và NPM hiện tại được cài đặt trên hệ thống của bạn.
Mã:
node --version
npm --version

4-checking-node-npm.png


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

Sau khi cài đặt các phần phụ thuộc, bước tiếp theo là tạo cơ sở dữ liệu và người dùng mới cho cài đặt Wiki.js của bạn. Để thực hiện điều đó, bạn phải đăng nhập vào PostgreSQL thông qua máy khách psql.

Đăng nhập vào máy chủ PostgreSQL bằng cách thực hiện lệnh sau.
Mã:
sudo -u postgres psql
Sau khi đăng nhập, hãy chạy các truy vấn sau để tạo cơ sở dữ liệu PostgreSQL mới và người dùng wikijs. Hãy nhớ thay đổi mật khẩu trong các truy vấn sau.
Mã:
CREATE USER wikijs WITH PASSWORD 'p4ssw0rd';
CREATE DATABASE wikijs OWNER wikijs;

5-create-user-database.png



Sau khi cơ sở dữ liệu và người dùng được tạo, hãy xác minh sự tồn tại của chúng bằng các truy vấn sau để liệt kê các cơ sở dữ liệu và người dùng khả dụng trên phiên bản PostgreSQL của bạn.
Mã:
\du
\l
Bạn sẽ thấy cơ sở dữ liệu và người dùng wikijs được tạo trên PostgreSQL.


6-check-database-user.png



Gõ quit để thoát khỏi máy chủ PostgreSQL.

Tải xuống mã nguồn Wiki.js​

Trong phần sau, bạn sẽ tải xuống mã nguồn Wiki.js vào máy chủ của bạn và thiết lập thư mục cài đặt với quyền và quyền sở hữu phù hợp.

Tạo người dùng wikijs mới bằng cách thực hiện lệnh sau.
Mã:
sudo useradd -m -s /bin/false wikijs
Bây giờ hãy tạo một thư mục mới /opt/wikijs và chuyển vào đó. Sau đó, tải xuống mã nguồn Wiki.js thông qua lệnh wget bên dưới.
Mã:
mkdir -p /opt/wikijs; cd /opt/wikijs
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Sau khi tải xuống, hãy giải nén mã nguồn Wiki.js và thay đổi quyền sở hữu thư mục /opt/wikijs thành người dùng wikijs.
Mã:
tar -xf wiki-js.tar.gz
sudo chown -R wikijs:wikijs /opt/wikijs

Cấu hình Wiki.js​

Sau khi tải xuống Wiki.js, tiếp theo bạn sẽ cấu hình cài đặt Wiki.js của mình với cơ sở dữ liệu và người dùng PostgreSQL, và bạn cũng sẽ cấu hình địa chỉ IP liên kết cho Wiki.js.

Sao chép cấu hình WIki.js mặc định config.sample.yml vào config.yml, sau đó mở nó bằng trình soạn thảo nano sau.
Mã:
sudo -u wikijs cp config.sample.yml config.yml
sudo -u wikijs nano config.yml
Thay đổi cấu hình cơ sở dữ liệu mặc định với cơ sở dữ liệu, người dùng và PostgreSQL của bạn mật khẩu.
Mã:
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
 host: localhost
 port: 5432
 user: wikijs
 pass: p4ssw0rd
 db: wikijs
 ssl: false
Thay đổi tùy chọn bindIP mặc định thành localhost hoặc 127.0.0.1. Lệnh này sẽ chạy Wiki.js trên localhost.
Mã:
bindIP: 127.0.0.1
Lưu và thoát sau khi hoàn tất.

Tiếp theo, chạy lệnh sau để chạy và kiểm tra cài đặt Wiki.js của bạn.
Mã:
sudo -u wikijs node server
Bạn sẽ thấy xác nhận rằng Wiki.js đang chạy trên localhost với cổng mặc định 3000.


7-configure-wikijs.png



Cuối cùng, nhấn Ctrl+c để kết thúc tiến trình Wiki.js.

Chạy Wiki.js ở chế độ nền dưới dạng dịch vụ​

Bây giờ bạn đã hoàn tất cấu hình WIki.js, bước tiếp theo là bạn sẽ thiết lập Wiki.js chạy ở chế độ nền dưới dạng dịch vụ systemd. Bằng cách sử dụng phương pháp sau, bạn có thể dễ dàng quản lý WIki.js thông qua tiện ích systemctl.

Tạo tệp dịch vụ systemd mới cho Wiki.js /etc/systemd/system/wikijs.service bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/systemd/system/wikijs.service
Chèn cấu hình sau để cho phép Wiki.js chạy ở chế độ nền dưới dạng dịch vụ.
Mã:
[Unit]
Description=Wiki.js
After=network.target postgresql.service

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=wikijs
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs

[Install]
WantedBy=multi-user.target
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, chạy lệnh systemctl bên dưới để tải lại trình quản lý systemd và áp dụng tệp dịch vụ mới cho Wiki.js.
Mã:
sudo systemctl daemon-reload
Bây giờ bạn có thể bắt đầu và kích hoạt dịch vụ wiki.js bằng lệnh bên dưới.Điều này sẽ khởi động Wiki.js ở chế độ nền trên máy chủ cục bộ với cổng mặc định3000 và cho phép nó tự động chạy khi khởi động.
Mã:
sudo systemctl start wikijs
sudo systemctl enable wikijs

8-start-enable-wikijs.png



Xác minh dịch vụ wikijs bằng lệnh bên dưới để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status wikijs
Đầu ra bên dưới sẽ được hiển thị.


9-checking-wikijs-service.png



Cuối cùng, hãy chạy lệnh ss bên dưới để xác minh cổng 3000 được Wiki.js sử dụng ứng dụng.
Mã:
ss -tulpn | grep 3000
Nếu Wiki.js đang chạy, bạn sẽ thấy ứng dụng Node.js sử dụng cổng 3000.


10-checking-port-wikijs.png


Cấu hình Nginx làm Proxy ngược​

Bây giờ Wiki.js đang chạy trên máy chủ cục bộ với cổng mặc định là 3000. Ở bước tiếp theo, bạn sẽ tạo cấu hình khối máy chủ Nginx mới sẽ được sử dụng làm proxy ngược cho Wiki.js. Trước khi bắt đầu, hãy đảm bảo rằng bạn có tên miền được trỏ đến địa chỉ IP máy chủ của mình.

Tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/wikijs bằng lệnh nano editor sau.
Mã:
sudo nano /etc/nginx/sites-available/wikijs
Chèn cấu hình sau và đảm bảo thay đổi tên miền Wiki.js của bạn cài đặt.
Mã:
server {
 listen 80;
 server_name wiki.howtoforge.local;

 root /opt/wikijs;

 access_log /var/log/nginx/wikijs.access.log;
 error_log /var/log/nginx/wikijs.error.log;

 location / {
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_pass http://127.0.0.1:3000;
 }
}
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, chạy lệnh sau để bật cấu hình khối máy chủ Wiki.js và xác minh cú pháp Nginx.
Mã:
sudo ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabled
sudo nginx -t
Nếu cú pháp Nginx của bạn đúng, bạn sẽ nhận được đầu ra test is successful - syntax is ok.


11-setup-nginx-server-block.png



Bây giờ hãy khởi động lại dịch vụ Nginx bằng lệnh bên dưới để áp dụng khối máy chủ mới mà bạn đã cấu hình.
Mã:
sudo systemctl restart nginx
Sau khi Nginx được khởi động lại, hãy khởi chạy trình duyệt web ưa thích của bạn và truy cập tên miền cài đặt Wiki.js của bạn, chẳng hạn như http://wiki.howtoforge.local/. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy trang cài đặt Wiki.js như thế này:


12-wikijs-installation-page.png


Bảo mật Wiki.js bằng Chứng chỉ SSL/TLS​

Trong bước tiếp theo, bạn sẽ bảo mật cài đặt Wiki.js của mình bằng chứng chỉ SSL/TLS từ Letsencrypt. Ngoài ra, bạn sẽ thiết lập HTTP tự động sang HTTPS thông qua Plugin Certtbot Nginx.

Thực hiện lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS mới từ letsencrypt. Hãy chắc chắn thay đổi thông tin chi tiết của tên miền và địa chỉ email bằng thông tin của bạn.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d wiki.howtoforge.local
Sau khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục /etc/letsencrypt/live/wiki.howtoforge.local/. Đối với cấu hình khối máy chủ Wiki.js, nó sẽ tự động được cấu hình bằng HTTPS thông qua Plugin Certbot Nginx.

Bắt đầu cài đặt Wiki.js​

Quay lại trình duyệt web của bạn và truy cập tên miền Wiki.js của bạn, ví dụ: http://wiki.howtoforge.local/. Bạn sẽ tự động được chuyển hướng đến kết nối HTTPS an toàn.

Bây giờ hãy tạo người dùng quản trị cho Wiki.js và nhập địa chỉ email và mật khẩu của bạn. Sau đó, nhấp vào CÀI ĐẶT để xác nhận cài đặt.


13-confirm-installation.png



Sau khi cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập Wiki.js của mình. Nhập địa chỉ email và mật khẩu quản trị của bạn, sau đó nhấp vào ĐĂNG NHẬP.


14-wikijs-login-page.png



Nếu cài đặt thành công, bạn sẽ thấy trang chào mừng của Wiki.js. Từ đây, bạn có thể tạo trang chủ mới hoặc truy cập bảng điều khiển quản trị Wiki.js.


15-welcome-wikijs.png



Nếu bạn nhấp vào QUẢN TRỊ, bạn sẽ thấy trang quản trị Wiki.js như thế này:


16-wikijs-administration-dashboard.png



Trong phần SYSTEM, hãy nhấp vào menu System Info để biết thông tin chi tiết về cài đặt Wiki.js của bạn. Dưới đây, bạn sẽ thấy Wiki.js 2.5 được cài đặt với Node.js 18.x và PostgreSQL 15.x.


17-wikijs-system-info.png


Kết luận​

Vậy là xong! Bạn đã làm theo tất cả các bước và cài đặt Wiki.js trên hệ thống Debian 12 của mình, hoàn chỉnh với máy chủ cơ sở dữ liệu PostgreSQL, Nginx làm proxy ngược và bảo mật cài đặt thông qua chứng chỉ SSL/TLS từ Let's Encrypt. Bây giờ, bạn có thể bắt đầu xây dựng tài liệu của công ty mình bằng Wiki.js.
 
Back
Bên trên