Kako namestiti Wiki.js na FreeBSD 11

Wiki.js je brezplačna odprtokodna sodobna wiki aplikacija, zgrajena na Node.js, MongoDB, Git in Markdown. Izvorna koda Wiki.js je javno gostovana na Githubu . Ta priročnik vam bo pokazal, kako namestiti Wiki.js na nov primerek FreeBSD 11 Vultr z uporabo Node.js, MongoDB, PM2, Nginx, Git in Acme.sh.

Zahteve

Zahteve za zagon Wiki.js so naslednje:

  • Node.js različice 6.11.1 ali novejše
  • MongoDB različica 3.2 ali novejša
  • Git različica 2.7.4 ali novejša
  • Spletni strežnik, kot so Nginx, Apache, IIS, Caddy ali H2O. Ta priročnik bo uporabljal Nginx.
  • Skladišče, ki je skladno z Git (javno ali zasebno) To ni obvezno
  • Najmanj 512 MB RAM-a. Zelo priporočljivo je, da uporabite stroj z vsaj 1 GB RAM-a.
  • Ime domene z A/ AAAAnastavljenimi zapisi. V tem priročniku bomo uporabili wiki.example.comkot primer domene.

Preden začneš

Preverite različico FreeBSD.

uname -ro
# FreeBSD 11.2-RELEASE

Prepričajte se, da je vaš sistem FreeBSD posodobljen.

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

Namestite sudo, vim, unzip, wget, git, bashin socatpakete, če niso prisotni v vašem sistemu.

pkg install -y sudo vim unzip wget git bash socat

Ustvarite nov uporabniški račun s svojim želenim uporabniškim imenom (uporabili bomo 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!

Zaženite visudoukaz in razkomentirajte %wheel ALL=(ALL) ALLvrstico, da omogočite članom wheelskupine, da izvedejo kateri koli ukaz.

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

Zdaj preklopite na novo ustvarjenega uporabnika.

su - johndoe

OPOMBA: Zamenjajte johndoez vašim uporabniškim imenom.

Nastavite časovni pas.

sudo tzsetup

Namestite Node.js

Wiki.js zahteva Node.js 6.11.1 ali novejšo različico, zato bomo morali najprej namestiti ustrezno različico Node.js.

Namestite Node.js in NPM.

sudo pkg install -y node8 npm-node8

Preverite različice.

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

Namestite MongoDB

Wiki.js uporablja MongoDB kot mehanizem baze podatkov.

Namestite MongoDB.

sudo pkg install -y mongodb36

Preverite različico.

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

Omogočite in zaženite MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Namestite Acme.sh in pridobite certifikat Let's Encrypt ( izbirno )

Zaščita vašega wikija s HTTPS ni potrebna, vendar je dobra praksa za zaščito prometa na spletnem mestu. Za pridobitev SSL certifikata od Let's Encrypt bomo uporabili odjemalca Acme.sh. Acme.sh je čista unix programska oprema za pridobivanje SSL certifikatov iz Let's Encrypt z nič odvisnostmi. Zaradi tega je zelo lahek v primerjavi z nekaterimi drugimi odjemalci protokola Acme, ki za uspešno delovanje zahtevajo veliko odvisnosti.

Prenesite in namestite 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 ~

Preverite acme.shrazličico.

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

Pridobite certifikate RSA in ECDSA za 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

Po zagonu zgornjih ukazov bodo vaši certifikati in ključi v naslednjih imenikih:

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

OPOMBA: Ne pozabite zamenjati wiki.example.comz imenom vaše domene.

Po pridobitvi potrdil iz Let's Encrypt moramo konfigurirati Nginx, da jih izkoristi.

Namestite in konfigurirajte Nginx

Wiki.js lahko deluje brez dejanskega spletnega strežnika, vendar je zelo priporočljivo, da pred njim postavite standardni spletni strežnik. To zagotavlja, da lahko uporabljate funkcije, kot so SSL, več spletnih mest, predpomnjenje in druge. V tej vadnici bomo uporabljali Nginx, toda kateri koli drug strežnik bo deloval, le pravilno ga morate konfigurirati.

Namestite Nginx.

sudo pkg install -y nginx

Preverite različico.

nginx -v
# nginx version: nginx/1.14.0

Omogočite in zaženite Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

Konfigurirajte Nginx kot povratni proxy HTTPS (če uporabljate SSL) za aplikacijo Wiki.js.

Zaženite ga sudo vim /usr/local/etc/nginx/wiki.js.confin ga napolnite s spodnjo osnovno konfiguracijo povratnega proxyja.

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

}

Edina stvar, ki jo morate spremeniti v zgornji konfiguraciji, je server_namedirektiva in morda proxy_passdirektiva, če se odločite konfigurirati nekatera vrata, ki niso 3000. Wiki.js 3000privzeto uporablja vrata . Shranite datoteko in zapustite s :+ W+Q

Zdaj moramo wiki.js.confdatoteko vključiti v glavno nginx.confdatoteko.

Zaženite sudo vim /usr/local/etc/nginx/nginx.confin dodajte naslednjo vrstico v http {}blok.

include wiki.js.conf;

Preverite konfiguracijo.

sudo nginx -t

Ponovno naložite Nginx.

sudo service nginx reload

Namestite Wiki.js

Ustvarite prazno korensko mapo dokumenta, kamor bo nameščen Wiki.js.

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

Pomaknite se do korenske mape dokumenta.

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

Spremeni lastništvo /usr/local/www/wiki.example.commape na uporabnika johndoe.

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

V /usr/local/www/wiki.example.commapi zaženite naslednje ukaze za prenos in namestitev 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

Za ogled trenutno nameščene različice Wiki.js lahko zaženete naslednji ukaz.

node wiki --version
# 1.0.102

Ko je namestitev končana, boste pozvani, da zaženete čarovnika za konfiguracijo.

Zaženite čarovnika za konfiguracijo tako, da zaženete.

node wiki configure

To vas bo obvestilo, da se pomaknete http://localhost:3000na konfiguracijo Wiki.js. Če imate Nginx pred Wiki.js, potem to pomeni, da lahko odprete ime svoje domene (npr. http://wiki.example.com) namesto da greste na localhost.

S spletnim brskalnikom se pomaknite do http://wiki.example.comin sledite navodilom na zaslonu. Vse nastavitve, vnesene med čarovnikom za konfiguracijo, se shranijo v config.ymldatoteko. Čarovnik za konfiguracijo bo samodejno zagnal Wiki.js namesto vas.

Namestite in nastavite upravitelja procesov PM2

Wiki.js se privzeto ne zažene samodejno po ponovnem zagonu sistema. Da bi se zagnal ob zagonu, moramo namestiti in nastaviti upravitelja procesov PM2.

Namestite PM2 globalno prek npm.

sudo npm install -g pm2

Preverite različico.

pm2 -v
# 3.2.2

Pomaknite se do korenske mape dokumenta, če še niste tam, in ustavite Wiki.js.

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

Zaženite Wiki.js prek PM2.

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

Postopek seznama, ki ga upravlja PM2.

pm2 list

Povejte PM2, naj se konfigurira kot zagonska storitev tako, da zažene:

pm2 startup

Končno shranite trenutno konfiguracijo PM2 tako, da zaženete ukaz:

pm2 save

Vaš primerek Wiki.js zdaj deluje kot proces v ozadju, pri čemer uporablja PM2 kot upravitelja procesov.

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več