Kako namestiti Wiki.js na Debian 9

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 Debian 9 Vultr z uporabo Node.js, MongoDB, PM2, Nginx, Git in Acme.sh.

Zahteve

  • Node.js 6.9.0 ali novejši
  • MongoDB 3.2 ali novejši
  • Nginx
  • Git 2.7.4 ali novejši
  • Git skladno skladišče (javno ali zasebno) ( izbirno )
  • Najmanj od 768MB RAM
  • Ime domene z A/ AAAAnastavljenimi zapisi

Preverite različico Debiana.

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

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

apt update && apt upgrade -y

Namestite potrebne pakete.

apt install -y build-essential apt-transport-https sudo curl wget dirmngr sudo

Ustvarite nov non-rootuporabniški račun z sudodostopom in preklopite nanj.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

OPOMBA : Zamenjajte johndoes svojim uporabniškim imenom.

Nastavite časovni pas.

sudo dpkg-reconfigure tzdata

Namesti Git

Namestite Git v Debian.

sudo apt install -y git

Preverite različico Git.

git --version
# git version 2.11.0

Namestite Node.js

Namestite Node.js z uporabo repozitorija NodeSource APT za Node.js.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

Preverite različici Node.js in npm.

node -v && npm -v
# v8.11.2
# 5.6.0

Namestite MongoDB

Wiki.js uporablja MongoDB kot mehanizem baze podatkov. V skladu s tem bomo morali na naš strežnik namestiti MongoDB. Za namestitev bomo uporabili uradna skladišča MongoDB .

Namestite MongoDB Community Edition.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt update
sudo apt install -y mongodb-org

Preverite različico.

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

Omogočite in zaženite MongoDB.

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

Namestite in konfigurirajte Nginx

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

Namestite 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/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

Preverite različico.

sudo nginx -v
# nginx version: nginx/1.15.0

Omogočite in zaženite Nginx.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

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

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

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

}

Edina stvar, ki jo morate spremeniti v zgornji konfiguraciji, je server_namedirektiva in morda proxy_passdirektiva, če se odločite konfigurirati druga vrata kot 3000. Wiki.js 3000privzeto uporablja vrata .

Preverite konfiguracijo.

sudo nginx -t

Ponovno naložite Nginx.

sudo systemctl reload nginx.service

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

Zaščita vašega wikija z HTTPSni 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 zahtevajo veliko odvisnosti za uspešno delovanje.

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 različico.

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

Pridobite certifikate RSA in ECDSA za wiki.example.com.

# 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 your_email@example.com --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 your_email@example.com --ocsp-must-staple --keylength ec-256 

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

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

  • Za RSA: /etc/letsencrypt/wiki.example.comimenik.
  • Za ECC/ECDSA: /etc/letsencrypt/wiki.example.com_eccimenik.

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

Zaženite sudo vim /etc/nginx/conf.d/wiki.js.confznova in konfigurirajte Nginx kot HTTPSpovratni proxy.

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/example.com.key;
    # ECDSA
    ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/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;
    }

}

Preverite konfiguracijo.

sudo nginx -t

Ponovno naložite Nginx.

sudo systemctl reload nginx.service

Namestite Wiki.js

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

sudo mkdir -p /var/www/wiki.example.com

Pomaknite se do korenske mape dokumenta.

cd /var/www/wiki.example.com

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

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

V /var/www/wiki.example.commapi zaženite naslednji ukaz, da prenesete in namestite Wiki.js.

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

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

node wiki --version
# 1.0.78

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

This will notify you to navigate to http://localhost:3000 to configure Wiki.js. If you have Nginx in front of Wiki.js, then it means you can open your domain name (e.g. http://wiki.example.com) instead of going to localhost.

Using your web browser, navigate to http://wiki.example.com and follow the on-screen instructions. All the settings entered during the configuration wizard are saved in the config.yml file. The configuration wizard will automatically start Wiki.js for you.

Setup PM2

By default, Wiki.js will not start automatically after a system reboot. In order to make it start on boot, we need to setup the PM2 process manager. PM2 comes bundled with Wiki.js as a local NPM module, so we don't need to install PM2 globally.

Tell PM2 to configure itself as a startup service.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup

Finally, save the current PM2 configuration.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save

Your Wiki.js instance runs as a background process, using PM2 as its process manager. You can reboot your OS with sudo reboot and check if Wiki.js starts after a reboot.

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č