Wiki.js là một ứng dụng wiki mã nguồn mở, hiện đại và mạnh mẽ dựa trên Node.js, Git và Markdown. Wiki.js chạy trên công cụ Node.js cực nhanh và được tối ưu hóa để tiết kiệm tài nguyên CPU. Một số tính năng đáng chú ý của Wiki.js là:
Thiết lập múi giờ:
Cập nhật các gói hệ điều hành (phần mềm) của bạn. Đây là bước đầu tiên quan trọng vì nó đảm bảo bạn có các bản cập nhật và bản sửa lỗi bảo mật mới nhất cho các gói phần mềm mặc định của hệ điều hành:
Cài đặt một số gói thiết yếu cần thiết cho việc quản trị cơ bản hệ điều hành Fedora:
Tải xuống và cài đặt bản phát hành Hỗ trợ dài hạn (LTS) mới nhất củaNode.js từ kho lưu trữ Fedora:
Để biên dịch và cài đặt các tiện ích bổ sung gốc từ npm, bạn cũng có thể cần cài đặt các công cụ xây dựng:
LƯU Ý:npm được phân phối cùng với Node.js - điều đó có nghĩa là khi bạn tải xuống Node.js, npm sẽ tự động được cài đặt trên system.
Kiểm tra phiên bản Node.js vànpm:
Npm là một dự án riêng biệt với Node.js và có xu hướng cập nhật thường xuyên hơn. Do đó, ngay cả khi bạn vừa tải xuống Node.js (và do đó là npm), bạn có thể sẽ cần cập nhật npm của mình. May mắn thay, npm biết cách tự cập nhật! Để cập nhật npm, hãy nhập lệnh này vào terminal của bạn:
Lệnh này sẽ cập nhật npm lên phiên bản ổn định mới nhất.
Kiểm tra lại phiên bản npm bằng lệnh:
Và lệnh này sẽ trả về số phiên bản mới nhất.
Tải xuống và cài đặt cơ sở dữ liệu MongoDB:
Kiểm tra phiên bản MongoDB:
Có thể khởi động và cho phép(thiết lập để khởi động khi khởi động lại)Dịch vụ MongoDB nếu chưa được khởi động và bật:
Bước 3 - Cài đặt
Không nhất thiết phải bảo mật trang web của bạn bằng HTTPS, nhưng đây là biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ SSL từ Let's Encrypt, chúng ta sẽ sử dụng
Tải xuống và cài đặt
Kiểm tra phiên bản
Lấy chứng chỉRSAvàECC/ECDSAcho tên miền/tên máy chủ của bạn:
Nếu bạn muốn có chứng chỉ giả để thử nghiệm, bạn có thể thêm
Để liệt kê các chứng chỉ đã cấp, bạn có thể chạy:
Tạo thư mục để lưu trữ chứng chỉ của bạn. Chúng tôi sẽ sử dụng
Cài đặt/sao chép chứng chỉ vào/etc/letsencryptthư mục.
Sau khi chạy các lệnh trên, chứng chỉvà khóacủa bạn sẽ là trong:
Sau khi lấy được chứng chỉ, hãy thoát khỏi người dùng root và quay lại người dùng sudo bình thường:
Cài đặt gói Nginx bằng cách đưa ra lệnh sau:
Sau khi cài đặt, bạn có thể xác minh phiên bản Nginx bằng cách chạy:
Có thể khởi động và cho phép (thiết lập để khởi động khi khởi động lại) Dịch vụ Nginx:
Chạy
và cấu hình NGINX làm proxy ngược HTTPS.
Điều duy nhất bạn cần thay đổi trong cấu hình trên là
Kiểm tra cấu hình NGINX:
Cuối cùng, để các thay đổi có hiệu lực, chúng ta cần tải lại NGINX:
Điều hướng đến thư mục gốc của tài liệu:
Tạo người dùng cho wikijs
Thay đổi quyền sở hữu của thư mục
Từ thư mục
Sau khi cài đặt hoàn tất, bạn có thể chạy lệnh sau để xem phiên bản Wiki.js hiện đang được cài đặt:
Sau khi cài đặt hoàn tất, bạn sẽ được nhắc khởi chạy trình hướng dẫn cấu hình.
Vì vậy, hãy khởi chạy trình hướng dẫn cấu hình bằng cách chạy:
Sử dụng trình duyệt web của bạn, điều hướng đến
Đầu tiên, bạn sẽ thấy một thông báo chào mừng. Nhấp vào nút "Bắt đầu":
Trang "Kiểm tra hệ thống" tiếp theo sẽ xuất hiện. Nếu tất cả các yêu cầu được đáp ứng, hãy nhấp vào nút "Tiếp tục".
Nhập thông tin chung về wiki của bạn và nhấp vào nút "Tiếp tục":
Đọc thông báo "Cân nhắc quan trọng" và nhấp vào "Tiếp tục" để biết bước tiếp theo:
Tiếp theo, kết nối với cơ sở dữ liệu và tiếp tục:
Bạn sẽ thấy thông báo rằng Wiki.js đã đượckết nối thành côngvới cơ sở dữ liệu. Nhấp vào nút "Tiếp tục":
Đặt đường dẫn và tiếp tục:
Thiết lập kho lưu trữ Git từ xa nếu bạn muốn hoặc bỏ qua bước này. Bước này là tùy chọn nhưng rất được khuyến khích:
Tiếp theo, nhấp vào nút "Tiếp tục":
Tạo một tài khoản quản trị và nhấp vào nút "Tiếp tục":
Và cuối cùng, khởi động Wiki.js:
Chờ khoảng 30 giây và bạn sẽ được chuyển hướng đến trang chủ Wiki.js:
Quá trình cài đặt đã hoàn tất. Bạn sẽ thấy trang chào mừng của wiki:
Yêu cầu PM2 tự cấu hình thành một dịch vụ khởi động bằng cách chạy:
Cuối cùng, lưu cấu hình PM2 hiện tại bằng cách chạy lệnh:
Wiki.js của bạn hiện chạy dưới dạng một quy trình nền, sử dụng PM2 làm trình quản lý quy trình của nó.
- Chỉnh sửa Markdown, được hỗ trợ bởi Git
- Nhẹ nhưng cực kỳ mạnh mẽ
- Được thiết kế đẹp mắt cho web hiện đại
- Kiểm soát truy cập tích hợp
- Quản lý tài sản trực quan
- Công cụ tìm kiếm tích hợp
acme.sh
client và cơ quan cấp chứng chỉ Let's Encrypt để thêm hỗ trợ SSL.Yêu cầu
Yêu cầu để chạy Wiki.js là sau:- Node.js 6.11.1 đến 10.x
- MongoDB phiên bản 3.2 trở lên.
- Git phiên bản 2.7.4 trở lên.
- Phần mềm máy chủ web như NGINX, Apache, Caddy, H2O...
- Kho lưu trữ Git trống (tùy chọn).
- Tối thiểu512MB RAM. Khuyến nghị 1GB RAM.
- Khoảng300MBdung lượng đĩa.
- Tên miền có thiết lập bản ghiA/AAAADNS.
Điều kiện tiên quyết
- Hệ điều hành Fedora 29.
- Người dùng không phải root với
sudo
quyền hạn.
Các bước ban đầu
Kiểm tra phiên bản Fedora của bạn:
Mã:
cat /etc/fedora-release[B]#Fedora phát hành 29 (Hai mươi chín)
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Mã:
sudo dnf check-upgrade || sudo dnf upgrade -y
Mã:
sudo dnf install -y curl wget vim gitunzip socat bash-completion
Bước 1- Cài đặt Node.js và npm
Wiki.jsđược xây dựng trênNode.js.Chúng tôi sẽ cài đặtphiên bảnmới nhất được khuyến nghị cho Wiki.js là phiên bản 10[/b]tại thời điểm viết bài này. Trên Linux, bạn có một số tùy chọn cài đặt Node.js: Linux Binaries (x86/x64), Source Code hoặc thông qua Package Managers. Chúng tôi sẽ sử dụng tùy chọn Quản lý gói giúp việc cài đặt và cập nhật Node.js trở nên dễ dàng.Tải xuống và cài đặt bản phát hành Hỗ trợ dài hạn (LTS) mới nhất củaNode.js từ kho lưu trữ Fedora:
Mã:
sudo dnf -y install nodejs
Mã:
sudo dnf install -y gcc-c++ make
# hoặc
# sudo dnf groupinstall -y 'Công cụ phát triển'
Kiểm tra phiên bản Node.js vànpm:
Mã:
node -v && npm -v
# v10.15.0
# 6.4.1
Mã:
sudo npm install -g npm@latest
Kiểm tra lại phiên bản npm bằng lệnh:
Mã:
npm -v
# 6.7.0
Bước 2 - Cài đặt cơ sở dữ liệu MongoDB
Wiki.jscần có cơ sở dữ liệu để lưu trữ dữ liệu của nó và phiên bản ổn định hiện tại của Wiki.js chỉ hỗ trợ công cụ cơ sở dữ liệu MongoDB.Theo đó, chúng ta sẽ cần cài đặt cơ sở dữ liệu MongoDB.Tải xuống và cài đặt cơ sở dữ liệu MongoDB:
Mã:
sudo dnf install -y mongodb mongodb-server
Mã:
mongo --version | head -n 1 && mongod --version | head -n 1
# Phiên bản shell MongoDB v4.0.1
# Phiên bản db v4.0.1
Mã:
sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service
Bước 3 - Cài đặtacme.sh
client và lấy chứng chỉ Let's Encrypt (tùy chọn)
Không nhất thiết phải bảo mật trang web của bạn bằng HTTPS, nhưng đây là biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ SSL từ Let's Encrypt, chúng ta sẽ sử dụng acme.sh
client. Acme.sh
là phần mềm shell UNIX thuần túy để lấy chứng chỉ SSL từ Let's Encrypt mà không phụ thuộc vào bất kỳ thứ gì.Tải xuống và cài đặt
acme.sh
:
Mã:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail[emailprotected]
source ~/.bashrc
cd ~
acme.sh
:
Mã:
acme.sh --version
# v2.8.1
Mã:
# RSA 2048
acme.sh --issue--standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
--staging
flag vào các lệnh trên.Để liệt kê các chứng chỉ đã cấp, bạn có thể chạy:
Mã:
acme.sh --list
/etc/letsencrypt
nhưng có thể là bất kỳ thứ gì bạn thích để lưu trữ chứng chỉ SSL.
Mã:
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
Mã:
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
- Đối vớiRSA:/etc/letsencrypt
/example.com
thư mục. - Đối vớiECC/ECDSA:/etc/letsencrypt
/example.com_ecc
thư mục.
Sau khi lấy được chứng chỉ, hãy thoát khỏi người dùng root và quay lại người dùng sudo bình thường:
Mã:
exit
Bước 4 - Cài đặt và cấu hình NGINX
Wiki.js (hoặc bất kỳ ứng dụng HTTP Node.js nào) có thể chạy mà không cần bất kỳ máy chủ web thực tế nào (chẳng hạn như NGINX hoặc Apache). Tuy nhiên, chúng tôi khuyên bạn nên đặt một máy chủ web chuẩn trước Wiki.js. Điều này đảm bảo bạn có thể sử dụng các tính năng như SSL, nhiều trang web, lưu trữ đệm, v.v. Chúng tôi sẽ sử dụng NGINX trong hướng dẫn này, nhưng bất kỳ máy chủ nào khác cũng được, bạn chỉ cần cấu hình đúng cách.Cài đặt gói Nginx bằng cách đưa ra lệnh sau:
Mã:
sudo dnf install -y nginx
Mã:
nginx -v
# 1.14.1
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
sudo vim /etc/nginx/conf.d/wiki.js.conf
Mã:
sudo vim /etc/nginx/conf.d/wiki.js.conf
Mã:
server {
listen [::]:443 ssl http2;
lắng nghe 443 ssl http2; lắng nghe [::]:80; lắng nghe 80; tên_máy_chủ example.com; bộ ký tự utf-8; kích thước_phần_thể_tối_đa_của_khách_hàng 50M;
chứng_chỉ_ssl /etc/letsencrypt/example.com/fullchain.pem;
khóa chứng_chỉ_ssl /etc/letsencrypt/example.com/private.key;
chứng_chỉ_ssl /etc/letsencrypt/example.com_ecc/fullchain.pem;
khóa chứng_chỉ_ssl /etc/letsencrypt/example.com_ecc/private.key; vị trí / { proxy_set_header Máy chủ $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; }}
server_name
directive, tên miền trong đường dẫn tệp ssl và có thể làproxy_pass
directive nếu bạn quyết định cấu hình một số cổng khác ngoài3000
. Wiki.js sử dụng cổng 3000
theo mặc định.Kiểm tra cấu hình NGINX:
Mã:
sudo nginx -t
Mã:
sudo systemctl reload nginx.service
Bước 5 - Cài đặt và thiết lậpWiki.js
Tạo thư mục gốc của tài liệu nơi Wiki.js sẽ nằm:
Mã:
sudo mkdir -p /var/www/wiki.js
Mã:
cd /var/www/wiki.js
Mã:
sudo useradd-d/var/www/wiki.jswikijs
/var/www/wiki.js
thành người dùng wikijs:
Mã:
sudo chown -R wikijs:wikijs /var/www/wiki.js
/var/www/wiki.js
, chạy lệnh sau để tải và cài đặt ứng dụng Wiki.js mới nhất:
Mã:
cd /var/www/wiki.js
sudo su wikijs
Mã:
curl -sSo- https://wiki.js.org/install.sh | bash
Mã:
node wiki --version
# 1.0.117
Vì vậy, hãy khởi chạy trình hướng dẫn cấu hình bằng cách chạy:
Mã:
node wiki configure
http://example.com
và làm theo hướng dẫn trên màn hình. Tất cả các thiết lập được nhập trong trình hướng dẫn cấu hình được lưu trong tệp config.yml
. Trình hướng dẫn cấu hình sẽ tự động khởi động Wiki.js cho bạn.Đầu tiên, bạn sẽ thấy một thông báo chào mừng. Nhấp vào nút "Bắt đầu":
Trang "Kiểm tra hệ thống" tiếp theo sẽ xuất hiện. Nếu tất cả các yêu cầu được đáp ứng, hãy nhấp vào nút "Tiếp tục".
Nhập thông tin chung về wiki của bạn và nhấp vào nút "Tiếp tục":
Đọc thông báo "Cân nhắc quan trọng" và nhấp vào "Tiếp tục" để biết bước tiếp theo:
Tiếp theo, kết nối với cơ sở dữ liệu và tiếp tục:
Bạn sẽ thấy thông báo rằng Wiki.js đã đượckết nối thành côngvới cơ sở dữ liệu. Nhấp vào nút "Tiếp tục":
Đặt đường dẫn và tiếp tục:
Thiết lập kho lưu trữ Git từ xa nếu bạn muốn hoặc bỏ qua bước này. Bước này là tùy chọn nhưng rất được khuyến khích:
Tiếp theo, nhấp vào nút "Tiếp tục":
Tạo một tài khoản quản trị và nhấp vào nút "Tiếp tục":
Và cuối cùng, khởi động Wiki.js:
Chờ khoảng 30 giây và bạn sẽ được chuyển hướng đến trang chủ Wiki.js:
Quá trình cài đặt đã hoàn tất. Bạn sẽ thấy trang chào mừng của wiki:
Bước 6 - Thiết lập PM2 Process Manager
Theo mặc định, Wiki.js sẽ không tự động khởi động sau khi khởi động lại hệ thống. Để khởi động khi khởi động, chúng ta cần thiết lập PM2 process manager. PM2 đi kèm với Wiki.js dưới dạng một mô-đun localnpm, vì vậy chúng ta không cần cài đặt PM2 toàn cục.Yêu cầu PM2 tự cấu hình thành một dịch vụ khởi động bằng cách chạy:
Mã:
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
Mã:
/var/www/wiki.js/node_modules/pm2/bin/pm2 save