Követelmények
Mielőtt elkezded
Telepítse a Node.js-t
Telepítse a MongoDB-t
Telepítse az Acme.sh-t, és szerezzen be egy Let's Encrypt tanúsítványt (opcionális)
Telepítse és konfigurálja az Nginx-et
Telepítse a Wiki.js-t
Telepítse és állítsa be a PM2 folyamatkezelőt
A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás , amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. A Wiki.js forráskód nyilvánosan a Githubon található . Ez az útmutató bemutatja, hogyan telepítheti a Wiki.js-t egy friss FreeBSD 11 Vultr példányra Node.js, MongoDB, PM2, Nginx, Git és Acme.sh használatával.
Követelmények
A Wiki.js futtatásának követelményei a következők:
- Node.js 6.11.1 vagy újabb verzió
- MongoDB 3.2 vagy újabb verzió
- Git 2.7.4 vagy újabb verzió
- Webszerver, például Nginx, Apache, IIS, Caddy vagy H2O. Ez az útmutató az Nginxet fogja használni.
- Git-kompatibilis adattár (nyilvános vagy privát) Ez nem kötelező
- Minimum 512 MB RAM. Erősen ajánlott legalább 1 GB RAM-mal rendelkező gépet használni.
- Domain név a
A/ AAAArekordokkal beállítva. Ebben az útmutatóban wiki.example.compéldaként használjuk a tartományt.
Mielőtt elkezded
Ellenőrizze a FreeBSD verzióját.
uname -ro
# FreeBSD 11.2-RELEASE
Győződjön meg arról, hogy a FreeBSD rendszere naprakész.
freebsd-update fetch install
pkg update && pkg upgrade -y
Telepítse sudo, vim, unzip, wget, git, bashés socata csomagokat, ha nincsenek jelen a rendszerben.
pkg install -y sudo vim unzip wget git bash socat
Hozzon létre egy új felhasználói fiókot a kívánt felhasználónévvel (használjuk 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!
Futtassa a visudoparancsot, és törölje a %wheel ALL=(ALL) ALLsor megjegyzését , hogy a wheelcsoport tagjai bármilyen parancsot végrehajthassanak.
# Uncomment by removing the hash (#) sign
%wheel ALL=(ALL) ALL
Most váltson az újonnan létrehozott felhasználóra.
su - johndoe
MEGJEGYZÉS: Cserélje johndoeki a felhasználónevét.
Állítsa be az időzónát.
sudo tzsetup
Telepítse a Node.js-t
A Wiki.js-hez a Node.js 6.11.1-es vagy újabb verziója szükséges, ezért először telepítenünk kell a Node.js megfelelő verzióját.
Telepítse a Node.js-t és az NPM-et.
sudo pkg install -y node8 npm-node8
Ellenőrizze a verziókat.
node -v && npm -v
# v8.12.0
# 6.4.1
Telepítse a MongoDB-t
A Wiki.js a MongoDB-t használja adatbázismotorként.
Telepítse a MongoDB-t.
sudo pkg install -y mongodb36
Ellenőrizze a verziót.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.6
# db version v3.6.6
Engedélyezze és indítsa el a MongoDB-t.
sudo sysrc mongod_enable=yes
sudo service mongod start
Telepítse az Acme.sh-t, és szerezzen be egy Let's Encrypt tanúsítványt ( opcionális )
A wiki HTTPS-sel történő biztonságossá tétele nem szükséges, de jó gyakorlat a webhely forgalmának biztosítása. A Let's Encrypt SSL-tanúsítvány beszerzéséhez az Acme.sh klienst használjuk. Az Acme.sh egy tisztán unix shell szoftver SSL-tanúsítványok beszerzéséhez a Let's Encrypt-től nulla függőséggel. Ez nagyon könnyűvé teszi néhány más Acme protokoll klienshez képest, amelyek sok függőséget igényelnek a sikeres futtatáshoz.
Töltse le és telepítse az Acme.sh-t.
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 ~
Ellenőrizze a acme.shverziót.
/etc/letsencrypt/acme.sh --version
# v2.8.0
Szerezzen be RSA és ECDSA tanúsítványt a következőhöz: 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
A fenti parancsok futtatása után a tanúsítványok és kulcsok a következő könyvtárakban lesznek:
- RSA:
/etc/letsencrypt/wiki.example.com
- ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
MEGJEGYZÉS: Ne felejtse el lecserélni wiki.example.coma domain nevét.
Miután megszereztük a Let's Encrypt tanúsítványait, konfigurálnunk kell az Nginxet, hogy kihasználjuk őket.
A Wiki.js tényleges webszerver nélkül is futhat, de erősen ajánlott szabványos webszervert helyezni elé. Ez biztosítja, hogy olyan funkciókat használhasson, mint az SSL, több webhely, gyorsítótár és mások. Ebben az oktatóanyagban az Nginxet fogjuk használni, de bármely más szerver megteszi, csak megfelelően kell konfigurálnia.
Telepítse az Nginx-et.
sudo pkg install -y nginx
Ellenőrizze a verziót.
nginx -v
# nginx version: nginx/1.14.0
Engedélyezze és indítsa el az Nginxet.
sudo sysrc nginx_enable=yes
sudo service nginx start
Konfigurálja az Nginx-et HTTPS (SSL használata esetén) fordított proxyként a Wiki.js alkalmazáshoz.
Futtassa sudo vim /usr/local/etc/nginx/wiki.js.confés töltse fel az alábbi alapvető fordított proxykonfigurációval.
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;
}
}
Az egyetlen dolog, amit a fenti konfigurációban módosítani kell, az az server_namedirektíva, és potenciálisan a proxy_passdirektíva, ha úgy dönt, hogy a porton kívül más portot állít be 3000. A Wiki.js 3000alapértelmezés szerint a portot használja . Mentse el a fájlt, és lépjen ki a :+ W+ gombbalQ
Most bele kell foglalnunk a wiki.js.conffájlt a nginx.conffőfájlba.
Futtassa, sudo vim /usr/local/etc/nginx/nginx.confés adja hozzá a következő sort a http {}blokkhoz.
include wiki.js.conf;
Ellenőrizze a konfigurációt.
sudo nginx -t
Töltse újra az Nginxet.
sudo service nginx reload
Telepítse a Wiki.js-t
Hozzon létre egy üres dokumentum gyökérmappát, ahová a Wiki.js telepítve lesz.
sudo mkdir -p /usr/local/www/wiki.example.com
Navigáljon a dokumentum gyökérmappájához.
cd /usr/local/www/wiki.example.com
A /usr/local/www/wiki.example.commappa tulajdonjogának módosítása felhasználóra johndoe.
sudo chown -R johndoe:johndoe /usr/local/www/wiki.example.com
A /usr/local/www/wiki.example.commappából futtassa a következő parancsokat a Wiki.js letöltéséhez és telepítéséhez.
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
A következő parancs futtatásával megtekintheti a Wiki.js aktuálisan telepített verzióját.
node wiki --version
# 1.0.102
A telepítés befejezése után a rendszer felkéri a konfigurációs varázsló futtatására.
Indítsa el a konfigurációs varázslót a futtatással.
node wiki configure
Ez értesíti, hogy navigáljon ide a http://localhost:3000Wiki.js konfigurálásához. Ha Nginx van a Wiki.js előtt, akkor ez azt jelenti, hogy megnyithatja a domain nevét (pl. http://wiki.example.com) ahelyett, hogy a localhosthoz menne.
A webböngészővel keresse meg http://wiki.example.coma képernyőn megjelenő utasításokat , és kövesse azt. A konfigurációs varázsló során megadott összes beállítás a config.ymlfájlba kerül. A konfigurációs varázsló automatikusan elindítja a Wiki.js fájlt.
Telepítse és állítsa be a PM2 folyamatkezelőt
Alapértelmezés szerint a Wiki.js nem indul el automatikusan a rendszer újraindítása után. Ahhoz, hogy rendszerindításkor elinduljon, telepítenünk és be kell állítani a PM2 folyamatkezelőt.
Telepítse a PM2-t globálisan a következőn keresztül npm.
sudo npm install -g pm2
Ellenőrizze a verziót.
pm2 -v
# 3.2.2
Keresse meg a dokumentum gyökérmappáját, ha még nem járt ott, és állítsa le a Wiki.js-t.
cd /usr/local/www/wiki.example.com
node wiki stop
Indítsa el a Wiki.js-t a PM2-n keresztül.
pm2 start server/index.js --name "Wiki.js"
A PM2 által kezelt listafolyamat.
pm2 list
Mondja meg a PM2-nek, hogy konfigurálja magát indítási szolgáltatásként a következő futtatásával:
pm2 startup
Végül mentse az aktuális PM2 konfigurációt a parancs futtatásával:
pm2 save
A Wiki.js példány most háttérfolyamatként fut, folyamatkezelőként a PM2-t használva.