Wiki.js là một ứng dụng wiki hiện đại, mã nguồn mở miễn phí được xây dựng trên Node.js , Git và Markdown . Mã nguồn Wiki.js được lưu trữ công khai trên Github . Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Wiki.js trên phiên bản Ubuntu 18.04 LTS Vultr mới bằng cách sử dụng Node.js, MongoDB, PM2, Nginx, Git và Acme.sh.
1. Cài đặt Git
Git 2.7.4 được cài đặt sẵn trên phiên bản máy chủ Ubuntu, vì vậy chúng tôi không cần cài đặt nó. Nếu bạn muốn cài đặt phiên bản mới hơn, bạn có thể sử dụng PPA của bên thứ ba hoặc biên dịch phiên bản Git mới nhất từ nguồn.
Bạn có thể xác minh phiên bản Git hiện được cài đặt bằng cách chạy:
git --version
# git version 2.7.4
Nếu bạn muốn cài đặt phiên bản mới hơn của phần mềm Git, bạn có thể sử dụng cách sau.
# Remove existing git package
sudo apt remove -y git
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt update && sudo apt upgrade -y
sudo apt install -y git
Xác minh phiên bản Git.
git --version
# git version 2.17.0
# git version 2.17.0
2. Cài đặt Node.js
Cài đặt Node.js bằng cách sử dụng kho lưu trữ NodeSource APT cho Node.js.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodej
Kiểm tra phiên bản Node.js và NPM.
node -v && npm -v
# v8.11.2
# 5.6.0
3. Cài đặt MongoDB
Cài đặt MongoDB Community Edition.
sudo apt install -y mongodb
Kiểm tra phiên bản.
mongo –version | head -n 1 && mongod –version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3
4. Cài đặt và định cấu hình Nginx
Cài đặt Nginx.
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf “deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n” >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx
Kiểm tra phiên bản.
sudo nginx -v
# nginx version: nginx/1.15.0
Bật và khởi động Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Định cấu hình Nginx làm proxy ngược cho ứng dụng Wiki.js.
Chạy sudo vim /etc/nginx/conf.d/wiki.js.confvà điền nó với cấu hình proxy ngược cơ bản bên dưới.
server {
listen [::]:80;
listen 80;
server_name wiki.example.com;
root /usr/share/nginx/html;
charset utf-8;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
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 Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
Điều duy nhất bạn cần thay đổi trong cấu hình ở trên là server_namechỉ thị và có thể là proxy_passchỉ thị nếu bạn quyết định cấu hình bất kỳ cổng nào khác bên cạnh đó 3000. Wiki.js sử dụng cổng 3000theo mặc định.
Kiểm tra cấu hình.
sudo nginx -t
Tải lại Nginx.
sudo systemctl reload nginx.service
5. Cài đặt ứng dụng khách Acme.sh và lấy chứng chỉ Let’s Encrypt (tùy chọn)
Việc bảo mật wiki của bạn HTTPSlà không cần thiết, nhưng nó sẽ đảm bảo lưu lượng truy cập vào trang web của bạn. Acme.sh là một phần mềm unix shell thuần túy để lấy chứng chỉ SSL từ Let’s Encrypt với không phụ thuộc.
Tải về và cài đặt Acme.sh .
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
Kiểm tra phiên bản.
/etc/letsencrypt/acme.sh --version
Nhận chứng chỉ RSA và ECDSA cho wiki.example.comtên miền / tên máy chủ.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength ec-256
Sau khi chạy các lệnh trên, các chứng chỉ và khóa của bạn sẽ ở trong:
- Đối với RSA:
/etc/letsencrypt/wiki.example.comthư mục. - Đối với ECC / ECDSA:
/etc/letsencrypt/wiki.example.com_eccthư mục.
Sau khi nhận được chứng chỉ từ Let’s Encrypt, chúng ta cần định cấu hình Nginx để sử dụng chúng.
Chạy sudo vim /etc/nginx/conf.d/wiki.js.conflại và định cấu hình Nginx làm HTTPSproxy ngược.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name wiki.example.com;
root /usr/share/nginx/html;
charset utf-8;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
# RSA
ssl_certificate /etc/letsencrypt/wiki.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com/wiki.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/wiki.example.com.key;
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 Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
Kiểm tra cấu hình.
sudo nginx -t
Tải lại Nginx.
sudo systemctl reload nginx.service
6. Cài đặt Wiki.js
Tạo một thư mục gốc tài liệu trống để cài đặt Wiki.js.
sudo mkdir -p /var/www/wiki.example.com
Điều hướng đến thư mục gốc của tài liệu.
cd /var/www/wiki.example.com
Thay đổi quyền sở hữu của /var/www/wiki.example.comthư mục cho người dùng johndoe.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
Từ /var/www/wiki.example.comthư mục, chạy lệnh sau để tải xuống và cài đặt Wiki.js.
curl -sSo- https://wiki.js.org/install.sh | bash
Để xem phiên bản Wiki.js hiện đã được cài đặt, bạn có thể chạy lệnh sau.
node wiki --version
# 1.0.78
Sau khi cài đặt hoàn tất, bạn sẽ được nhắc chạy trình hướng dẫn cấu hình.
Khởi động trình hướng dẫn cấu hình.
node wiki configure
Thao tác này sẽ thông báo cho bạn duyệt http://localhost:3000để định cấu hình Wiki.js. Nếu bạn có Nginx trước Wiki.js, bạn có thể mở tên miền của mình (ví dụ http://wiki.example.com) thay vì truy cập localhost.
Sử dụng trình duyệt web của bạn, điều hướng đến http://wiki.example.comvà làm theo hướng dẫn trên màn hình. Tất cả các cài đặt đã nhập trong trình hướng dẫn cấu hình sẽ được lưu trong config.ymltệp. Trình hướng dẫn cấu hình sẽ tự động khởi động Wiki.js cho bạn.
7. Cài đặt PM2
Theo mặc định, Wiki.js sẽ không tự động khởi động sau khi hệ thống khởi động lại. Để bắt đầu khởi động, chúng ta cần thiết lập PM2. PM2 đi kèm với Wiki.js dưới dạng mô-đun NPM cục bộ, vì vậy chúng tôi không cần cài đặt PM2 trên toàn cầu.
Yêu cầu PM2 tự định cấu hình như một dịch vụ khởi động.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup
Cuối cùng, lưu cấu hình PM2 hiện tại.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save
Leave a Reply