Cara Pasang Wiki.js pada FreeBSD 11

Wiki.js adalah aplikasi wiki moden dan sumber terbuka dan bebas yang dibina di atas Node.js, MongoDB, Git dan Markdown. Kod sumber Wiki.js dihoskan secara terbuka di Github . Panduan ini akan menunjukkan kepada anda cara memasang Wiki.js pada instance FreeBSD 11 Vultr baru dengan menggunakan Node.js, MongoDB, PM2, Nginx, Git dan Acme.sh.

Keperluan

Syarat untuk menjalankan Wiki.js adalah seperti berikut:

  • Node.js versi 6.11.1 atau lebih baru
  • MongoDB versi 3.2 atau lebih baru
  • Versi Git 2.7.4 atau lebih baru
  • Pelayan web seperti Nginx, Apache, IIS, Caddy, atau H2O. Panduan ini akan menggunakan Nginx.
  • Repositori yang patuh kepada Git (awam atau swasta) Ini adalah pilihan
  • RAM minimum 512MB. Ia sangat disyorkan untuk menggunakan mesin dengan sekurang-kurangnya 1GB RAM.
  • Nama domain dengan A/ AAAArekod disediakan. Dalam panduan ini, kami akan menggunakan wiki.example.comsebagai domain contoh.

Sebelum awak bermula

Semak versi FreeBSD.

uname -ro
# FreeBSD 11.2-RELEASE

Pastikan sistem FreeBSD anda terkini.

freebsd-update fetch install
pkg update && pkg upgrade -y

Memasang sudo, vim, unzip, wget, git, bashdan socatpakej jika mereka tidak hadir pada sistem anda.

pkg install -y sudo vim unzip wget git bash socat

Buat akaun pengguna baru dengan nama pengguna pilihan anda (kami akan gunakan johndoe).

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Jalankan visudoarahan dan unmentasikan %wheel ALL=(ALL) ALLbaris, untuk membolehkan ahli wheelkumpulan melaksanakan sebarang arahan.

# Uncomment by removing the hash (#) sign
%wheel ALL=(ALL) ALL

Sekarang, beralih kepada pengguna yang baru anda buat.

su - johndoe

CATATAN: Ganti johndoedengan nama pengguna anda.

Sediakan zon waktu.

sudo tzsetup

Pasang Node.js

Wiki.js memerlukan Node.js 6.11.1 atau lebih baru, jadi kita perlu terlebih dahulu memasang versi Node.j yang sesuai.

Pasang Node.js dan NPM.

sudo pkg install -y node8 npm-node8

Semak versi.

node -v && npm -v
# v8.12.0
# 6.4.1

Pasang MongoDB

Wiki.js menggunakan MongoDB sebagai enjin pangkalan data.

Pasang MongoDB.

sudo pkg install -y mongodb36

Semak versi.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.6
# db version v3.6.6

Dayakan dan mulakan MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Pasang Acme.sh dan dapatkan sijil Let's Encrypt ( pilihan )

Tidak mengamankan wiki anda dengan HTTPS, tetapi adalah amalan yang baik untuk melindungi lalu lintas laman web anda. Untuk mendapatkan sijil SSL dari Let's Encrypt kami akan menggunakan klien Acme.sh. Acme.sh adalah perisian shell unix murni untuk mendapatkan sijil SSL dari Let's Encrypt dengan kebergantungan sifar. Itu menjadikannya sangat ringan jika dibandingkan dengan beberapa klien protokol Acme lain yang memerlukan banyak pergantungan untuk berjaya.

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 your_email@example.com
cd ~

Periksa acme.shversi.

/etc/letsencrypt/acme.sh --version
# v2.8.0

Dapatkan sijil RSA dan ECDSA untuk wiki.example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength ec-256

Setelah menjalankan perintah di atas, sijil dan kunci anda akan berada di dalam direktori berikut:

  • RSA: /etc/letsencrypt/wiki.example.com
  • ECC / ECDSA: /etc/letsencrypt/wiki.example.com_ecc

CATATAN: Jangan lupa ganti wiki.example.comdengan nama domain anda.

Selepas mendapatkan sijil dari Let's Encrypt, kita perlu mengkonfigurasi Nginx untuk mengambil kesempatan daripada mereka.

Pasang dan konfigurasikan Nginx

Wiki.js boleh berjalan tanpa pelayan web sebenar, namun sangat disyorkan untuk meletakkan pelayan web standard di depannya. Ini memastikan anda dapat menggunakan ciri seperti SSL, beberapa laman web, cache dan lain-lain. Kami akan menggunakan Nginx dalam tutorial ini, tetapi mana-mana pelayan lain akan lakukan, anda hanya perlu mengkonfigurasinya dengan betul.

Pasang Nginx.

sudo pkg install -y nginx

Semak versi.

nginx -v
# nginx version: nginx/1.14.0

Dayakan dan mulailah Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

Konfigurasikan Nginx sebagai proksi terbalik HTTPS (jika anda menggunakan SSL) untuk aplikasi Wiki.js.

Jalankan sudo vim /usr/local/etc/nginx/wiki.js.confdan isi dengan konfigurasi proksi terbalik asas di bawah.

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;

  server_name wiki.example.com;

  charset utf-8;
  client_max_body_size 50M;

  # 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;
  }

}

Satu-satunya perkara yang perlu anda ubah dalam konfigurasi di atas adalah server_namearahan, dan berpotensi proxy_passarahan jika anda memutuskan untuk mengkonfigurasi beberapa port selain 3000. Wiki.js menggunakan port 3000secara lalai. Simpan fail dan keluar dengan :+ W+Q

Sekarang kita perlu memasukkan wiki.js.conffail dalam nginx.conffail utama .

Jalankan sudo vim /usr/local/etc/nginx/nginx.confdan tambah baris berikut ke http {}blok.

include wiki.js.conf;

Periksa konfigurasi.

sudo nginx -t

Muat semula Nginx.

sudo service nginx reload

Pasang Wiki.js

Buat folder root dokumen kosong di mana Wiki.js akan dipasang.

sudo mkdir -p /usr/local/www/wiki.example.com

Navigasi ke folder root dokumen.

cd /usr/local/www/wiki.example.com

Tukar pemilikan /usr/local/www/wiki.example.comfolder ke pengguna johndoe.

sudo chown -R johndoe:johndoe /usr/local/www/wiki.example.com

Dari /usr/local/www/wiki.example.comfolder, jalankan arahan berikut untuk memuat turun dan memasang Wiki.js.

curl -sSo- https://wiki.js.org/install.sh | bash

VERSION=$(curl -L -s -S https://beta.requarks.io/api/version/stable)
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/wiki-js.tar.gz | tar -f - -xz -C .
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/node_modules.tar.gz | tar -f - -xz -C .
cp -n config.sample.yml config.yml

Anda boleh menjalankan perintah berikut untuk melihat versi Wiki.js. yang sedang dipasang

node wiki --version
# 1.0.102

Setelah pemasangan selesai, anda akan diminta untuk menjalankan wizard konfigurasi.

Mulakan wizard konfigurasi dengan menjalankan.

node wiki configure

Ini akan memberitahu anda untuk menavigasi ke http://localhost:3000untuk mengkonfigurasi Wiki.js. Sekiranya anda mempunyai Nginx di hadapan Wiki.js, itu bermakna anda boleh membuka nama domain anda (contohnya http://wiki.example.com) dan bukannya pergi ke localhost.

Dengan menggunakan penyemak imbas web anda, arahkan ke http://wiki.example.comdan ikuti arahan di skrin. Semua tetapan yang dimasukkan semasa wizard konfigurasi disimpan dalam config.ymlfail. Wizard konfigurasi akan memulakan Wiki.js secara automatik untuk anda.

Pasang dan siapkan pengurus proses PM2

Secara lalai, Wiki.js tidak akan dimulakan secara automatik selepas sistem reboot. Untuk menjadikannya bermula pada boot, kita perlu memasang dan setup pengurus proses PM2.

Pasang PM2 secara global melalui npm.

sudo npm install -g pm2

Semak versi.

pm2 -v
# 3.2.2

Navigasi ke folder root dokumen anda jika anda belum berada di sana dan hentikan Wiki.js.

cd /usr/local/www/wiki.example.com
node wiki stop

Mulakan Wiki.js melalui PM2.

pm2 start server/index.js --name "Wiki.js"

Senarai proses yang diuruskan oleh PM2.

pm2 list

Beritahu PM2 untuk mengkonfigurasi dirinya sebagai perkhidmatan permulaan dengan menjalankan:

pm2 startup

Akhirnya, simpan konfigurasi PM2 semasa dengan menjalankan perintah:

pm2 save

Contoh Wiki.js anda sekarang berjalan sebagai proses latar belakang, menggunakan PM2 sebagai pengurus prosesnya.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut