Что такое 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 — независимо от того, какой дистрибутив вы выбрали. Такой подход обеспечивает безопасный запуск, автоматический старт службы после перезагрузки сервера и готовность системы к реальной рабочей нагрузке.
