วิธีการติดตั้ง Wiki.js บน FreeBSD 11

Wiki.jsเป็นแอพ wiki แบบโอเพนซอร์สและฟรีที่สร้างขึ้นบน Node.js, MongoDB, Git และ Markdown รหัสที่มา Wiki.js เป็นเจ้าภาพสาธารณะบนGithub คู่มือนี้จะแสดงวิธีการติดตั้ง Wiki.js บนอินสแตนซ์ FreeBSD 11 Vultr ใหม่โดยใช้ Node.js, MongoDB, PM2, Nginx, Git และ Acme.sh

ความต้องการ

ข้อกำหนดในการเรียกใช้ Wiki.js มีดังนี้:

  • Node.js เวอร์ชั่น 6.11.1 หรือใหม่กว่า
  • MongoDB เวอร์ชั่น 3.2 ขึ้นไป
  • Git เวอร์ชั่น 2.7.4 หรือใหม่กว่า
  • เว็บเซิร์ฟเวอร์เช่น Nginx, Apache, IIS, Caddy หรือ H2O คำแนะนำนี้จะใช้ Nginx
  • พื้นที่เก็บข้อมูลที่สอดคล้องกับ Git (สาธารณะหรือส่วนตัว) นี่เป็นทางเลือก
  • RAM ขั้นต่ำ 512MB ขอแนะนำให้ใช้เครื่องที่มี RAM อย่างน้อย 1GB
  • ชื่อโดเมนที่มีA/ AAAAบันทึกการตั้งค่า ในคู่มือนี้เราจะใช้wiki.example.comเป็นโดเมนตัวอย่าง

ก่อนที่จะเริ่ม

ตรวจสอบเวอร์ชั่น FreeBSD

uname -ro
# FreeBSD 11.2-RELEASE

ตรวจสอบให้แน่ใจว่าระบบ FreeBSD ของคุณทันสมัย

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

ติดตั้งsudo, vim, unzip, wget, git, bashและsocatแพคเกจที่ว่าพวกเขาจะไม่ได้อยู่ในระบบของคุณ

pkg install -y sudo vim unzip wget git bash socat

สร้างบัญชีผู้ใช้ใหม่ด้วยชื่อผู้ใช้ที่คุณต้องการ (เราจะใช้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!

รันvisudoคำสั่งและยกเลิกหมายเหตุ%wheel ALL=(ALL) ALLบรรทัดเพื่ออนุญาตให้สมาชิกของwheelกลุ่มเรียกใช้งานคำสั่งใด ๆ

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

ตอนนี้เปลี่ยนเป็นผู้ใช้ที่คุณสร้างขึ้นใหม่

su - johndoe

หมายเหตุ: แทนที่johndoeด้วยชื่อผู้ใช้ของคุณ

ตั้งค่าเขตเวลา

sudo tzsetup

ติดตั้ง Node.js

Wiki.js ต้องการ Node.js 6.11.1 หรือใหม่กว่าดังนั้นเราจะต้องติดตั้ง Node.js รุ่นที่เหมาะสมก่อน

ติดตั้ง Node.js และ NPM

sudo pkg install -y node8 npm-node8

ตรวจสอบเวอร์ชั่น

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

ติดตั้ง MongoDB

Wiki.js ใช้ MongoDB เป็นเอ็นจิ้นฐานข้อมูล

ติดตั้ง MongoDB

sudo pkg install -y mongodb36

ตรวจสอบเวอร์ชั่น

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

เปิดใช้งานและเริ่ม MongoDB

sudo sysrc mongod_enable=yes
sudo service mongod start

ติดตั้ง Acme.sh และรับใบรับรอง Let's Encrypt ( ตัวเลือก )

การรักษาความปลอดภัย wiki ของคุณด้วย HTTPS นั้นไม่จำเป็น แต่เป็นวิธีปฏิบัติที่ดีในการรักษาความปลอดภัยของการรับส่งข้อมูลในเว็บไซต์ของคุณ ในการรับใบรับรอง SSL จาก Let's Encrypt เราจะใช้ไคลเอ็นต์ Acme.sh Acme.sh เป็นซอฟต์แวร์เชลล์ unix บริสุทธิ์สำหรับการรับใบรับรอง SSL จาก Let's Encrypt โดยไม่ต้องพึ่งพาศูนย์ ซึ่งทำให้มีน้ำหนักเบามากเมื่อเปรียบเทียบกับไคลเอนต์โปรโตคอล Acme อื่น ๆ ที่ต้องการการพึ่งพาจำนวนมากเพื่อให้ทำงานได้สำเร็จ

ดาวน์โหลดและติดตั้ง 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 ~

ตรวจสอบacme.shเวอร์ชั่น

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

ได้รับอาร์เอสและ ECDSA 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

หลังจากเรียกใช้คำสั่งด้านบนใบรับรองและคีย์ของคุณจะอยู่ในไดเรกทอรีต่อไปนี้:

  • อาร์เอส: /etc/letsencrypt/wiki.example.com
  • ECC / ECDSA: /etc/letsencrypt/wiki.example.com_ecc

หมายเหตุ: อย่าลืมแทนที่wiki.example.comด้วยชื่อโดเมนของคุณ

หลังจากได้รับใบรับรองจาก Let's Encrypt เราต้องกำหนดค่า Nginx เพื่อใช้ประโยชน์จากพวกเขา

ติดตั้งและกำหนดค่า Nginx

Wiki.js สามารถทำงานได้โดยไม่มีเว็บเซิร์ฟเวอร์จริง ๆ อย่างไรก็ตามเราขอแนะนำอย่างยิ่งให้วางเว็บเซิร์ฟเวอร์มาตรฐานไว้ข้างหน้าเว็บ สิ่งนี้ทำให้มั่นใจได้ว่าคุณสามารถใช้คุณสมบัติเช่น SSL, เว็บไซต์หลายแห่ง, แคชและอื่น ๆ เราจะใช้ Nginx ในบทช่วยสอนนี้ แต่เซิร์ฟเวอร์อื่น ๆ จะทำคุณเพียงแค่ต้องกำหนดค่าให้ถูกต้อง

ติดตั้ง Nginx

sudo pkg install -y nginx

ตรวจสอบเวอร์ชั่น

nginx -v
# nginx version: nginx/1.14.0

เปิดใช้งานและเริ่ม Nginx

sudo sysrc nginx_enable=yes
sudo service nginx start

กำหนดค่า Nginx เป็น HTTPS (ถ้าคุณใช้ SSL) reverse proxy สำหรับแอปพลิเคชัน Wiki.js

รันsudo vim /usr/local/etc/nginx/wiki.js.confและเติมด้วยการกำหนดค่าพร็อกซีย้อนกลับพื้นฐานด้านล่าง

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

}

สิ่งเดียวที่คุณจำเป็นต้องมีการเปลี่ยนแปลงในการตั้งค่าดังกล่าวข้างต้นเป็นserver_nameคำสั่งและที่อาจproxy_passสั่งถ้าคุณตัดสินใจที่จะกำหนดค่าพอร์ตอื่น ๆ 3000กว่าบาง Wiki.js ใช้พอร์ต3000ตามค่าเริ่มต้น บันทึกไฟล์และออกด้วย:+ W+Q

ตอนนี้เราต้องรวมwiki.js.confไฟล์ไว้ในnginx.confไฟล์หลัก

เรียกใช้sudo vim /usr/local/etc/nginx/nginx.confและเพิ่มบรรทัดต่อไปนี้ในhttp {}บล็อก

include wiki.js.conf;

ตรวจสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo service nginx reload

ติดตั้ง Wiki.js

สร้างโฟลเดอร์รากเอกสารเปล่าที่จะทำการติดตั้ง Wiki.js

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

นำทางไปยังโฟลเดอร์รูทเอกสาร

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

เปลี่ยนความเป็นเจ้าของของโฟลเดอร์ให้กับผู้ใช้/usr/local/www/wiki.example.comjohndoe

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

จาก/usr/local/www/wiki.example.comโฟลเดอร์ให้เรียกใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลดและติดตั้ง 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

คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อดู Wiki.jpg รุ่นที่ติดตั้งอยู่ในปัจจุบัน

node wiki --version
# 1.0.102

เมื่อการติดตั้งเสร็จสิ้นคุณจะได้รับแจ้งให้เรียกใช้ตัวช่วยสร้างการกำหนดค่า

เริ่มตัวช่วยสร้างการกำหนดค่าโดยการเรียกใช้

node wiki configure

นี่จะแจ้งให้คุณนำทางไปยังhttp://localhost:3000การกำหนดค่า Wiki.js หากคุณมี Nginx อยู่หน้า Wiki.js หมายความว่าคุณสามารถเปิดชื่อโดเมนของคุณ (เช่นhttp://wiki.example.com) แทนที่จะไปที่ localhost

ใช้เว็บเบราว์เซอร์นำทางhttp://wiki.example.comและทำตามคำแนะนำบนหน้าจอ การตั้งค่าทั้งหมดที่ป้อนระหว่างตัวช่วยสร้างการกำหนดค่าจะถูกบันทึกไว้ในconfig.ymlไฟล์ วิซาร์ดการตั้งค่าจะเริ่มต้น Wiki.js ให้คุณโดยอัตโนมัติ

ติดตั้งและตั้งค่าตัวจัดการกระบวนการ PM2

ตามค่าเริ่มต้น Wiki.js จะไม่เริ่มทำงานโดยอัตโนมัติหลังจากรีบูตระบบ เพื่อให้มันเริ่มการบู๊ตเราจำเป็นต้องติดตั้งและตั้งค่าตัวจัดการกระบวนการ PM2

ติดตั้ง PM2 npmทั่วโลกผ่านทาง

sudo npm install -g pm2

ตรวจสอบเวอร์ชั่น

pm2 -v
# 3.2.2

นำทางไปยังโฟลเดอร์รูทเอกสารของคุณหากคุณไม่ได้อยู่ที่นั่นและหยุด Wiki.js

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

เริ่ม Wiki.js ผ่าน PM2

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

รายการกระบวนการจัดการโดย PM2

pm2 list

บอก PM2 เพื่อกำหนดค่าตัวเองเป็นบริการเริ่มต้นด้วยการเรียกใช้:

pm2 startup

สุดท้ายให้บันทึกการกำหนดค่า PM2 ปัจจุบันโดยการรันคำสั่ง:

pm2 save

อินสแตนซ์ Wiki.js ของคุณทำงานเป็นกระบวนการพื้นหลังโดยใช้ PM2 เป็นผู้จัดการกระบวนการ



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน