Wiki.js adalah sumber bebas dan terbuka, aplikasi wiki moden yang dibina pada Node.js , Git dan Markdown . Kod sumber Wiki.js dihoskan secara terbuka di Github . Panduan ini akan menunjukkan kepada anda cara memasang Wiki.js pada contoh Ubuntu 18.04 LTS Vultr baru menggunakan Node.js, MongoDB, PM2, Nginx, Git dan Acme.sh.
Keperluan
Syarat untuk menjalankan Wiki.js dan menyelesaikan panduan ini adalah seperti berikut:
- Versi Node.js 6.9.0 atau lebih baru
- MongoDB versi 3.2 atau lebih baru
- Nginx
- Versi Git 2.7.4 atau lebih baru
- Minimum RAM 768MB
- Nama domain dengan
A
/ AAAA
rekod disediakan
Semak versi Ubuntu.
lsb_release -ds
# Ubuntu 18.04.4 LTS
Buat non-root
akaun pengguna baru dengan sudo
akses dan beralih kepadanya.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
NOTA : Gantikan johndoe
dengan nama pengguna anda.
Sediakan zon waktu.
sudo dpkg-reconfigure tzdata
Pastikan sistem anda terkini.
sudo apt update && sudo apt upgrade -y
Pasang pakej yang diperlukan.
sudo apt install -y build-essential apt-transport-https
Pasang Git
Git 2.7.4 datang sebelum dipasang pada edisi pelayan Ubuntu, jadi kami tidak perlu memasangnya. Jika anda ingin memasang versi yang lebih baru, anda boleh menggunakan PPA pihak ketiga atau menyusun Git pelepasan terbaru dari sumber.
Anda boleh mengesahkan versi Git yang sedang dipasang dengan menjalankan:
git --version
# git version 2.7.4
Sekiranya anda ingin memasang versi perisian Git yang lebih baru, anda boleh menggunakan yang berikut.
# 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
Sahkan versi Git.
git --version
# git version 2.17.0
Pasang Node.js
Pasang Node.js dengan menggunakan repositori APT NodeSource untuk Node.js.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
Periksa versi Node.js dan NPM.
node -v && npm -v
# v8.11.2
# 5.6.0
Pasang MongoDB
Kami akan menggunakan repositori MongoDB rasmi , yang sentiasa dikemas kini dengan siaran MongoDB utama dan kecil terkini.
Pasang MongoDB Community Edition.
sudo apt install -y mongodb
Semak versi.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3
Pasang 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
Semak versi.
sudo nginx -v
# nginx version: nginx/1.15.0
Dayakan dan mulailah Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Konfigurasikan Nginx sebagai proksi terbalik untuk aplikasi Wiki.js.
Jalankan sudo vim /etc/nginx/conf.d/wiki.js.conf
dan isi dengan konfigurasi proksi terbalik asas di bawah.
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;
}
}
Satu-satunya perkara yang perlu anda ubah dalam konfigurasi di atas adalah server_name
arahan dan kemungkinan proxy_pass
arahan sekiranya anda memutuskan untuk mengkonfigurasi port lain selain itu 3000
. Wiki.js menggunakan port 3000
secara lalai.
Periksa konfigurasi.
sudo nginx -t
Muat semula Nginx.
sudo systemctl reload nginx.service
Pasang klien Acme.sh dan dapatkan Sijil Encik Sijil (pilihan)
Mengamankan wiki anda dengan HTTPS
tidak diperlukan, tetapi ia akan menjamin lalu lintas tapak anda. Acme.sh adalah perisian shell unix murni untuk mendapatkan sijil SSL dari Let's Encrypt dengan kebergantungan sifar.
Muat turun dan pasang 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 [email protected]
cd ~
Semak versi.
/etc/letsencrypt/acme.sh --version
Dapatkan sijil RSA dan ECDSA untuk wiki.example.com
domain / nama hos.
# 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 [email protected] --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 [email protected] --ocsp-must-staple --keylength ec-256
Setelah menjalankan perintah di atas, sijil dan kunci anda akan berada di:
- Untuk RSA:
/etc/letsencrypt/wiki.example.com
direktori.
- Untuk ECC / ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
direktori.
Selepas mendapatkan sijil dari Let's Encrypt, kita perlu mengkonfigurasi Nginx untuk menggunakannya.
Jalankan sudo vim /etc/nginx/conf.d/wiki.js.conf
lagi dan konfigurasikan Nginx sebagai HTTPS
proksi terbalik.
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;
}
}
Periksa konfigurasi.
sudo nginx -t
Muat semula Nginx.
sudo systemctl reload nginx.service
Pasang Wiki.js
Buat folder akar dokumen kosong di mana Wiki.js perlu dipasang.
sudo mkdir -p /var/www/wiki.example.com
Navigasi ke folder root dokumen.
cd /var/www/wiki.example.com
Tukar pemilikan /var/www/wiki.example.com
folder kepada pengguna johndoe
.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
Dari /var/www/wiki.example.com
folder, jalankan arahan berikut untuk memuat turun dan memasang Wiki.js.
curl -sSo- https://wiki.js.org/install.sh | bash
Untuk melihat versi Wiki.js yang sedang dipasang, anda boleh menjalankan perintah berikut.
node wiki --version
# 1.0.78
Setelah pemasangan selesai, anda akan diminta untuk menjalankan wizard konfigurasi.
Mulakan wizard konfigurasi.
node wiki configure
Ini akan memberitahu anda untuk menyemak imbas http://localhost:3000
untuk mengkonfigurasi Wiki.js. Sekiranya anda mempunyai Nginx di hadapan Wiki.js, anda boleh membuka nama domain anda (contohnya http://wiki.example.com
) daripada pergi ke localhost
.
Dengan menggunakan penyemak imbas web anda, arahkan ke http://wiki.example.com
dan ikuti arahan di skrin. Semua tetapan yang dimasukkan semasa wizard konfigurasi disimpan dalam config.yml
fail. Wizard konfigurasi akan memulakan Wiki.js secara automatik untuk anda.
Pasang PM2
Secara lalai, Wiki.js tidak akan dimulakan secara automatik selepas sistem reboot. Untuk memulakannya semasa boot, kita perlu menyiapkan PM2. PM2 dibundel dengan Wiki.js sebagai modul NPM tempatan, jadi kita tidak perlu memasang PM2 secara global.
Beritahu PM2 untuk mengkonfigurasi dirinya sebagai perkhidmatan permulaan.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup
Akhir sekali, simpan konfigurasi PM2 semasa.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save
Wiki.js berjalan sebagai proses latar belakang, menggunakan PM2 sebagai pengurus prosesnya.