AiHummer
Русский
ВойтиЛичный кабинет
v1.1.x
{ }Swagger

Установка и обновления

v1.1.x · обновлено 2026-07-21

Установка плагина в 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 выполняет такие шаги:

  1. Скачивает tarball выбранного плагина.
  2. Выполняет шаги install[] из манифеста, объявленные плагином.
  3. Разворачивает sandbox-юнит systemd для плагина.
  4. Опрашивает /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», что и при первой установке.

Перед обновлением важного плагина выполните обязательные проверки:

  1. Совместимость версии — прочитайте заметки к новой версии в каталоге.
  2. Резервная копия конфигурации — сохраните настройки плагина (и общую резервную копию БД).
  3. Состояние после обновления — убедитесь, что /healthz плагина отвечает и канал/инструмент работает.
  4. Способ отката — зафиксируйте текущую версию, чтобы вернуться к ней, если новая не заработает.

[!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) — его нельзя выставить вручную в манифесте.

Куда дальше