Установка и обновления
Установка плагина в AiHummer — это один клик в админ-панели, но за этим кликом
стоит детерминированный жизненный цикл без контейнеров. Платформа скачивает
плагин, выполняет объявленные шаги установки, разворачивает sandbox-юнит
systemd и считает установку успешной только после ответа /healthz. Затем
автообновление настраивается отдельно для каждого установленного плагина.
Установка в один клик из админ-панели
Вы устанавливаете и управляете плагинами из админ-панели, за которой стоит admin-API модулей:
GET /v1/admin/modules
POST /v1/admin/modules/install
Системный идентификатор (slug) модуля передаётся в JSON-теле запроса, а не в
пути:
{ "slug": "einstein", "version": "" }
Ничего не нужно настраивать вручную: выберите плагин из каталога, нажмите «установить», и за дело берётся deployer.
[!NOTE] Установка канального коннектора вне базового набора (только Telegram) требует активной лицензии Starter, Business или Enterprise. На тарифе Community такой запрос возвращает HTTP 402 «требуется повышение тарифа» (код
plan_limit) — см. Лицензирование.
[!NOTE] Плагин памяти Einstein — встроенный: он ставится автоматически, помечен меткой «Встроенный» и не может быть удалён или остановлен.
Поток SystemdDeployer
Под капотом SystemdDeployer выполняет такие шаги:
- Скачивает tarball выбранного плагина.
- Выполняет шаги
install[]из манифеста, объявленные плагином. - Разворачивает sandbox-юнит systemd для плагина.
- Опрашивает
/healthz, пока сервис не сообщит о работоспособности.
скачать tarball ─▶ выполнить шаги install[] ─▶ развернуть sandbox-юнит systemd ─▶ опросить /healthz ─▶ active
Только когда /healthz отвечает успешно, установка помечается активной — плагин,
который не поднялся, молча не засчитывается как установленный.
Установка без контейнеров: sandbox systemd — не Docker
Каждый плагин работает как своя sandbox-служба systemd. Никаких контейнеров, Docker или оркестратора: плагин — это управляемая Linux-служба со своим юнитом, портом и ограничениями sandbox, контролируемая systemd, как и остальная установка.
[!WARNING] AiHummer устанавливается без контейнеров. Плагины разворачиваются как sandbox-службы systemd из релизного tarball, а не как Docker-контейнеры. Если в инструкции вам предлагают «запустить контейнер плагина» — это не про AiHummer.
Проверка работоспособности через /healthz
Перед объявлением успеха deployer опрашивает endpoint плагина /healthz —
установка считается успешной только после его ответа. Именно эта проверка
делает установку в один клик безопасной: сломанный или неверно настроенный
плагин ловится во время установки, а не обнаруживается позже в промышленной
эксплуатации.
Автообновление на каждую установку
Автообновление настраивается отдельно для каждого установленного плагина и
выполняется по его расписанию, поэтому поддержание плагинов в актуальном
состоянии не требует ручной переустановки при каждом появлении новой версии в
каталоге. Для обновления выполняется тот же поток «скачать → шаги установки →
развернуть юнит → проверка /healthz», что и при первой установке.
Перед обновлением важного плагина выполните обязательные проверки:
- Совместимость версии — прочитайте заметки к новой версии в каталоге.
- Резервная копия конфигурации — сохраните настройки плагина (и общую резервную копию БД).
- Состояние после обновления — убедитесь, что
/healthzплагина отвечает и канал/инструмент работает. - Способ отката — зафиксируйте текущую версию, чтобы вернуться к ней, если новая не заработает.
[!TIP] Поскольку автообновление работает на каждую установку, вы можете зафиксировать одни плагины, позволив другим следовать за последней версией — каждая установка управляет своим жизненным циклом сама.
Мульти-источник каталога
Каталог больше не привязан к одному URL. Каталог плагинов сообщества
поставляется как встроенный источник по умолчанию (заполняется при
установке) — его не нужно добавлять вручную. В Плагины → Источники
(админ-панель, или POST /v1/admin/modules/catalog/sources) можно добавить
свои дополнительные источники. Шлюз синхронизирует все включённые источники на
старте и на интервале автообновления.
- Официальный источник (первопартийные модули) закреплён и доверяется по умолчанию — это отдельный объект, который не перезаписывается другими источниками.
- Каталог сообщества — источник по умолчанию; приватные источники
добавляет оператор. У каждой записи каталога
есть
origin, и именноoriginопределяет, против какого якоря проверяется подпись (official → закреплённый ключ, private → trust-store).
Подробнее о публикации в community-каталог — в Публикации плагина.
Модель доверия и закреплённый ключ
Установка проверяет подпись плагина по его источнику:
- official → проверка против ключа реестра, закреплённого в ядре. Доверяется по умолчанию, без действий оператора.
- private (частная загрузка, side-load) → проверка против trust-store инстанса; ключ автора одобряется оператором при загрузке (один клик).
- неподписанный → отклоняется, кроме dev-режима
(
AIHUMMER_PLUGIN_DEV_UNSIGNED=1, только для локальной разработки).
[!WARNING] Плагины сообщества сейчас установить нельзя — и это не сбой связи. Ключ, которым подписывался каталог сообщества, отозван; до выпуска нового ключа проверка подписи такие записи отклоняет. Отдельно от этого сторонний код пока не запускается службой на вашем сервере: до появления изолированной среды выполнения разрешены только интеграции, которые работают на своей стороне и подключаются по сети.
Что вы увидите: после нажатия «установить» появится обычное сообщение «устанавливается», но плагин не появится в списке установленных. Причина отказа записывается в журнал шлюза — откройте Логи в панели управления.
Что работает прямо сейчас:
- плагины от AiHummer из официального каталога — ставятся как обычно, у них другая, действующая подпись;
- MCP-сервер по HTTP — подключается как источник инструментов без разработки, код остаётся на вашей стороне;
- интеграция по спецификации OpenAPI — то же самое, без установки службы.
Частная загрузка (side-load) собственного плагина проходит проверку подписи, но запустится только в виде удалённого MCP по HTTP или интеграции OpenAPI; сборка, которую нужно запустить службой на этом же сервере, будет отклонена.
Подписанные обновления
Обновление повторно проходит ту же проверку подписи, что и первая установка: при переходе на новую версию подпись проверяется заново против того же якоря доверия. Обновление не может обойти проверку — поднять уровень доверия через обновление нельзя.
Метка Official и ранжирование
В каталоге веб-интерфейса плагины от AiHummer помечаются меткой Official и
идут первыми. Сторонние плагины показываются без метки и сортируются по числу
загрузок. Признак Official является производным от origin записи (official) —
его нельзя выставить вручную в манифесте.
Куда дальше
- Маркетплейс: обзор и уровни — что такое три уровня плагинов.
- Plugin SDK —
manifest.json, чьи шагиinstall[]выполняет этот жизненный цикл. - Публикация плагина — частная загрузка (side-load) и публикация для сообщества через личный кабинет.
- Интеграции без разработки — добавьте инструменты OpenAPI/MCP без установки сервиса.