Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

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

Установка 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:

Проверка статуса службы Nginx в терминале
Проверка корректности работы службы Nginx

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

После успешной проверки базы данных убедитесь в работоспособности и автозапуске веб-сервера Nginx:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Наконец, проверьте корректность установки среды выполнения Node.js и пакетного менеджера NPM, выполнив запросы их актуальных версий в терминале:

node --version
npm --version

Создание базы данных и пользователя PostgreSQL

Сразу после завершения установки всех необходимых системных зависимостей следующим важным шагом станет создание выделенной базы данных и отдельной учетной записи для работы вашего экземпляра Wiki.js. Для решения этой задачи вам потребуется авторизоваться в интерактивной консоли управления PostgreSQL через встроенный клиент psql от имени системного суперпользователя базы данных:

sudo -u postgres psql

Оказавшись внутри командной строки клиентской сессии PostgreSQL, выполните следующие SQL-инструкции, чтобы создать нового пользователя базы данных с именем wikijs и задать для него надежный пароль, а также создать саму базу данных, владельцем которой будет назначен только что созданный пользователь:

CREATE USER wikijs WITH PASSWORD 'p4ssw0rd';
CREATE DATABASE wikijs OWNER wikijs;

Создание базы данных и пользователя PostgreSQL
Запросы для создания базы данных и пользователя wikijs

Убедитесь, что база данных и учетная запись были успешно созданы и зарегистрированы в системе управления базами данных. Для этого выполните специальные служебные команды отображения информации:

\du
\l

В выдаче терминала вы должны отчетливо увидеть созданную базу данных wikijs и соответствующего пользователя. Для безопасного завершения сеанса и выхода из клиентской консоли PostgreSQL введите команду выхода:

quit

Проверка созданной базы данных и пользователя в PostgreSQL
Список баз данных и пользователей в PostgreSQL

Загрузка исходного кода Wiki.js

В этом разделе вы займетесь скачиванием официального архива с исходным кодом Wiki.js непосредственно на ваш сервер, а также подготовкой специализированного рабочего каталога с корректными правами доступа и системным владельцем.

В целях безопасности рекомендуется создать отдельного выделенного системного пользователя без возможности интерактивного входа в оболочку ОС. Выполните для этого следующую команду:

sudo useradd -m -s /bin/false wikijs

Теперь создайте целевую директорию /opt/wikijs на вашем диске и сразу перейдите внутрь нее. Затем скачайте стабильный архив с исходным кодом последней версии Wiki.js с официального репозитория через утилиту командной строки wget:

mkdir -p /opt/wikijs; cd /opt/wikijs
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Настройка конфигурационного файла Wiki.js
Параметры подключения к базе данных в config.yml

Сразу после завершения загрузки архива распакуйте полученные файлы в текущую директорию и измените владельца всего содержимого папки /opt/wikijs на созданного ранее системного пользователя wikijs:

tar -xf wiki-js.tar.gz
sudo 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.yml
sudo -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, чтобы убедиться в правильности настроек:

Проверка статуса службы systemd для Wiki.js
Статус запущенной службы Wiki.js в systemd

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 wikijs
sudo systemctl enable wikijs

Проверьте текущее состояние службы Wiki.js с помощью системной команды мониторинга, чтобы убедиться в отсутствии ошибок:

sudo systemctl status wikijs

В качестве финальной проверки используйте сетевую утилиту ss, чтобы убедиться, что приложение действительно заняло и прослушивает локальный сетевой порт 3000:

Страница установки Wiki.js в браузере
Веб-интерфейс первоначальной настройки Wiki.js

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-enabled
sudo nginx -t

Страница авторизации в Wiki.js
Форма входа в панель управления Wiki.js

Если синтаксическая проверка прошла успешно и в консоли выведено сообщение о том, что синтаксис в порядке, перезапустите веб-сервер 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-сертификатов. Обязательно укажите актуальный доменный адрес вашей вики, а также действующий адрес электронной почты для получения системных уведомлений:

Приветственная страница Wiki.js
Интерфейс успешно установленной вики-системы

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
Главная панель управления системой

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

Информация о системе в Wiki.js
Сведения о версиях компонентов Wiki.js

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

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

01.
На платформе MonsterInsights