Установка Wiki.js на Oracle Linux

Справочник системного администратора

Недавно передо мной поставили задачу поднять сервер на Oracle Linux с Wiki.js. Ранее с подобным я не сталкивался и поэтому пришлось изучить данный вопрос с нуля. Как выяснилось – ничего сложного. В данной статье разберем пример данной установки.


Для начала установим чистый Oracle Linux, установим репозиторий epel и произведем обновление, для этого поочередно выполняем следующие команды:

sudo dnf install epel-release
sudo dnf update

Следующим этапом устанавливаем платформу Node.js:

curl -sL https://rpm.nodesource.com/setup_12.x | bash -
sudo dnf install nodejs

Ждем 20 секунд, после чего запускаем установку.

Далее устанавливаем Nginx:

sudo dnf install nginx

Запускаем nginx и прописываем его в автозапуск:

sudo systemctl start nginx
sudo systemctl enable nginx

Устанавливаем СУБД MariaDB:

sudo dnf install mariadb mariadb-server

Запускаем MariaDB и прописываем ее в автозапуск:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Далее необходимо произвести начальную настройку MariaDB, как это сделать я уже описывал в этой статье.

Если вкратце то, выполняем команду:

mysql_secure_installation

Отвечаем на вопросы следующими ответами:

Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Заходим в MariaDB:

mysql -u root -p

Создаем базу данных для нашей вики:

CREATE DATABASE wikidb;
GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
EXIT;

Теперь качаем саму Wiki.js:

curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep browser_download_url | grep -v windows | cut -d '"' -f 4 | wget -qi -

Создадим директорию в /var/www и распакуем туда архив с Wiki.js:

mkdir -p /var/www/html/wiki
tar zxf wiki-js.tar.gz -C /var/www/html/wiki

Теперь перейдем в каталог с Wiki.js и скопируем файл конфигурации в отдельный файл:

cd /var/www/html/wiki
cp config.sample.yml config.yml

Открываем файл конфигурации в редакторе:

nano config.yml

После чего находим следующий участок кода и приводим его к такому виду:

db:
type: mariadb
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: 127.0.0.1
port: 3306
user: wiki
pass: your-password
db: wikidb
ssl: false

Сохраняем конфигурацию.

Создадим пользователя и группу для него, под котором будет работать наша вики:

groupadd --system wiki
useradd -s /sbin/nologin --system -g wiki wiki

Разрешаем пользователю права на запись в директорию:

chown -R wiki:wiki /var/www/html/wiki

Открываем в файрволе порты 80 и 3000:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload

Пробуем запустить:

node server

Если у вас отобразилось тоже самое, что и на скриншоте, значит Wiki.js успешно запущен. Пробуем открыть в браузере следующую ссылку: http://ip_вашего_сервера:3000 вы должны увидеть следующую страницу:

Если все работает, осталось дело за малым – настроить фоновую работу Wiki.js, для этого создадим скрипт для фонового запуска через cron:

touch /var/www/html/wikijs.sh

Откроем его для редактирования:

nano /var/www/html/wikijs.sh

И вставим туда следующее содержимое:

#!/bin/bash
cd /var/www/html/wiki
nohup node server &

Предоставим права на запуск скрипта:

chmod +x /var/www/html/wikijs.sh

Теперь пропишем скрипт в cron, выполняем:

crontab -e

Вставляем следующую строку:

@reboot /var/www/html/wikijs.sh

Сохраняем и перезагружаем сервер. После перезагрузки проверяем доступна ли по прежнему наша страница с вики.