Подготовка системы
debuser - Пользователь под которым будет производиться установка
192.168.1.200 - IP адрес машины, где будем устанавливать Wiki.js
для начала логинимся с правами root
su
Вводим пароль root
Установка необходимых пакетов
apt install -y git curl wget unzip sudo gzip mc
Добаваляем нашего пользователя в группу sudoers для предоставления административных прав
/usr/sbin/usermod -aG sudo debuser
Перелогиниваемся пользователем debuser
su debuser
Создание пользователя wiki, от которого будет выполняться Wiki.js:
sudo groupadd --system wiki
sudo useradd -s /sbin/nologin --system -g wiki wiki
Установка node.js
curl -sL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install nodejs
node -v && npm -v
Установка сервера баз данных PostgreSQL
Установим сервер баз данных PostgreSQL
sudo apt install -y postgresql postgresql-client
Создадим пользователя и базы данных
sudo -u postgres psql -c "CREATE ROLE wikiuser WITH LOGIN PASSWORD 'wikipassword'";
sudo -u postgres psql -c "CREATE DATABASE wikidatabase WITH OWNER wikiuser";
Установка Wiki.js
Cкачаем свежую версию дистрибутива с сайта Wiki.js
sudo mkdir -p /var/www/wiki
sudo mkdir -p /opt/wiki/backup
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Распакуем архив в рабочую папку
sudo tar zxvf wiki-js.tar.gz -C /var/www/wiki
Назначим права для пользователя wiki
rm wiki-js.tar.gz
sudo chown -R wiki:wiki /var/www/wiki
sudo chown -R wiki:wiki /opt/wiki/backup
cd /var/www/wiki
Переименуем пример конфигурационного файла
sudo mv config.sample.yml config.yml
Внесём реквизиты подключения к базе данных
sudo nano config.yml
port: 3000
db:
type: postgres
host: localhost
port: 5432
user: wikiuser
pass: wikipassowrd
db: wikidatabase
ssl: false
После внесения информации о покдлючении к БД запустим сервер и дождаться приглашения ко входу через браузер по указанному в файле порту для завершения конфигурации:
sudo node server
В ответе увидим приглашение
Loading configuration from /var/www/wiki/config.yml... OK
2023-02-10T12:42:10.507Z [MASTER] info: =======================================
2023-02-10T12:42:10.508Z [MASTER] info: = Wiki.js 2.5.219 =====================
2023-02-10T12:42:10.509Z [MASTER] info: =======================================
2023-02-10T12:42:10.509Z [MASTER] info: Initializing...
2023-02-10T12:42:11.010Z [MASTER] info: Using database driver pg for postgres [ OK ]
2023-02-10T12:42:11.014Z [MASTER] info: Connecting to database...
2023-02-10T12:42:11.030Z [MASTER] info: Database Connection Successful [ OK ]
2023-02-10T12:42:11.285Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2023-02-10T12:42:11.285Z [MASTER] info: Starting setup wizard...
2023-02-10T12:42:11.412Z [MASTER] info: Starting HTTP server on port 3000...
2023-02-10T12:42:11.412Z [MASTER] info: HTTP Server on port: [ 3000 ]
2023-02-10T12:42:11.415Z [MASTER] info: HTTP Server: [ RUNNING ]
2023-02-10T12:42:11.416Z [MASTER] info: 🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻
2023-02-10T12:42:11.416Z [MASTER] info:
2023-02-10T12:42:11.416Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2023-02-10T12:42:11.416Z [MASTER] info:
2023-02-10T12:42:11.417Z [MASTER] info: 🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺
Открываем браузер и вводим:
192.168.1.200:3000

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

Жмем на создать, выбираем в каком редакторе, вносим какие нибуть данные и просто пока сохраняем , выходим из редактора и попадаем на только что созданную страничку.
В верхнем правом углу жмем шестерёнку

Попадаем в настройки Wiki.js
Добавление Русского языка
Жмём на Locale

Прокручиваем немного вниз и жмём иконку "облако" на против Russian

Прокручиваем страницу обратно вверх в разделе "Local Settings" выбираем Русский язык, чуть ниже включаем "Multilingual Namespacing" и жмем APPLY в верхнем правом углу.

Далее переходим в раздел "Поисковая система"

Выбираем "Database - PostgreSQL", жмем "ПРИМЕНИТЬ"

Теперь идем в "Хранилище"

Выбираем "Local File System", в окошке "Path" вписываем путь к хранилищу резервных копий и включаем ежедневное создание резервных копий "Create Dailly Backups", жмем "ПРИМЕНИТЬ"

Папку /opt/wiki/backup мы создали в одном из предыдущих шагов.
Собственно с первичной настройкой все, возвращаемся в консоль сервера и останавливаем сервис wiki одновременным нажатием "CTRL+c"
Автозагрузка приложения Wiki.js
Для автоматического запуска Wiki.js после перезагрузки сервера нужно создать Unit-файл для systemd:
sudo nano /etc/systemd/system/wiki.service
Добавляем следующее содержание:
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
# Укажите пользователя, от имени которого будет запущен wiki.js
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wiki
[Install]
WantedBy=multi-user.target
После сохраниения требуется перезагрузить systemd, запустить wiki и включить автоматический запуск при загрузке системы:
sudo systemctl daemon-reload
sudo systemctl enable --now wiki
Просмотр журнала в случае необходимости можно выполнить таким образом:
sudo systemctl status wiki
Установка NGINX для Wiki.js
Для кэширования основных запросов и упрощения установки сертификатов SSL можно воспользоваться прокси сервером NGINX.
Установим nginx
sudo apt install -y nginx
Создать конфигурационный файл для Wiki.js
sudo nano /etc/nginx/sites-available/wiki
Добавляем следующее содержание:
server {
listen 80;
server_name wiki.home.local; # доменное имя
location /
{
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
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;
}
}
Включим созданный для nginx конфиг:
sudo ln -s /etc/nginx/sites-available/wiki /etc/nginx/sites-enabled/wiki
Проверим конфигурацию и перезапустить nginx
sudo nginx -t
sudo nginx -s reload
Настройка системы поиска Elastics
На момент написания статьи скачать пакет в Росси из-за санкций было не возможно, так что если вы не в России то загруть DEB пакет можно здесь либо по ссылке с Яндекс диска
Далее загружаем его на сервер с Wiki.JS, подключаемся по SSH и устанавливаем
sudo dpkg -i elasticsearch-7.17.11-amd64.deb
Затем произведём небольшую настройку
sudo mcedit /etc/elasticsearch/elasticsearch.yml
и раскоментируем одну строку
http.port: 9200
и запустим сервис
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Переходим в настройки поисковой системы

и выставляем значения как на картинке ниже

Нажимаем ПРИМЕНИТЬ и обязательно ПЕРЕСТРОИТЬ ИНДЕКС
Обновление Wiki.js
Скачать новую версию Wiki.js
cd ~/
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Остановить сервис wiki
sudo systemctl stop wiki
Скопировать конфигурационный файл в безопасное место
sudo cp /var/www/wiki/config.yml /opt/wiki/config.yml.back
Удалить содержимое рабочей папки Wiki.js
sudo rm -r /var/www/wiki/*
Распаковать новую версию Wiki.js
sudo tar -xvf wiki-js.tar.gz -C /var/www/wiki
rm wiki-js.tar.gz
sudo chown -R wiki:wiki /var/www/wiki
Вернуть config.yml назад
sudo cp /opt/wiki/config.yml.back /var/www/wiki/config.yml
sudo rm /var/www/wiki/config.sample.yml
Запустить сервис wiki
sudo systemctl start wiki
Перенос базы с одного сервера на другой
Допустим вы планируете перенести Wiki на другой сервер с IP адресом 192.168.1.201, на котором все установлено и нужна только база и он доступен по SSH
Для переноса базы, на текущем сервере выполним пару команд:
sudo -u postgres pg_dump -h localhost -O -F c -C -c -U wiki wiki | gzip -c > wiki-dump.gz
scp wiki-dump.gz debuser@192.168.1.201:~/
Теперь перейдем на второй сервер
cd ~/
Распакуем архив с дампом
gunzip wiki-dump.gz
Переместим дамп во временную папку
mv wiki-dump /tmp
Остановим сервис wiki
sudo systemctl stop wiki
Войдём в систему от имени postgres
sudo su - postgres
cd /tmp
Удалим существующюю базу и создадим пустую
psql -c "DROP DATABASE wiki";
psql -c "CREATE DATABASE wiki";
И востанови базу из дампа
pg_restore -d wiki wiki-dump
exit
Востановим права для рабочей папки wiki
sudo chown -R wiki:wiki /var/www/wiki
И запустим сервис wiki
sudo systemctl start wiki
ГОТОВО, Запускаем браузер и переходим по новому адресу Wiki.js
Если все работает, можно удалить дамп
rm /tmp/wiki-dump