Как да инсталирате Wiki.js на Fedora 28

Wiki.js е безплатно и модерно уики приложение с отворен код, изградено на Node.js, MongoDB, Git и Markdown. Изходният код на Wiki.js се хоства публично на Github . Това ръководство ще ви покаже как да инсталирате Wiki.js на нов екземпляр на Fedora 28 Vultr, като използвате Node.js, MongoDB, PM2, Nginx, Git и Acme.sh.

Изисквания

Изискванията за стартиране на Wiki.js са следните:

  • Node.js версия 6.9.0 или по-нова
  • MongoDB версия 3.2 или по-нова
  • Уеб сървър като Nginx, Apache, IIS, Caddy или H2O. Това ръководство ще използва Nginx
  • Git версия 2.7.4 или по-нова
  • Git-съвместимо хранилище (публично или частно) Това е по избор
  • Минимум 768MB RAM
  • Име на домейн с A/ AAAAнастроени записи

Преди да започнеш

Проверете версията на ОС.

cat /etc/fedora-release
# Fedora release 28 (Twenty Eight)

Създайте нов потребителски акаунт без root права с sudo достъп и превключете към него.

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

ЗАБЕЛЕЖКА: Заменете johndoeс вашето потребителско име.

Уверете се, че вашата система е актуална.

sudo dnf check-upgrade || sudo dnf upgrade -y

Настройте часовата зона.

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Инсталирайте необходими и полезни пакети.

sudo dnf install -y wget vim unzip bash-completion git

За простота деактивирайте SELinux и защитната стена.

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

Инсталирайте Node.js

Wiki.js изисква Node.js 6.9.0 или по-нова версия, така че първо ще трябва да инсталираме Node.js.

Инсталирайте Node.js.

sudo dnf install -y nodejs

Проверете версиите на Node.js и npm.

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

Инсталирайте MongoDB

Wiki.js използва MongoDB като машина за база данни. Според това ще трябва да инсталираме MongoDB на нашия сървър.

Инсталирайте MongoDB.

sudo dnf install -y mongodb mongodb-server

Проверете версията на MongoDB.

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

Активирайте и стартирайте MongoDB.

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

Инсталирайте и конфигурирайте Nginx

Wiki.js може да работи без действителен уеб сървър (като Nginx или Apache). Въпреки това е силно препоръчително да поставите стандартен уеб сървър пред Wiki.js. Това гарантира, че можете да използвате функции като SSL, множество уебсайтове, кеширане и други. Ще използваме Nginx в този урок, но всеки друг сървър ще свърши работа, просто трябва да го конфигурирате правилно.

Инсталирайте Nginx.

sudo dnf install -y nginx

Проверете версията.

nginx -v
# nginx version: nginx/1.12.1

Активирайте и стартирайте Nginx.

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

Конфигурирайте Nginx като HTTPили HTTPS(ако използвате SSL) обратен прокси за приложението Wiki.js.

Стартирайте sudo vim /etc/nginx/conf.d/wiki.js.confи го попълнете с основната конфигурация за обратен прокси по-долу.

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

}

Единственото нещо, което трябва да промените в горната конфигурация, е server_nameдирективата и евентуално proxy_passдирективата, ако решите да конфигурирате някакъв порт, различен от 3000. Wiki.js използва порт 3000по подразбиране.

Проверете конфигурацията.

sudo nginx -t

Презаредете Nginx.

sudo systemctl reload nginx.service

Инсталирайте клиента Acme.sh и получете сертификат Let's Encrypt (по избор)

Подсигуряването на вашето уики 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 your_email@example.com
cd ~

Проверете acme.shверсията.

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

Получете RSA и ECDSA сертификати за 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 

След като изпълните горните команди, вашите сертификати и ключове ще бъдат в:

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

ЗАБЕЛЕЖКА : Не забравяйте да замените wiki.example.comс името на вашия домейн.

След като получим сертификати от Let's Encrypt, трябва да конфигурираме Nginx, за да се възползваме от тях.

Стартирайте sudo vim /etc/nginx/conf.d/wiki.js.confотново и конфигурирайте Nginx като HTTPSобратен прокси.

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

}

Проверете конфигурацията.

sudo nginx -t

Презаредете Nginx.

sudo systemctl reload nginx.service

Инсталирайте Wiki.js

Създайте празна основна папка на документа, където трябва да бъде инсталиран Wiki.js.

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

Придвижете се до главната папка на документа.

cd /var/www/wiki.example.com

Промяна на собствеността върху /var/www/wiki.example.comпапката на потребител johndoe.

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

От /var/www/wiki.example.comпапката изпълнете следната команда, за да изтеглите и инсталирате Wiki.js.

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

Можете да изпълните следната команда, за да видите текущо инсталираната версия на Wiki.js.

node wiki --version
# 1.0.78

След като инсталацията приключи, ще бъдете подканени да стартирате съветника за конфигурация.

Стартирайте съветника за конфигурация, като стартирате.

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 идва в комплект с Wiki.js като локален NPM модул, така че не е необходимо да инсталираме PM2 глобално.

Кажете на PM2 да се конфигурира като стартираща услуга, като изпълни:

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

Накрая запазете текущата конфигурация на PM2, като изпълните командата: /var/www/wiki.example.com/node_modules/pm2/bin/pm2 save

Вашият екземпляр на Wiki.js работи като фонов процес, използвайки PM2 като мениджър на процеси.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече