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.conf
và đ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_name
chỉ thị và có thể là proxy_pass
chỉ 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 3000
theo 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 HTTPS
là 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.com
tê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.com
thư mục. - Đối với ECC / ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
thư 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.conf
lại và định cấu hình Nginx làm HTTPS
proxy 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.com
thư mục cho người dùng johndoe
.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
Từ /var/www/wiki.example.com
thư 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.com
và 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.yml
tệ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