Web-интерфейс
Операторский web-UI встроен в Keeper и отдаётся им на маршруте /ui из коробки. Отдельный процесс, порт, reverse-proxy или деплой статики не нужны: один исполняемый файл keeper несёт и Operator API, и UI к нему.
UI — это надстройка над тем же Operator API, что и soulctl, MCP и прямые вызовы /v1/*. Всё, что доступно в UI, доступно и через API; UI не даёт операций, которых нет в API.
UI поднимается на том же HTTP-listener-е, что и Operator API (порт 8080 по умолчанию), на пути /ui:
- Откройте в браузере
http://keeper.example.com:8080/ui. - Вставьте JWT Архонта в поле ввода токена. UI после загрузки обращается к
/v1/*с этим токеном в заголовкеAuthorization: Bearer.
JWT — тот же credential, что используется для Operator API:
- bootstrap-токен, выпущенный при создании первого Архонта (
keeper init, см. Quick Start); - токен, выпущенный для существующего Архонта через
POST /v1/operators/{aid}/issue-token.
Права в UI определяются ролями Архонта в этом JWT: RBAC и Purview применяются на стороне API одинаково для всех клиентов. UI не расширяет и не обходит проверки — он лишь отправляет запросы под вашим токеном.
Что умеет
Заголовок раздела «Что умеет»UI — браузерный интерфейс к Operator API: то, что вы делаете через /v1/*, доступно мышью. В частности — работа с инкарнациями сервисов, запуск и просмотр прогонов, обзор подключённых душ (Souls) и управление операторами (Архонтами).
Полная и всегда актуальная поверхность операций — сама OpenAPI-спека: откройте http://keeper.example.com:8080/docs для интерактивного справочника по всем эндпоинтам.
Включение и выключение
Заголовок раздела «Включение и выключение»UI управляется одним config-ключом Keeper-а — web_ui_enabled (top-level):
# web_ui_enabled: true # дефолт (опущено / null → ON); false — opt-out| Значение | Поведение |
|---|---|
опущено / null | default-ON — UI смонтирован на /ui из коробки |
true | UI смонтирован на /ui |
false | UI не монтируется; /v1/* и /docs не затрагиваются |
Для headless-инсталляций (работа только через CLI / MCP / API) поставьте web_ui_enabled: false — маршрут /ui не появится, остальная поверхность Keeper-а не меняется.
Embed и dev-server
Заголовок раздела «Embed и dev-server»Для оператора UI — это всегда встроенный /ui: ничего собирать или запускать отдельно не нужно. Исполняемый файл Keeper-а несёт уже собранный статический бандл UI, поэтому интерфейс работает в том числе в air-gapped-окружениях — внешний CDN не требуется.
Отдельный dev-сервер (Vite) нужен только разработчикам самого UI при работе над его исходниками — это сценарий разработки фронтенда, а не эксплуатации Keeper-а. Оператору достаточно встроенного /ui.