Мой блог
Установка Wiki.js на Debian 12: пошаговое руководство

Wiki.js представляет собой современное бесплатное программное обеспечение для ведения вики-документации с открытым исходным кодом, созданное на базе технологического стека Node.js, Git и языка разметки Markdown. Данный программный продукт официально распространяется под свободной лицензией AGPL-v3 и с самого начала проектировался с особым акцентом на высокую производительность, быстродействие и максимально экономное потребление системных ресурсов сервера. Благодаря своей гибкой архитектуре, Wiki.js является универсальным решением, которое можно развернуть практически на любой имеющейся инфраструктуре. Платформу можно установить непосредственно на физический или виртуальный сервер под управлением вашей операционной системы, запустить с использованием популярных облачных платформ вроде Heroku, а также успешно развернуть в современных контейнеризированных средах, таких как Docker и Kubernetes. Проект нативная совместим с производительными реляционными базами данных PostgreSQL и предлагает разработчикам более пятидесяти готовых интеграций для подключения дополнительных модулей авторизации, продвинутых систем логирования, внешних поисковых движков, механизмов рендеринга контента и различных удаленных хранилищ данных. Wiki.js выделяется на фоне аналогов своим мощным функционалом, построенным поверх красивых, интуитивно понятных интерфейсов как для панели администрирования, так и для рядовых информационных страниц. Это полностью кастомизируемое решение, идеально подходящее для подробного документирования вашего технологического стека, регламентов и баз знаний компании. В этом подробном руководстве мы пошагово покажем, как правильно установить Wiki.js на изолированный сервер под управлением операционной системы Debian 12. Мы проведем вас через весь процесс установки приложения, настройки надежного сервера базы данных PostgreSQL, конфигурации веб-сервера Nginx в качестве эффективного обратного прокси-сервера, а также покажем, как полностью защитить созданный экземпляр Wiki.js с помощью бесплатных SSL/TLS-сертификатов, выпущенных удостоверяющим центром Let’s Encrypt.
Предварительные требования
Прежде чем приступать к выполнению практических шагов по установке и настройке программного обеспечения, убедитесь, что ваша инфраструктура полностью соответствует следующим базовым требованиям:
- Рабочий сервер под управлением операционной системы Debian 12 со свежей установкой.
- Созданная учетная запись пользователя, который не имеет глобальных привилегий root, но наделен правами администратора через утилиту sudo для выполнения привилегированных команд.
- Зарегистрированное и настроенное доменное имя, которое уже корректно направлено на публичный IP-адрес вашего сервера (для наглядности и удобства в этой инструкции в качестве примера используется тестовый домен
wiki.howtoforge.local).
Установка зависимостей
На первом технологическом этапе вам потребуется установить базовые программные зависимости и системные компоненты, которые необходимы для корректного запуска и функционирования Wiki.js. В этот обязательный набор входят:
- Сервер базы данных PostgreSQL — будет использоваться в качестве основного хранилища всей структурированной информации вашей вики.
- Веб-сервер Nginx — берет на себя роль высокопроизводительного обратного прокси-сервера для обработки входящих веб-запросов.
- Node.js и NPM — современный интерпретатор JavaScript-кода и сопутствующий пакетный менеджер для управления зависимостями приложения.
- Certbot и плагин Nginx Certbot — специализированная утилита командной строки для автоматического выпуска и обновления SSL/TLS-сертификатов от Let’s Encrypt, а также плагин, который автоматически привяжет полученные сертификаты к конфигурации виртуального хоста Nginx для работы по защищенному протоколу HTTPS.
Чтобы начать процесс, выполните полное обновление локальных индексов репозиториев операционной системы Debian с помощью следующей команды:
sudo apt update
Теперь установите весь необходимый стек программных пакетов для Wiki.js одной общей командой через менеджер пакетов apt:
sudo apt install postgresql postgresql-common nodejs npm nginx certbot python3-certbot-nginx
В процессе инсталляции система запросит подтверждение — введите букву y и нажмите клавишу ввода, чтобы продолжить скачивание и распаковку пакетов. Как только установка всех зависимостей благополучно завершится, вам следует в обязательном порядке проверить корректность работы каждого установленного компонента с помощью специализированных диагностических команд.
Сначала проверьте текущий статус и активность службы сервера базы данных PostgreSQL, используя утилиту systemctl:

sudo systemctl is-enabled postgresqlsudo systemctl status postgresql
После успешной проверки базы данных убедитесь в работоспособности и автозапуске веб-сервера Nginx:
sudo systemctl is-enabled nginxsudo systemctl status nginx
Наконец, проверьте корректность установки среды выполнения Node.js и пакетного менеджера NPM, выполнив запросы их актуальных версий в терминале:
node --versionnpm --version
Создание базы данных и пользователя PostgreSQL
Сразу после завершения установки всех необходимых системных зависимостей следующим важным шагом станет создание выделенной базы данных и отдельной учетной записи для работы вашего экземпляра Wiki.js. Для решения этой задачи вам потребуется авторизоваться в интерактивной консоли управления PostgreSQL через встроенный клиент psql от имени системного суперпользователя базы данных:
sudo -u postgres psql
Оказавшись внутри командной строки клиентской сессии PostgreSQL, выполните следующие SQL-инструкции, чтобы создать нового пользователя базы данных с именем wikijs и задать для него надежный пароль, а также создать саму базу данных, владельцем которой будет назначен только что созданный пользователь:
CREATE USER wikijs WITH PASSWORD 'p4ssw0rd';CREATE DATABASE wikijs OWNER wikijs;

Убедитесь, что база данных и учетная запись были успешно созданы и зарегистрированы в системе управления базами данных. Для этого выполните специальные служебные команды отображения информации:
\du\l
В выдаче терминала вы должны отчетливо увидеть созданную базу данных wikijs и соответствующего пользователя. Для безопасного завершения сеанса и выхода из клиентской консоли PostgreSQL введите команду выхода:
quit

Загрузка исходного кода Wiki.js
В этом разделе вы займетесь скачиванием официального архива с исходным кодом Wiki.js непосредственно на ваш сервер, а также подготовкой специализированного рабочего каталога с корректными правами доступа и системным владельцем.
В целях безопасности рекомендуется создать отдельного выделенного системного пользователя без возможности интерактивного входа в оболочку ОС. Выполните для этого следующую команду:
sudo useradd -m -s /bin/false wikijs
Теперь создайте целевую директорию /opt/wikijs на вашем диске и сразу перейдите внутрь нее. Затем скачайте стабильный архив с исходным кодом последней версии Wiki.js с официального репозитория через утилиту командной строки wget:
mkdir -p /opt/wikijs; cd /opt/wikijswget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Сразу после завершения загрузки архива распакуйте полученные файлы в текущую директорию и измените владельца всего содержимого папки /opt/wikijs на созданного ранее системного пользователя wikijs:
tar -xf wiki-js.tar.gzsudo chown -R wikijs:wikijs /opt/wikijs
Конфигурация Wiki.js
Имея на руках распакованные файлы приложения, вы можете перейти к настройке параметров подключения Wiki.js к ранее созданному серверу базы данных PostgreSQL, а также к указанию сетевого IP-адреса привязки.
Скопируйте поставляемый по умолчанию шаблон конфигурационного файла config.sample.yml в рабочий файл с именем config.yml от лица системного пользователя wikijs, а затем откройте его для редактирования во встроенном текстовом редакторе nano:
sudo -u wikijs cp config.sample.yml config.ymlsudo -u wikijs nano config.yml
Найдите блок настроек базы данных и замените стандартные параметры вашими реальными учетными данными PostgreSQL, указав созданного пользователя, пароль и имя базы данных:
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: wikijs
pass: p4ssw0rd
db: wikijs
ssl: falseПомимо параметров базы данных, найдите строчку конфигурации сетевого параметра bindIP и измените её значение на localhost или 127.0.0.1. Это гарантирует, что Node.js приложение будет принимать локальные запросы исключительно внутри системы:
bindIP: 127.0.0.1Внимательно проверьте внесенные изменения, сохраните файл конфигурации и выйдите из редактора nano. После этого выполните тестовый запуск вашего приложения напрямую через интерпретатор Node.js, чтобы убедиться в правильности настроек:

sudo -u wikijs node server
Если все шаги выполнены верно, в окне терминала появится информационное подтверждение того, что процесс Wiki.js успешно запущен на локальном хосте и слушает стандартный порт 3000. Убедившись в работоспособности, прервите выполнение процесса комбинацией клавиш Ctrl+C.
Запуск Wiki.js в фоновом режиме в качестве службы
Теперь, когда первичная конфигурация Wiki.js успешно завершена, следующим логическим шагом будет настройка приложения на автоматический фоновый запуск и постоянное управление с помощью стандартного диспетчера системных служб systemd. Такой подход позволит вам легко администрировать работу вики.
Создайте новый файл конфигурации системной службы systemd для Wiki.js по пути /etc/systemd/system/wikijs.service, открыв его через текстовый редактор nano:
sudo nano /etc/systemd/system/wikijs.service
Добавьте в открывшийся файл следующие обязательные директивы, которые укажут системе, как именно запускать и поддерживать фоновый процесс Wiki.js:
[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wikijs
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.targetСохраните отредактированный файл службы и закройте текстовый редактор. После этого выполните команду принудительной перезагрузки менеджера systemd, чтобы операционная система обнаружила новый файл конфигурации:
sudo systemctl daemon-reload
Теперь вы можете запустить службу Wiki.js и одновременно добавить ее в автозагрузку операционной системы при старте сервера. Приложение начнет работать в фоновом режиме на локальном адресе и порту 3000:
sudo systemctl start wikijssudo systemctl enable wikijs
Проверьте текущее состояние службы Wiki.js с помощью системной команды мониторинга, чтобы убедиться в отсутствии ошибок:
sudo systemctl status wikijs
В качестве финальной проверки используйте сетевую утилиту ss, чтобы убедиться, что приложение действительно заняло и прослушивает локальный сетевой порт 3000:

ss -tulpn | grep 3000
Если служба работает исправно, в выводе команды вы увидите активный процесс Node.js на указанном порту.
Настройка Nginx в качестве обратного прокси-сервера
Поскольку Node.js приложение Wiki.js штатно функционирует на локальном интерфейсе и порту 3000, для полноценного публичного доступа к нему из внешнего интернета необходимо настроить веб-сервер Nginx в качестве обратного прокси-сервера (Reverse Proxy). Прежде чем приступать к конфигурации, удостоверьтесь, что ваше доменное имя уже делегировано и указывает на внешний IP-адрес вашего сервера.
Создайте новый файл конфигурации серверного блока Nginx для вашего домена в доступной директории сайта /etc/nginx/sites-available/wikijs:

sudo nano /etc/nginx/sites-available/wikijs
Внесите детальную конфигурацию проксирования запросов, обязательно заменив шаблонное доменное имя на ваш реальный рабочий домен:
server {
listen 80;
server_name wiki.howtoforge.local;
root /opt/wikijs;
access_log /var/log/nginx/wikijs.access.log;
error_log /var/log/nginx/wikijs.error.log;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:3000;
}
}Сохраните файл конфигурации и закройте текстовый редактор. Для активации созданного виртуального хоста создайте специальную символическую ссылку в директории включенных сайтов, а затем выполните проверку синтаксиса конфигурационных файлов Nginx:
sudo ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabledsudo nginx -t

Если синтаксическая проверка прошла успешно и в консоли выведено сообщение о том, что синтаксис в порядке, перезапустите веб-сервер Nginx для применения новых параметров:
sudo systemctl restart nginx
После перезапуска службы Nginx вы можете открыть ваш любимый веб-браузер и ввести в адресную строку доменное имя вашей будущей вики, например http://wiki.howtoforge.local/. Если все предыдущие шаги были выполнены корректно, перед вами откроется первичная страница установки Wiki.js.
Защита Wiki.js с помощью SSL/TLS-сертификатов
На следующем ответственном этапе вам необходимо обеспечить безопасность и шифрование трафика для вашего веб-ресурса, установив бесплатные SSL/TLS-сертификаты от доверенного удостоверяющего центра Let’s Encrypt. Одновременно с этим утилита Certbot автоматически настроит принудительное перенаправление всего HTTP-трафика на безопасный HTTPS через специальный плагин Nginx.
Выполните команду утилиты certbot для запроса и генерации новых SSL-сертификатов. Обязательно укажите актуальный доменный адрес вашей вики, а также действующий адрес электронной почты для получения системных уведомлений:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email admin@example.com -d wiki.howtoforge.local
После того как процедура генерации и выпуска сертификатов успешно завершится, готовые файлы SSL будут физически сохранены в специальной директории /etc/letsencrypt/live/wiki.howtoforge.local/. Что касается конфигурационного файла Nginx для вашего сервера, то благодаря плагину Certbot он будет автоматически обновлен: в него добавятся инструкции для поддержки HTTPS-соединений и принудительный редирект.
Запуск установки Wiki.js
Вернитесь в окно вашего веб-браузера и повторно откройте доменный адрес вашей вики (например, http://wiki.howtoforge.local/). На этот раз система должна автоматически перенаправить вас на защищенное безопасное HTTPS-соединение.
Теперь вам нужно создать учетную запись главного администратора для вашей новой вики-системы. Укажите действующий адрес электронной почты администратора, надежный пароль и подтвердите его. После этого нажмите кнопку INSTALL, чтобы окончательно подтвердить параметры первичной инсталляции.

Как только процесс установки успешно завершится, система автоматически перенаправит вас на страницу входа в Wiki.js. Введите зарегистрированный ранее адрес электронной почты администратора и заданный пароль, а затем нажмите кнопку LOGIN.
В случае успешной авторизации перед вами откроется приветственная стартовая страница Wiki.js. Прямо отсюда вы сможете приступить к созданию своей первой домашней страницы или перейти в системную панель управления платформой. Если вы кликнете по кнопке ADMINISTRATION, перед вами откроется административный раздел вики.
В специализированном системном разделе перейдите в меню системной информации (System Info), чтобы получить детальные технические данные о текущей инсталляции Wiki.js. В этом окне вы сможете наглядно убедиться, что на сервере успешно развернута актуальная версия Wiki.js 2.5, работающая совместно с интерпретатором Node.js 18.x и системой управления базами данных PostgreSQL 15.x.
Заключение
На этом процедура завершена! Вы успешно прошли все необходимые шаги и развернули полнофункциональную систему Wiki.js на своем сервере под управлением операционной системы Debian 12. Инсталляция полностью укомплектована надежным сервером базы данных PostgreSQL, высокопроизводительным веб-сервером Nginx в роли обратного прокси-сервера, а также полностью защищена современными SSL/TLS-сертификатами безопасности от Let’s Encrypt. Теперь вы можете смело приступать к созданию корпоративной базы знаний, структурированию технической документации и наполнению вашего нового ресурса ценной информацией.

Источник: howtoforge.com

