From 33cf5f842d1c56b40c812e819cb06d4e64985037 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 17 Jun 2026 13:56:24 +0600 Subject: [PATCH] =?UTF-8?q?[2026-06-17]=20eagle-dashboard:=20add=20managem?= =?UTF-8?q?ent=20policy=20doc=20=E2=80=94=20Hermes=20only=20via=20dashboar?= =?UTF-8?q?d/API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personal/projects/personal-os/eagle-dashboard.md | 14 ++++++++++++++ personal/projects/zulip-router.md | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/personal/projects/personal-os/eagle-dashboard.md b/personal/projects/personal-os/eagle-dashboard.md index 8c9cb8c3..25f81990 100644 --- a/personal/projects/personal-os/eagle-dashboard.md +++ b/personal/projects/personal-os/eagle-dashboard.md @@ -8,6 +8,20 @@ Process supervisor and control panel for all Eagle local services. --- +## Management Policy + +**Hermes gateway (Eagle и Whale) стартуются, стопаются и перезапускаются ТОЛЬКО через Eagle Dashboard или его API (`POST /api/services//start|stop|restart`).** + +Нельзя: +- `kill` процесс Hermes вручную +- `launchctl` stop/start Hermes +- supervisorctl +- любой другой прямой способ + +Dashboard supervisor управляет процессами через PID-файлы, отслеживает состояние, не рестартует после ручного стопа (`stop` выставляет флаг, autorestart игнорируется до явного `start`). Health check верится по supervisor PID (точное совпадение), а не по подстроке в cmdline. + +Для дашборда самого (`com.eagle.dashboard`, type: self) — кнопки управления скрыты, так как supervisor не может restart/stop/start свой процесс. + ## Architecture FastAPI + HTMX + Tailwind CDN + Alpine.js. No build step, CDN-only frontend. diff --git a/personal/projects/zulip-router.md b/personal/projects/zulip-router.md index 84cba302..c0e7f9c0 100644 --- a/personal/projects/zulip-router.md +++ b/personal/projects/zulip-router.md @@ -85,6 +85,14 @@ bots: - name: "Клавдий" aliases: ["Klavdiy"] webhook: "http://claudio-agent-claudio-1:8092/zulip/webhook" + - name: "Eagle" + aliases: ["eagle", "Eagle"] + webhook: "http://host.docker.internal:8644/webhooks/eagle" + - name: "Кит" + aliases: ["Whale", "whale", "кит"] + webhook: "http://host.docker.internal:8644/webhooks/whale" + aliases: ["Klavdiy"] + webhook: "http://claudio-agent-claudio-1:8092/zulip/webhook" # bot_ids — sender_id ботов в Zulip (чтобы отличать сообщения человека от бота) bot_ids: