Установка и управление
Страница «Плагины»
Управление плагинами доступно администратору на странице «Администрирование» → «Плагины». Страница содержит две вкладки:
- «Установленные» — список загруженных в панель плагинов. В таблице отображаются имя, категория, рейтинг, число загрузок, версия и действия. Бейджи показывают источник установки (
file— «Локальный файл»,store— «Магазин»), статус и наличие обновления. - «Магазин» — список плагинов из каталога plugins.gameap.ru с серверной пагинацией. Для уже установленных плагинов показывается бейдж, для платных — кнопка покупки подписки.
Установка из каталога
- На вкладке «Магазин» нажмите на имя плагина или кнопку «Установить» — откроется карточка плагина с описанием, автором, лицензией, метками, рейтингом и списком версий.
- Выберите версию в выпадающем списке (по умолчанию предлагается последняя) и нажмите «Установить».
- Панель скачает
.wasm-файл, проверит его SHA-256-хеш, запишет в каталогplugins/, загрузит плагин и перезагрузит страницу (чтобы обновить/plugins.jsс фронтенд-частями плагинов).
Для платных плагинов (с пометкой requires_subscription) вместо установки предлагается кнопка покупки подписки. Чтобы панель могла скачивать платные плагины, укажите лицензионный ключ в переменной окружения PLUGIN_STORE_LICENSE_KEY.
Установка из файла
- На вкладке «Установленные» нажмите кнопку «Загрузить» и выберите
.wasm-файл плагина (не более 100 МБ). - Нажмите «Проверить»: панель выполнит пробную загрузку модуля (dry-run, без установки) и покажет метаданные плагина — имя, версию, автора, версию Plugin API, наличие HTTP-маршрутов, фронтенд-части и список ошибок валидации.
- Если плагин валиден, нажмите «Установить» — панель установит плагин и перезагрузит страницу.
Обновление и удаление
Если для установленного из каталога плагина вышла новая версия, в таблице появляется бейдж обновления, а в колонке версии — переход установленная → последняя. Обновление выполняется кнопкой в списке или из карточки плагина: панель скачивает новую версию, проверяет хеш, заменяет файл и перезагружает плагин.
Удаление выполняется кнопкой «Удалить» с подтверждением. Панель выгружает плагин из рантайма, удаляет .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 (имена через запятую) и перезапустите панель — при старте плагин будет зарегистрирован и загружен.