Установка и управление

Страница «Плагины»

Управление плагинами доступно администратору на странице «Администрирование»«Плагины». Страница содержит две вкладки:

  • «Установленные» — список загруженных в панель плагинов. В таблице отображаются имя, категория, рейтинг, число загрузок, версия и действия. Бейджи показывают источник установки (file — «Локальный файл», store — «Магазин»), статус и наличие обновления.
  • «Магазин» — список плагинов из каталога plugins.gameap.ru с серверной пагинацией. Для уже установленных плагинов показывается бейдж, для платных — кнопка покупки подписки.

Установка из каталога

  1. На вкладке «Магазин» нажмите на имя плагина или кнопку «Установить» — откроется карточка плагина с описанием, автором, лицензией, метками, рейтингом и списком версий.
  2. Выберите версию в выпадающем списке (по умолчанию предлагается последняя) и нажмите «Установить».
  3. Панель скачает .wasm-файл, проверит его SHA-256-хеш, запишет в каталог plugins/, загрузит плагин и перезагрузит страницу (чтобы обновить /plugins.js с фронтенд-частями плагинов).

Для платных плагинов (с пометкой requires_subscription) вместо установки предлагается кнопка покупки подписки. Чтобы панель могла скачивать платные плагины, укажите лицензионный ключ в переменной окружения PLUGIN_STORE_LICENSE_KEY.

Установка из файла

  1. На вкладке «Установленные» нажмите кнопку «Загрузить» и выберите .wasm-файл плагина (не более 100 МБ).
  2. Нажмите «Проверить»: панель выполнит пробную загрузку модуля (dry-run, без установки) и покажет метаданные плагина — имя, версию, автора, версию Plugin API, наличие HTTP-маршрутов, фронтенд-части и список ошибок валидации.
  3. Если плагин валиден, нажмите «Установить» — панель установит плагин и перезагрузит страницу.

Обновление и удаление

Если для установленного из каталога плагина вышла новая версия, в таблице появляется бейдж обновления, а в колонке версии — переход установленная → последняя. Обновление выполняется кнопкой в списке или из карточки плагина: панель скачивает новую версию, проверяет хеш, заменяет файл и перезагружает плагин.

Удаление выполняется кнопкой «Удалить» с подтверждением. Панель выгружает плагин из рантайма, удаляет .wasm-файл и запись о плагине. Обратите внимание: данные key-value хранилища плагина (таблица plugin_storage) при удалении не очищаются — при повторной установке плагин увидит свои прежние настройки.

После установки, обновления и удаления страница перезагружается, чтобы обновить фронтенд-части плагинов (/plugins.js).

Включение и отключение

В текущей версии панели отдельного действия «включить/отключить» плагин в интерфейсе нет: плагин работает сразу после установки и до удаления.

Если плагин перестаёт отвечать (превышает таймаут вызова), панель временно отключает его — он перестаёт получать события и HTTP-запросы до перезагрузки панели. Статус отображается бейджем в списке плагинов.

Чтобы полностью отключить все плагины, установите переменную окружения PLUGINS_DISABLED=true и перезапустите панель.

Права доступа

Плагин может регистрировать собственные права на игровые серверы вида plugin:{id}:{ability}, например plugin:ezvdsxmlu6fbk:manage. Эти права появляются в списке прав на игровой сервер наряду со встроенными и выдаются пользователям обычным образом (настройка прав пользователя на сервер). Администраторы получают все права плагинов автоматически.

По этим правам плагин скрывает или показывает элементы интерфейса (например, вкладку на странице игрового сервера), а также может ограничивать доступ к своим HTTP-маршрутам флагами requires_auth и admin_only.

Переменные окружения панели

Переменная По умолчанию Описание
PLUGINS_DISABLED false Полностью отключает систему плагинов: плагины не загружаются, фронтенд-части и маршруты плагинов не регистрируются
PLUGINS_AUTOLOAD Список имён .wasm-файлов через запятую для автоматической регистрации и загрузки при старте панели
PLUGIN_STORE_URL https://plugins.gameap.dev/api Адрес API каталога плагинов
PLUGIN_STORE_LICENSE_KEY Лицензионный ключ для скачивания платных плагинов из каталога
PLUGIN_HTTP_ALLOWED_SCHEMES https Разрешённые схемы для исходящих HTTP-запросов плагинов
PLUGIN_HTTP_BLOCK_PRIVATE_IPS true Блокировка запросов плагинов к приватным, loopback и служебным IP (защита от SSRF)
PLUGIN_HTTP_ALLOWED_HOSTS Список хостов-исключений, к которым разрешены запросы даже с приватными IP
PLUGIN_HTTP_MAX_REDIRECTS 5 Максимальное число редиректов в исходящих запросах плагинов
PLUGIN_HTTP_MAX_TIMEOUT_SECONDS 30 Максимальный таймаут исходящего HTTP-запроса плагина, секунд

Установка вручную через файловую систему

Плагин можно установить без интерфейса: скопируйте .wasm-файл в каталог plugins/ панели, добавьте имя файла в переменную окружения PLUGINS_AUTOLOAD (имена через запятую) и перезапустите панель — при старте плагин будет зарегистрирован и загружен.