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. Конкретная версия (в том числе откат) —
pip install "standkit==0.6.1"; полный список выпусков — на
PyPI.
Запуск дашборда:
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, аудит без утечки секретов.
Документация проекта
Карта всех документов — docs/README.md: кому, о чём и когда открывать. Коротко:
| Документ | Для кого |
|---|---|
| Кукбук — обзор, установка, дашборд, реестр, хостинг, агент, безопасность, траблшутинг. Один standalone-файл: в работающем диспетчере открывается кнопкой «?» в шапке, без него — прямо с диска в браузере | оператор |
| docs/COOKBOOK_LINUX.md — пошаговое развёртывание агента на Linux: pipx/venv, реестр, секреты, systemd, TLS/mTLS, разбор типичных ошибок с реальными сообщениями | администратор |
| docs/REMOTE_STANDS.md · docs/HOSTING.md · SECURITY.md | оператор / администратор |
| docs/ARCHITECTURE.md · docs/adr/ · docs/CHANGELOG.md | разработчик |
| docs/ROADMAP.md — крупные работы · docs/BACKLOG.md — заглушки и заделы в коде · docs/GAPs/ — код прав, а сценарий оператора ломается | планирование |
Статус:
standkit— молодой проект (0.8.x). Ядро/агент/хаб работоспособны, но ряд возможностей — это каркас/заделы (например, глубокие пробы БД/Redis, транспорты ssh/winrm, живая приёмка Docker/k8s/IIS). Что именно ещё не дописано — прозрачно перечислено в docs/BACKLOG.md.
BPMkitStand и Companion
Бесплатная версия — полноценный диспетчер стендов. Companion-версия дополнительно даёт автообновление MCP BPMkit и контроль лицензии; поставляется в составе установщика MCP-клиента. Подробнее — на bpmkit.pro.
Лицензия
MIT © Владимир Терновский
Release files for standkit 0.8.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.8.0.tar.gz | 670.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| standkit-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / standkit-0.8.0.tar.gz
| Download URL | standkit-0.8.0.tar.gz |
|---|---|
| Size | 670.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c441f0ca55412d69c3e5095679f45564c0df79f9311d6322bec394faa9d00223
|
|
BLAKE2b-256 checksum How to use checksums |
8cd9d90e28863999b45f38287fb406c3835481319a7ac0c8fb263ef254ab32f4
|
| 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.8.0-py3-none-any.whl
| Download URL | standkit-0.8.0-py3-none-any.whl |
|---|---|
| Size | 495.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9267c91ffe2220bfe4c18455ae33369acf204f9c70994a75a6150948fafe485f
|
|
BLAKE2b-256 checksum How to use checksums |
8f333cb1cadfaed48536b2f7f6a4e4032c48834169808f17e9babaaa930b21a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|