Как установить Wiki.js на Ubuntu 18.04 LTS
На этой странице
- Требования
- Предпосылки
- Начальные шаги
- Шаг 1. Установите Node.js и npm
- Шаг 2. Установите базу данных MongoDB.
- Шаг 3. Установите клиент
acme.sh
и получите Let\>) - Шаг 4. Установите и настройте NGINX
- Шаг 5. Установите и настройте Wiki.js
- Шаг 6. Настройка диспетчера процессов PM2
- Ссылки
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