Wiki.js adalah aplikasi wiki open source, modern dan kuat berdasarkan Node.js, Git, dan Markdown. Wiki.js berjalan pada mesin Node.js yang sangat cepat dan dioptimalkan untuk menghemat sumber daya CPU. Beberapa fitur Wiki.js yang layak disebutkan adalah:
- Pengeditan penurunan harga, didukung oleh Git
- Ringan, namun sangat kuat
- Dirancang dengan indah untuk web modern
- Kontrol Akses Terintegrasi
- Manajemen Aset Intuitif
- Mesin telusur bawaan
Dalam tutorial ini, kami akan memandu Anda melalui proses penginstalan Wiki.js versi 1 pada sistem operasi Debian 9 dengan menggunakan NGINX sebagai server proxy terbalik, MongoDB sebagai server database, PM2 sebagai pengelola proses, dan secara opsional Anda dapat mengamankan lapisan transport dengan menggunakan acme.sh
klien dan Let's Encrypt certificate authority untuk menambahkan dukungan SSL.
Persyaratan
Persyaratan untuk menjalankan Wiki.js adalah sebagai berikut:
- Node.js
6.11.1
ke10.x
diperlukan. - Versi MongoDB
3.2
atau lambat. - Git versi
2.7.4
atau lambat. - Perangkat lunak Server Web seperti NGINX, Apache, Caddy, H2O...
- Repositori Git kosong (opsional).
- Minimum RAM 512 MB. RAM 1 GB disarankan.
- Sekitar 300 MB ruang disk.
- Nama domain dengan data DNS A/AAAA disiapkan.
Prasyarat
- Sistem operasi Debian 9.
- Pengguna non-root dengan
sudo
hak istimewa.
Langkah Awal
Periksa versi sistem Debian Anda:
lsb_release -ds
# Debian GNU/Linux 9.8 (stretch)
Siapkan zona waktu:
dpkg-reconfigure tzdata
Perbarui paket sistem operasi Anda (perangkat lunak). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan dan perbaikan keamanan terbaru untuk paket perangkat lunak default sistem operasi Anda:
apt update && apt upgrade -y
Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Debian:
apt install -y curl wget vim git unzip socat sudo bash-completion apt-transport-https build-essential dirmngr
Langkah 1- Instal Node.js dan npm
Wiki.js dibuat di Node.js. Kami akan memasang versi terbaru yang direkomendasikan untuk Wiki.js yaitu versi 10 pada saat penulisan ini. Di Linux, Anda memiliki beberapa opsi penginstalan Node.js:Binari Linux (x86/x64), Kode Sumber atau melalui Manajer Paket. Kami akan menggunakan opsi Manajemen Paket yang membuat pemasangan dan pembaruan Node.js menjadi mudah.
Download dan instal versi terbaru yang direkomendasikan dari Node.js dari repositori NodeSource:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
CATATAN : npm didistribusikan dengan Node.js - yang berarti bahwa ketika Anda mengunduh Node.js, Anda secara otomatis menginstal npm di sistem Anda.
Periksa versi Node.js dan npm:
node -v && npm -v
# v10.15.1
# 6.4.1
Npm adalah proyek terpisah dari Node.js dan cenderung lebih sering diperbarui. Akibatnya, meskipun Anda baru saja mengunduh Node.js (dan karenanya npm), Anda mungkin perlu memperbarui npm Anda. Untungnya, npm tahu cara memperbarui dirinya sendiri! Untuk memperbarui npm Anda, ketik ini ke terminal Anda:
sudo npm install -g [email protected]
Perintah ini akan memperbarui npm ke versi stabil terbaru.
Periksa kembali versi npm dengan:
npm -v
# 6.8.0
Dan itu harus mengembalikan nomor versi terbaru.
Langkah 2 - Instal database MongoDB
Wiki.js memerlukan database untuk menyimpan datanya, dan versi stabil Wiki.js saat ini hanya mendukung mesin database MongoDB. Berdasarkan itu, kita perlu menginstal database MongoDB.
Unduh dan instal basis data MongoDB:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
Periksa versi MongoDB:
mongo --version | head -n 1 && mongod --version | head -n 1
Mulai dan aktifkan (setel untuk memulai saat reboot ) Layanan MongoDB jika belum dimulai dan diaktifkan:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Langkah 3 - Instal acme.sh
klien dan dapatkan sertifikat Let's Encrypt (opsional )
Mengamankan situs web Anda dengan HTTPS tidak diperlukan, tetapi ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat SSL dari Let's Encrypt, kami akan menggunakan acme.sh
klien. Acme.sh
adalah perangkat lunak shell UNIX murni untuk mendapatkan sertifikat SSL dari Let's Encrypt dengan nol ketergantungan.
Unduh dan instal acme.sh
:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
Periksa acme.sh
versi:
acme.sh --version
# v2.8.1
Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname Anda:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Jika Anda menginginkan sertifikat palsu untuk pengujian, Anda dapat menambahkan --staging
tandai ke perintah di atas.
Untuk membuat daftar sertifikat yang dikeluarkan, Anda dapat menjalankan:
acme.sh --list
Buat folder untuk menyimpan sertifikat Anda. Kami akan menggunakan /etc/letsencrypt
tetapi bisa apa saja yang Anda inginkan untuk menyimpan sertifikat SSL.
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
Instal/salin sertifikat ke direktori /etc/letsencrypt.
# 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"
Setelah menjalankan perintah di atas, sertifikat your Anda dan kunci akan di:
- Untuk RSA : /etc/letsencrypt
/example.com
direktori. - Untuk ECC/ECDSA : /etc/letsencrypt
/example.com_ecc
direktori.
Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.
Setelah mendapatkan sertifikat, keluar dari pengguna root dan kembali ke pengguna sudo normal:
exit
Langkah 4 - Instal dan konfigurasikan NGINX
Wiki.js (atau aplikasi HTTP Node.js) dapat berjalan tanpa server web yang sebenarnya (seperti NGINX atau Apache). Namun, sangat disarankan untuk menempatkan server web standar di depan Wiki.js. Ini memastikan Anda dapat menggunakan fitur seperti SSL, beberapa situs web, caching, dll. Kami akan menggunakan NGINX dalam tutorial ini, tetapi server lain dapat melakukannya, Anda hanya perlu mengonfigurasinya dengan benar.
Unduh dan instal NGINX dari repo NGINX resmi dengan mengeluarkan perintah berikut:
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/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx
Periksa versi NGINX:
sudo nginx -v
# nginx version: nginx/1.15.8
Aktifkan dan mulai layanan NGINX:
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Jalankan sudo vim /etc/nginx/conf.d/wiki.js.conf
dan konfigurasikan NGINX sebagai proxy terbalik HTTPS.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
charset utf-8;
client_max_body_size 50M;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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;
}
}
Satu-satunya hal yang perlu Anda ubah dalam konfigurasi di atas adalah server_name
arahan, dan berpotensi proxy_pass
direktif jika Anda memutuskan untuk mengonfigurasi beberapa selain 3000
Pelabuhan. Wiki.js menggunakan port 3000
secara default.
Periksa konfigurasi NGINX:
sudo nginx -t
Terakhir, agar perubahan diterapkan, kita perlu memuat ulang NGINX:
sudo systemctl reload nginx.service
Langkah 5 - Instal dan setup Wiki.js
Buat direktori root dokumen tempat Wiki.js seharusnya berada:
sudo mkdir -p /var/www/wiki.js
Arahkan ke direktori root dokumen:
cd /var/www/wiki.js
Ubah kepemilikan /var/www/wiki.js
direktori ke pengguna_Anda:
sudo chown -R [your_user]:[your_user] /var/www/wiki.js
CATATAN: Ganti your_user pada perintah di atas dengan pengguna non-root yang seharusnya Anda buat sebagai prasyarat untuk tutorial ini .
Dari /var/www/wiki.js
direktori, jalankan perintah berikut untuk mengambil dan menginstal aplikasi Wiki.js terbaru:
curl -sSo- https://wiki.js.org/install.sh | bash
Setelah penginstalan selesai, Anda dapat menjalankan perintah berikut untuk melihat versi Wiki.js yang saat ini diinstal:
node wiki --version
# 1.0.117
Setelah penginstalan selesai, Anda akan diminta untuk meluncurkan wizard konfigurasi.
Jadi, mulai wizard konfigurasi dengan menjalankan:
node wiki configure
Menggunakan browser web Anda, navigasikan ke http://example.com
dan ikuti petunjuk di layar. Semua setelan yang dimasukkan selama wizard konfigurasi disimpan di config.yml
mengajukan. Wizard konfigurasi akan secara otomatis memulai Wiki.js untuk Anda.
Pertama, Anda akan melihat pesan selamat datang. Klik "Mulai tombol ":
Selanjutnya akan muncul halaman "System Check". Jika semua persyaratan terpenuhi, klik tombol "Lanjutkan tombol ".
Masukkan informasi umum tentang wiki Anda dan klik tombol "Lanjutkan tombol ":
Baca pemberitahuan "Pertimbangan Penting" dan klik "Lanjutkan " untuk langkah selanjutnya:
Selanjutnya, sambungkan ke database dan lanjutkan:
Anda akan melihat pesan bahwa Wiki.js telah berhasil terhubung ke database. Klik tombol "Lanjutkan tombol ":
Tetapkan jalur dan lanjutkan:
Siapkan repo Git jarak jauh jika Anda mau atau lewati langkah ini. Langkah ini opsional tetapi sangat disarankan:
Selanjutnya, klik tombol "Lanjutkan":
Buat akun admin dan klik tombol "Lanjutkan tombol ":
Dan akhirnya, mulai Wiki.js:
Tunggu sekitar 30 detik dan Anda akan diarahkan ke beranda Wiki.js:
Instalasi selesai. Anda harus wiki halaman selamat datang:
Langkah 6 - Siapkan Manajer Proses PM2
Secara default, Wiki.js tidak akan dimulai secara otomatis setelah sistem di-boot ulang. Untuk membuatnya mulai saat boot, kita perlu mengatur manajer proses PM2. PM2 dibundel dengan Wiki.js sebagai modul npm lokal, jadi kita tidak perlu menginstal PM2 secara global.
Beri tahu PM2 untuk mengonfigurasi dirinya sebagai layanan startup dengan menjalankan:
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
Terakhir, simpan konfigurasi PM2 saat ini dengan menjalankan perintah:
/var/www/wiki.js/node_modules/pm2/bin/pm2 save
Wiki.js Anda sekarang berjalan sebagai proses latar belakang, menggunakan PM2 sebagai pengelola prosesnya.
Tautan
- https://wiki.js.org/
- https://github.com/Requarks/wiki-v1
- https://github.com/Requarks/wiki