Що таке Wiki.js
Wiki.js — це сучасна платформа для створення вікі та баз знань з відкритим кодом, написана на Node.js. Вона підходить як для окремих людей, так і для команд чи великих організацій, яким потрібне зручне сховище документації з можливістю спільного редагування.
Основні можливості
- Спільна робота в реальному часі — кілька користувачів можуть редагувати сторінки одночасно.
- Гнучке редагування — підтримка Markdown, WYSIWYG-режиму та підсвітки коду.
- Багатомовність — інтерфейс і контент можна перекладати на різні мови.
- Гнучкі права доступу — детальне налаштування ролей для користувачів та груп.
- Різні способи автентифікації — локальні акаунти, LDAP, SAML, OAuth (Google, GitHub, Microsoft тощо).
- Історія версій — усі зміни фіксуються, тож можна відкотитися до попередньої редакції.
- Управління медіафайлами — завантаження та впорядкування зображень, документів і файлів.
- Вбудований пошук — повнотекстовий пошук по всій вікі.
- Кастомізація вигляду — власні кольори, брендинг і компонування сторінок.
- Розширюваність — модулі для діаграм, математичних формул, графіків та іншого.
Де це використовують
- Внутрішня документація компанії
- Публічна документація продукту або API
- База знань проєкту
- Освітні матеріали та навчальні портали
- Особисті вікі чи дослідницькі нотатки
Далі покроково розберемо, як розгорнути Wiki.js на VPS — окремо для Ubuntu та для AlmaLinux, оскільки команди пакетних менеджерів у цих дистрибутивах відрізняються.
Що потрібно підготувати заздалегідь
- VPS з Ubuntu 20.04/22.04 або AlmaLinux 8/9 з доступом до sudo
- Бажано (але не обов’язково) — власний домен
- Обліковий запис без прав root, але з правами адміністратора
- Дані для підключення до PostgreSQL (створимо їх нижче)
Спочатку оновіть систему.
Ubuntu:
sudo apt update && sudo apt upgrade -y
AlmaLinux:
sudo dnf upgrade -y
Встановлення Wiki.js на Ubuntu
Крок 1. Встановлення базових пакетів
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https
Крок 2. Встановлення Node.js (LTS)
Wiki.js офіційно рекомендує Node.js 18 LTS.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
Перевірте версії:
node -v
npm -v
Крок 3. Встановлення та налаштування PostgreSQL
sudo apt install -y postgresql postgresql-contrib
Створіть базу даних і користувача:
sudo -u postgres psql
Усередині консолі PostgreSQL виконайте:
CREATE DATABASE wikijs;
CREATE USER wikiuser WITH PASSWORD 'ВашНадійнийПароль';
ALTER ROLE wikiuser SET client_encoding TO 'UTF8';
ALTER ROLE wikiuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE wikiuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikiuser;
\q
Крок 4. Завантаження Wiki.js
mkdir -p /var/www/wikijs
cd /var/www/wikijs
curl -sSo- https://wiki.js.org/install.sh | bash
Встановлення Wiki.js на AlmaLinux
Крок 1. Встановлення базових пакетів та репозиторіїв
AlmaLinux спирається на dnf, тож деякі пакети потрібно підключати через EPEL.
sudo dnf install -y epel-release
sudo dnf install -y curl gnupg2 policycoreutils-python-utils
Крок 2. Встановлення Node.js (LTS)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo -E bash -
sudo dnf install -y nodejs
Перевірте версії:
node -v
npm -v
Крок 3. Встановлення та налаштування PostgreSQL
У AlmaLinux потрібно спершу ініціалізувати базу даних після встановлення сервера.
sudo dnf install -y postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Створіть базу та користувача так само, як в Ubuntu:
sudo -u postgres psql
CREATE DATABASE wikijs;
CREATE USER wikiuser WITH PASSWORD 'ВашНадійнийПароль';
ALTER ROLE wikiuser SET client_encoding TO 'UTF8';
ALTER ROLE wikiuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE wikiuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikiuser;
\q
За замовчуванням PostgreSQL на AlmaLinux дозволяє лише автентифікацію peer/ident для локальних з’єднань. Якщо Wiki.js не може підключитись, відредагуйте pg_hba.conf (зазвичай /var/lib/pgsql/data/pg_hba.conf), змінивши метод автентифікації для 127.0.0.1/32 на md5, і перезапустіть службу:
sudo systemctl restart postgresql
Крок 4. Завантаження Wiki.js
mkdir -p /var/www/wikijs
cd /var/www/wikijs
curl -sSo- https://wiki.js.org/install.sh | bash
sudo setenforce 0. Для постійного рішення краще налаштувати відповідні політики, а не вимикати SELinux повністю.Налаштування Wiki.js
Незалежно від дистрибутива, файл конфігурації один і той самий:
nano /var/www/wikijs/config.yml
Знайдіть і змініть секцію бази даних:
db:
type: postgres
host: localhost
port: 5432
user: wikiuser
pass: ВашНадійнийПароль
db: wikijs
Збережіть файл (CTRL+O, потім CTRL+X).
Створення служби systemd
Це потрібно, щоб Wiki.js автоматично запускався разом із сервером — на Ubuntu та AlmaLinux цей крок ідентичний.
sudo nano /etc/systemd/system/wikijs.service
Вставте:
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/wikijs
ExecStart=/usr/bin/node server
Restart=always
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
www-data за замовчуванням немає — замініть його на nginx або створіть окремого системного користувача командою sudo useradd -r -s /sbin/nologin wikijs і вкажіть його у файлі служби.sudo systemctl daemon-reload
sudo systemctl enable wikijs
sudo systemctl start wikijs
Перевірте стан:
sudo systemctl status wikijs
Реверс-проксі на Nginx
Це не обов’язковий, але дуже рекомендований крок для роботи через домен і порт 80/443.
Ubuntu:
sudo apt install -y nginx
AlmaLinux:
sudo dnf install -y nginx
sudo systemctl enable --now nginx
Створіть конфігурацію сервера:
sudo nano /etc/nginx/conf.d/wikijs.conf
Приклад конфігурації:
server {
listen 80;
server_name wiki.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
На Ubuntu файл конфігурації прийнято класти в /etc/nginx/sites-available/ і створювати символьне посилання в /etc/nginx/sites-enabled/:
sudo ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabled/
На AlmaLinux файли з /etc/nginx/conf.d/*.conf підключаються автоматично, окремого посилання не потрібно.
Перевірте конфігурацію та перезапустіть Nginx:
sudo nginx -t
sudo systemctl restart nginx
Якщо на AlmaLinux увімкнено firewalld, відкрийте потрібні порти:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
SSL-сертифікат від Let’s Encrypt
Ubuntu:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d wiki.example.com
AlmaLinux:
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d wiki.example.com
Перший запуск Wiki.js
Відкрийте у браузері адресу вашого домену:
https://wiki.example.com
Якщо домен ще не налаштований — використайте IP-адресу VPS. Далі пройдіть майстер початкового налаштування: створіть обліковий запис адміністратора та вкажіть базові параметри вікі.
Підсумок
Тепер ви знаєте, як розгорнути Wiki.js на VPS з Ubuntu або AlmaLinux — незалежно від того, який дистрибутив ви обрали. Такий підхід забезпечує безпечний запуск, автоматичний старт служби після перезавантаження сервера та готовність системи до реального робочого навантаження.
