Wiki.js je open source, moderní a výkonná wiki aplikace založená na Node.js, Git a Markdown. Wiki.js běží na úžasně rychlém enginu Node.js a je optimalizována tak, aby šetřila prostředky CPU. Některé z funkcí Wiki.js, které stojí za zmínku, jsou:
- Úpravy Markdown, podporované Git
- Lehký, ale extrémně výkonný
- Krásně navrženo pro moderní web
- Integrovaná kontrola přístupu
- Intuitivní správa aktiv
- Vestavěný vyhledávač
V tomto tutoriálu vás provedeme instalačním procesem Wiki.js verze 1 na operačním systému Fedora 29 pomocí NGINX jako reverzního proxy serveru, MongoDB jako databázového serveru, PM2 jako správce procesů a volitelně můžete zabezpečit transportní vrstvu pomocí acme.sh
klient a certifikační autorita Let's Encrypt pro přidání podpory SSL.
Požadavky
Požadavky na spuštění Wiki.js jsou následující:
- Node.js 6.11.1 až 10.x
- MongoDB verze 3.2 nebo novější.
- Git verze 2.7.4 nebo novější.
- Software webového serveru, jako je NGINX, Apache, Caddy, H2O...
- Prázdné úložiště Git (volitelné).
- Minimálně 512 MB RAM. Doporučuje se 1 GB RAM.
- Asi 300 MB místa na disku.
- Název domény s nastavenými záznamy A/AAAA DNS.
Předpoklady
- Operační systém Fedora 29.
- Uživatel bez oprávnění root s
sudo
privilegia.
Počáteční kroky
Zkontrolujte svou verzi Fedory:
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
Nastavte časové pásmo:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aktualizujte balíčky operačního systému (software). Toto je důležitý první krok, protože zajišťuje, že máte nejnovější aktualizace a opravy zabezpečení pro výchozí softwarové balíčky vašeho operačního systému:
sudo dnf check-upgrade || sudo dnf upgrade -y
Nainstalujte některé základní balíčky, které jsou nezbytné pro základní správu operačního systému Fedora:
sudo dnf install -y curl wget vim git unzip socat bash-completion
Krok 1 – Instalace Node.js a npm
Wiki.js je postavena na Node.js. Chystáme se nainstalovat nejnovější doporučenou verzi pro Wiki.js, což je verze 10 v době psaní tohoto článku. V Linuxu máte několik možností instalace Node.js:Linuxové binární soubory (x86/x64), zdrojový kód nebo prostřednictvím Správce balíčků. Použijeme možnost Package Management, díky které je instalace a aktualizace Node.js hračkou.
Stáhněte si a nainstalujte nejnovější vydání Long-Term Support (LTS) Node.js z repozitáře Fedory:
sudo dnf -y install nodejs
Chcete-li zkompilovat a nainstalovat nativní doplňky z npm, možná budete muset nainstalovat nástroje pro sestavení:
sudo dnf install -y gcc-c++ make
# or
# sudo dnf groupinstall -y 'Development Tools'
POZNÁMKA : npm je distribuován s Node.js – což znamená, že když si stáhnete Node.js, automaticky se vám do systému nainstaluje npm.
Zkontrolujte verze Node.js a npm:
node -v && npm -v
# v10.15.0
# 6.4.1
Npm je samostatný projekt od Node.js a má tendenci se častěji aktualizovat. V důsledku toho, i když jste si právě stáhli Node.js (a tedy npm), budete pravděpodobně muset aktualizovat svůj npm. Naštěstí npm ví, jak se aktualizovat! Chcete-li aktualizovat své npm, zadejte toto do terminálu:
sudo npm install -g [email protected]
Tento příkaz aktualizuje npm na nejnovější stabilní verzi.
Znovu zkontrolujte verzi npm pomocí:
npm -v
# 6.7.0
A měl by vrátit číslo nejnovější verze.
Krok 2 – Instalace databáze MongoDB
Wiki.js potřebuje databázi k ukládání dat a aktuální stabilní verze Wiki.js podporuje pouze databázový stroj MongoDB. Podle toho budeme muset nainstalovat databázi MongoDB.
Stáhněte a nainstalujte databázi MongoDB:
sudo dnf install -y mongodb mongodb-server
Zkontrolujte verzi MongoDB:
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.1
# db version v4.0.1
Spustit a povolit (nastavit spuštění při restartu ) Služba MongoDB, pokud ještě není spuštěna a povolena:
sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service
Krok 3 – Nainstalujte acme.sh
klienta a získejte certifikát Let's Encrypt (volitelné )
Zabezpečení webu pomocí protokolu HTTPS není nutné, ale je dobrým zvykem zabezpečit provoz na webu. K získání certifikátu SSL od Let's Encrypt použijeme acme.sh
klienta. Acme.sh
je čistě UNIXový shell software pro získávání SSL certifikátů od Let's Encrypt s nulovými závislostmi.
Stáhněte a nainstalujte acme.sh
:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
Zkontrolujte acme.sh
verze:
acme.sh --version
# v2.8.1
Získejte RSA a ECC/ECDSA certifikáty pro vaši doménu/název hostitele:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Pokud chcete falešné certifikáty pro testování, můžete přidat --staging
flag na výše uvedené příkazy.
Chcete-li uvést své vydané certifikáty, můžete spustit:
acme.sh --list
Vytvářejte složky pro ukládání certifikátů. Použijeme /etc/letsencrypt
ale může to být cokoliv, co dáváte přednost ukládání certifikátů SSL.
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
Nainstalujte/zkopírujte certifikáty do adresáře /etc/letsencrypt.
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
Po spuštění výše uvedených příkazů budou vaše certifikáty a klíče bude v:
- Pro RSA : /etc/letsencrypt
/example.com
adresář. - Pro ECC/ECDSA : /etc/letsencrypt
/example.com_ecc
adresář.
Všechny certifikáty budou automaticky obnovovány každých 60 dní.
Po získání certifikátů ukončete uživatele root a vraťte se zpět k normálnímu uživateli sudo:
exit
Krok 4 – Instalace a konfigurace NGINX
Wiki.js (nebo jakákoli aplikace HTTP Node.js) může běžet bez jakéhokoli skutečného webového serveru (jako je NGINX nebo Apache). Důrazně se však doporučuje umístit před Wiki.js standardní webový server. To zajišťuje, že můžete používat funkce jako SSL, více webových stránek, ukládání do mezipaměti atd. V tomto tutoriálu použijeme NGINX, ale bude fungovat jakýkoli jiný server, stačí jej správně nakonfigurovat.
Nainstalujte balíček Nginx zadáním následujícího příkazu:
sudo dnf install -y nginx
Po instalaci můžete verzi Nginx ověřit spuštěním:
nginx -v
# 1.14.1
Spustit a povolit (nastavit spuštění při restartu ) Služba Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Spusťte sudo vim /etc/nginx/conf.d/wiki.js.conf
sudo vim /etc/nginx/conf.d/wiki.js.conf
a nakonfigurujte NGINX jako reverzní proxy HTTPS.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
charset utf-8;
client_max_body_size 50M;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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;
}
}
Jediná věc, kterou musíte ve výše uvedené konfiguraci změnit, je server_name
direktiva, název domény v cestách k souboru ssl a případně proxy_pass
Pokud se rozhodnete nakonfigurovat něco jiného než 3000
přístav. Wiki.js používá port 3000
ve výchozím nastavení.
Zkontrolujte konfiguraci NGINX:
sudo nginx -t
Aby se změny projevily, musíme znovu načíst NGINX:
sudo systemctl reload nginx.service
Krok 5 – Instalace a nastavení Wiki.js
Vytvořte kořenový adresář dokumentu, kde by měla být Wiki.js:
sudo mkdir -p /var/www/wiki.js
Přejděte do kořenového adresáře dokumentu:
cd /var/www/wiki.js
Vytvořte uživatele pro wikijs
sudo useradd -d /var/www/wiki.js wikijs
Změňte vlastnictví /var/www/wiki.js
adresář pro uživatele wikijs:
sudo chown -R wikijs:wikijs /var/www/wiki.js
Z /var/www/wiki.js
adresáře, spusťte následující příkaz k načtení a instalaci nejnovější aplikace Wiki.js:
cd /var/www/wiki.js
sudo su wikijs
curl -sSo- https://wiki.js.org/install.sh | bash
Po dokončení instalace můžete spustit následující příkaz a zobrazit aktuálně nainstalovanou verzi Wiki.js:
node wiki --version
# 1.0.117
Po dokončení instalace budete vyzváni ke spuštění průvodce konfigurací.
Spusťte tedy průvodce konfigurací spuštěním:
node wiki configure
Pomocí webového prohlížeče přejděte na http://example.com
a postupujte podle pokynů na obrazovce. Všechna nastavení zadaná během průvodce konfigurací jsou uložena v config.yml
soubor. Průvodce konfigurací za vás automaticky spustí Wiki.js.
Nejprve se zobrazí uvítací zpráva. Klikněte na „Start tlačítko ":
Zobrazí se další stránka „Kontrola systému“. Pokud jsou splněny všechny požadavky, klikněte na „Pokračovat “.
Zadejte obecné informace o své wiki a klikněte na „Pokračovat tlačítko ":
Přečtěte si upozornění „Důležitá úvaha“ a klikněte na „Pokračovat " pro další krok:
Dále se připojte k databázi a pokračujte:
Měli byste vidět zprávu, že Wiki.js byla úspěšně připojena k databázi. Klikněte na tlačítko Pokračovat tlačítko ":
Nastavte cesty a pokračujte:
Pokud chcete, nastavte vzdálené úložiště Git nebo tento krok přeskočte. Tento krok je volitelný, ale vysoce doporučený:
Dále klikněte na tlačítko "Pokračovat":
Vytvořte si účet správce a klikněte na „Pokračovat tlačítko ":
A nakonec spusťte Wiki.js:
Počkejte asi 30 sekund a měli byste být přesměrováni na domovskou stránku Wiki.js:
Instalace je dokončena. Měli byste vytvořit uvítací stránku wiki:
Krok 6 – Nastavení správce procesů PM2
Ve výchozím nastavení se Wiki.js nespustí automaticky po restartu systému. Aby se to spustilo při bootování, musíme nastavit správce procesů PM2. PM2 je dodáván s Wiki.js jako místní modul npm, takže PM2 nemusíme instalovat globálně.
Řekněte PM2, aby se nakonfiguroval jako spouštěcí služba spuštěním:
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
Nakonec uložte aktuální konfiguraci PM2 spuštěním příkazu:
/var/www/wiki.js/node_modules/pm2/bin/pm2 save
Vaše Wiki.js nyní běží jako proces na pozadí a jako správce procesů používá PM2.
Odkazy
- https://wiki.js.org/
- https://github.com/Requarks/wiki-v1
- https://github.com/Requarks/wiki