Поиск по сайту:

Как установить Wiki.js на Ubuntu 18.04 LTS


На этой странице

  1. Требования
  2. Предпосылки
  3. Начальные шаги
  4. Шаг 1. Установите Node.js и npm
  5. Шаг 2. Установите базу данных MongoDB.
  6. Шаг 3. Установите клиент acme.sh и получите Let\>)
  7. Шаг 4. Установите и настройте NGINX
  8. Шаг 5. Установите и настройте Wiki.js
  9. Шаг 6. Настройка диспетчера процессов PM2
  10. Ссылки

Wiki.js — это современное и мощное вики-приложение с открытым исходным кодом, основанное на Node.js, Git и Markdown. Wiki.js работает на невероятно быстром движке Node.js и оптимизирован для экономии ресурсов ЦП. Стоит упомянуть некоторые функции Wiki.js:

  • Редактирование Markdown с поддержкой Git
  • Легкий, но чрезвычайно мощный
  • Красивый дизайн для современного Интернета
  • Интегрированный контроль доступа
  • Интуитивное управление активами
  • Встроенная поисковая система

В этом руководстве мы познакомим вас с процессом установки Wiki.js версии 1 в операционной системе Ubuntu 18.04 LTS, используя NGINX в качестве обратного прокси-сервера, MongoDB в качестве сервера базы данных, PM2 в качестве диспетчера процессов и, при необходимости, вы можете защитить транспорт с помощью клиента acme.sh и центра сертификации Lets Encrypt для добавления поддержки SSL.

Требования

Требования для запуска Wiki.js следующие:

  • Требуется Node.js от 6.11.1 до 10.x.
  • Версия MongoDB 3.2 или более поздняя.
  • Git версии 2.7.4 или новее.
  • Программное обеспечение веб-сервера, такое как NGINX, Apache, Caddy, H2O...
  • Пустой репозиторий Git (необязательно).
  • Минимум 512 МБ ОЗУ. рекомендуется 1 ГБ ОЗУ.
  • Около 300 МБ дискового пространства.
  • Доменное имя с настроенными DNS-записями A/AAAA.

Предпосылки

  • Операционная система Ubuntu 18.04 LTS.
  • Пользователь без полномочий root с правами sudo.

Начальные шаги

Проверьте свою версию Ubuntu:

lsb_release -ds
# Ubuntu 18.04.1 LTS

Настройте часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты операционной системы (программное обеспечение). Это важный первый шаг, поскольку он гарантирует наличие последних обновлений и исправлений безопасности для пакетов программного обеспечения вашей операционной системы по умолчанию:

sudo apt update && sudo apt upgrade -y

Установите несколько основных пакетов, необходимых для базового администрирования операционной системы Ubuntu:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https build-essential

Шаг 1. Установите Node.js и npm

Wiki.js построен на Node.js. Мы собираемся установить последнюю рекомендуемую версию Wiki.js, которая на момент написания этой статьи была версией 10. В Linux у вас есть несколько вариантов установки Node.js: двоичные файлы Linux (x86/x64), исходный код или через диспетчеры пакетов. Мы будем использовать опцию управления пакетами, которая упрощает установку и обновление Node.js.

Загрузите и установите последнюю рекомендуемую версию Node.js из репозитория NodeSource:

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

ПРИМЕЧАНИЕ. npm распространяется вместе с Node.js. Это означает, что при загрузке Node.js вы автоматически устанавливаете npm в своей системе.

Проверьте версию Node.js и npm:

node -v && npm -v
# v10.15.1
# 6.4.1

Npm — это отдельный от Node.js проект, который чаще обновляется. В результате, даже если вы только что загрузили Node.js (и, следовательно, npm), вам, вероятно, потребуется обновить файл npm. К счастью, npm умеет обновлять себя! Чтобы обновить npm, введите это в свой терминал:

sudo npm install -g 

Эта команда обновит npm до последней стабильной версии.

Перепроверьте версию npm с помощью:

npm -v
# 6.8.0

И он должен вернуть номер последней версии.

Шаг 2 — Установите базу данных MongoDB

Wiki.js нужна база данных для хранения данных, а текущая стабильная версия Wiki.js поддерживает только механизм базы данных MongoDB. В соответствии с этим нам нужно будет установить базу данных MongoDB.

Загрузите и установите базу данных MongoDB:

sudo apt install -y mongodb

Проверьте версию 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 start mongodb.service
sudo systemctl enable mongodb.service

Шаг 3. Установите клиент acme.sh и получите сертификат Lets Encrypt (необязательно)

Защита вашего веб-сайта с помощью HTTPS не является обязательной, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат SSL от Lets Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это чистое программное обеспечение оболочки UNIX для получения SSL-сертификатов от Lets Encrypt без каких-либо зависимостей.

Загрузите и установите acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail 
source ~/.bashrc
cd ~

Проверьте версию acme.sh:

acme.sh --version
# v2.8.1

Получите сертификаты RSA и ECC/ECDSA для своего домена/имени хоста:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Если вам нужны поддельные сертификаты для тестирования, вы можете добавить флаг --staging к приведенным выше командам.

Чтобы просмотреть список выданных сертификатов, вы можете запустить:

acme.sh --list

Создайте папки для хранения сертификатов. Мы будем использовать /etc/letsencrypt , но это может быть все, что вы предпочитаете для хранения SSL-сертификатов.

mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc

Установите/скопируйте сертификаты в каталог /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"

После выполнения приведенных выше команд ваши сертификаты и ключи будут находиться в:

  • Для RSA: /etc/letsencrypt/example.com каталог.
  • Для ECC/ECDSA: /etc/letsencrypt/example.com_ecc  каталог.

Все сертификаты будут автоматически обновляться каждые 60 дней.

После получения сертификатов выйдите из-под пользователя root и вернитесь к обычному пользователю sudo:

exit

Шаг 4. Установите и настройте NGINX

Wiki.js (или любое приложение HTTP Node.js) может работать без какого-либо реального веб-сервера (например, NGINX или Apache). Тем не менее, настоятельно рекомендуется поставить перед Wiki.js стандартный веб-сервер. Это гарантирует, что вы сможете использовать такие функции, как SSL, несколько веб-сайтов, кэширование и т. д. В этом руководстве мы будем использовать NGINX, но подойдет и любой другой сервер, вам просто нужно правильно его настроить.

Загрузите и установите NGINX из официального репозитория 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/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Проверьте версию NGINX:

sudo nginx -v
# nginx version: nginx/1.15.8

Включите и запустите службу NGINX:

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

Запустите sudo vim /etc/nginx/conf.d/wiki.js.conf.

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

Единственное, что вам нужно изменить в приведенной выше конфигурации, — это директиву server_name, имя домена в путях к файлам ssl и, возможно, директиву proxy_pass, если вы решите настроить что-то другое, кроме Порт 3000. Wiki.js использует порт 3000 по умолчанию.

Проверьте конфигурацию NGINX:

sudo nginx -t

Наконец, чтобы изменения вступили в силу, нам нужно перезагрузить NGINX:

sudo systemctl reload nginx.service

Шаг 5. Установите и настройте Wiki.js

Создайте корневой каталог документа, в котором должен находиться Wiki.js:

sudo mkdir -p /var/www/wiki.js

Перейдите в корневой каталог документа:

cd /var/www/wiki.js

Создайте пользователя для wikijs

sudo useradd -d /var/www/wiki.js wikijs

Измените владельца каталога /var/www/wiki.js на пользователя wikijs:

sudo chown -R wikijs:wikijs /var/www/wiki.js

В каталоге /var/www/wiki.js выполните следующую команду, чтобы загрузить и установить последнюю версию приложения Wiki.js:

cd /var/www/wiki.js
sudo su wikijs
curl -sSo- https://wiki.js.org/install.sh | bash

После завершения установки вы можете запустить следующую команду, чтобы просмотреть текущую установленную версию Wiki.js:

node wiki --version
# 1.0.117

После завершения установки вам будет предложено запустить мастер настройки.

Итак, запустите мастер настройки, выполнив:

node wiki configure

В веб-браузере перейдите на http://example.com и следуйте инструкциям на экране. Все настройки, введенные во время работы мастера настройки, сохраняются в файле config.yml . Мастер настройки автоматически запустит Wiki.js.

Сначала вы увидите приветственное сообщение. Нажмите на кнопку «Пуск»:

Появится следующая страница \Проверка системы\. Если все требования соблюдены, нажмите кнопку \Продолжить\.

Введите общую информацию о вашей вики и нажмите кнопку «Продолжить»:

Прочтите уведомление «Важная информация» и нажмите «Продолжить», чтобы перейти к следующему шагу:

Затем подключитесь к базе данных и продолжайте:

Вы должны увидеть сообщение о том, что Wiki.js успешно подключен к базе данных. Нажмите кнопку \Продолжить\:

Задайте пути и продолжайте:

Настройте удаленный репозиторий Git, если хотите, или пропустите этот шаг. Этот шаг необязателен, но настоятельно рекомендуется:

Далее нажмите кнопку «Продолжить»:

Создайте учетную запись администратора и нажмите кнопку «Продолжить»:

И, наконец, запустите Wiki.js:

Подождите около 30 секунд, и вы будете перенаправлены на домашнюю страницу Wiki.js:

Установка завершена. Вы должны приветствовать страницу вики:

Шаг 6. Настройка диспетчера процессов PM2

По умолчанию Wiki.js не запускается автоматически после перезагрузки системы. Чтобы он запускался при загрузке, нам нужно настроить диспетчер процессов PM2. PM2 поставляется вместе с Wiki.js как локальный модуль npm, поэтому нам не нужно устанавливать PM2 глобально.

Скажите PM2 настроить себя в качестве службы запуска, запустив:

/var/www/wiki.js/node_modules/pm2/bin/pm2 startup

Наконец, сохраните текущую конфигурацию PM2, выполнив команду:

/var/www/wiki.js/node_modules/pm2/bin/pm2 save

Ваш Wiki.js теперь работает как фоновый процесс, используя PM2 в качестве диспетчера процессов.

Ссылки

  • https://wiki.js.org/
  • https://github.com/Requarks/wiki-v1
  • https://github.com/Requarks/wiki