BPMkitStand
Свободный диспетчер стендов BPMSoft. Локальный веб-дашборд для запуска, остановки и мониторинга ваших стендов — в один клик, без консоли.
Что это
BPMkitStand — бесплатный инструмент экосистемы BPMkit для управления локальными и удалёнными стендами BPMSoft. Открывает лёгкий локальный веб-дашборд в браузере: видно состояние каждого стенда, его можно запустить/остановить/перезапустить, посмотреть логи текущей сессии и очистить Redis — всё без ручных команд в PowerShell.
Ядро (standkit) написано на чистой стандартной библиотеке Python — без тяжёлых зависимостей,
работает на Windows и Linux.
Возможности
- Дашборд стендов — список из общего реестра BPMkit (
projects.json), состояние в реальном времени. - Жизненный цикл — старт / стоп / рестарт стенда с честной обратной связью (спиннер до готовности, без ложных «не поднялся» на прогреве).
- Логи — просмотр логов текущей сессии стенда, открытие папки логов стенда и папки BPMkit-проекта.
- Redis — очистка кэша стенда (номер БД берётся из конфигурации стенда).
- Тёмная и светлая тема с переключателем.
- Встроенная справка — кнопка «?» в шапке открывает кукбук: установка, работа с дашбордом, удалённые агенты, траблшутинг. Один самодостаточный файл, работает офлайн.
- Безопасность по умолчанию — дашборд слушает только
127.0.0.1, сессионный токен, защита мутаций (CSRF + проверка Origin). - Удалённые стенды (в развитии) — через лёгкие кроссплатформенные headless-агенты с TLS/mTLS.
Скриншоты
| Дашборд (светлая тема) | Дашборд (тёмная тема) |
|---|---|
Как это работает
BPMkitStand состоит из ядра и двух оболочек:
standkit— ядро (MIT) на чистой стандартной библиотеке Python: движок жизненного цикла над реестромprojects.json(старт/стоп/рестарт процесса стенда), health-пробы (процесс / HTTP / порт БД / порт Redis), tail лога, Secret-first доступ к секретам. Без веб-слоя и сетевых зависимостей — можно использовать и как библиотеку/CLI.standkit_hub— локальный веб-дашборд (то, что видно на скриншотах). Сам себя отдаёт по HTTP черезstdlib http.server(vanilla JS/CSS, без CDN и сборки) и открывается в системном браузере; опционально — в нативном окне (standkit[desktop],--desktop). Устанавливается только на машину оператора.standkit_agent— лёгкий headless-демон на хосте удалённого стенда (см. ниже).
Дашборд — федеративный клиент: он собирает в один список и локальные стенды (управляет ими
напрямую через ядро), и удалённые (ходит к их агентам по HTTP). В таблице колонка «Транспорт»
показывает, как дашборд дотягивается до стенда: local или agent.
Реестр стендов — единый с MCP BPMkit: один projects.json (стенды под ключом projects),
путь резолвится через BPMSOFT_PROJECTS_FILE → %APPDATA%\BPMkit\projects.json
(~/.config/BPMkit/... на Linux) → ./projects.json. Секреты (пароли БД, токены агентов) в
реестре не хранятся — только ссылки на них (Secret-first).
Запуск стенда честный: дашборд поднимает dotnet <stand_dll> и держит спиннер до реального
ответа web-хоста по HTTP, а не рапортует «запущено» по факту создания процесса.
Виды хостинга (kestrel/iis/docker) — см. docs/HOSTING.md.
Удалённые стенды
Стенды на других хостах (виртуалки, серверы, контуры заказчика) управляются через федерацию
лёгких кроссплатформенных агентов (standkit_agent, Windows/Linux, только stdlib). На хосте
стенда поднимается агент, дашборд оператора ходит к нему по HTTPS с Bearer-токеном; стенд
объявляется удалённым одним полем transport: "agent" в реестре. Агент — RCE-поверхность по
дизайну, поэтому защищён secure-defaults: loopback по умолчанию, fail-closed на non-loopback без
TLS, TLS 1.2+/mTLS, скоупы control/readonly, lockout по IP, аудит.
Полное описание, установка агента, TLS/mTLS, служба и траблшутинг — в docs/REMOTE_STANDS.md.
Установка
Нужен Python 3.10+.
pip install standkit
Обновление — pip install -U standkit. Свежий main до релиза (если нужна ещё не выпущенная
правка) — pip install --force-reinstall "git+https://github.com/thinkquattro/BPMkitStand.git".
Запуск дашборда:
standkit-hub
Откроется браузер с локальным дашбордом. Реестр стендов берётся из
%APPDATA%\BPMkit\projects.json (или из переменной окружения BPMSOFT_PROJECTS_FILE).
Реестр стендов
BPMkitStand использует тот же реестр, что и MCP BPMkit — единый projects.json.
Образец формата — projects.sample.json. Стенд можно
зарегистрировать прямо из дашборда (кнопка «Зарегистрировать стенд»).
Безопасность
Дашборд и агент проектировались с расчётом на прод-контур. Модель угроз, харденинг и чек-лист — в SECURITY.md. Кратко: fail-closed bind на loopback, TLS 1.2+/mTLS для агента, скоупы токена, per-IP lockout, аудит без утечки секретов.
Документация проекта
- standkit_hub/web/cookbook.html — кукбук: обзор, установка (отдельно Windows и Linux), обновление, дашборд, реестр стендов, виды хостинга, удалённые стенды и агент-демон, безопасность, траблшутинг. Один standalone-файл: в работающем диспетчере открывается кнопкой «?» в шапке, без него — прямо с диска в браузере.
- docs/ROADMAP.md — дорожная карта приложения (что сделано / ближайшее / бэклог).
- docs/CHANGELOG.md — история изменений по версиям.
- docs/BACKLOG.md — честный список «упомянуто в коде, но не реализовано» (заделы/заглушки) со ссылками на код.
- docs/ARCHITECTURE.md · docs/HOSTING.md · docs/REMOTE_STANDS.md · SECURITY.md
- Решения (ADR): 0001 — hosting backends · 0002 — k8s backend · 0003 — браузинг логов удалённых стендов (предложено) · 0004 — IIS: жизненный цикл по Site
Статус:
standkit— молодой проект (0.5.x). Ядро/агент/хаб работоспособны, но ряд возможностей — это каркас/заделы (например, глубокие пробы БД/Redis, транспорты ssh/winrm, живая приёмка Docker/k8s/IIS). Что именно ещё не дописано — прозрачно перечислено в docs/BACKLOG.md.
BPMkitStand и Companion
Бесплатная версия — полноценный диспетчер стендов. Companion-версия дополнительно даёт автообновление MCP BPMkit и контроль лицензии; поставляется в составе установщика MCP-клиента. Подробнее — на bpmkit.pro.
Лицензия
MIT © Владимир Терновский
Release files for standkit 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| standkit-0.7.0.tar.gz | 552.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| standkit-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / standkit-0.7.0.tar.gz
| Download URL | standkit-0.7.0.tar.gz |
|---|---|
| Size | 552.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d12110001451e78256c11288ab814ec61f9e5d0fdc3dd8966ccadbd0c2f591dc
|
|
BLAKE2b-256 checksum How to use checksums |
d16b18a61096d5a81bd275c9ab9be7974136d7005aa606565d5dd3aff2312484
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / standkit-0.7.0-py3-none-any.whl
| Download URL | standkit-0.7.0-py3-none-any.whl |
|---|---|
| Size | 450.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74812ee6d5b92f91b14617d0993cae5bfc79ac123209f2212519c6786cb04097
|
|
BLAKE2b-256 checksum How to use checksums |
cf9007b3a9fa7e8c1197efcc3abe63c28d176edb1995251a0c7554834ffa242e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|