feat(discord-bridge): dashboard de control si restart, dupa modelul agentului echo
Panou web pe 127.0.0.1:18790, unit systemd separat de al puntii. Server stdlib
(fara dependinte noi), tokenii de design si tiparul de endpoint-uri preluate din
/home/moltbot/echo-core/dashboard (handlers/eco.py) de pe LXC 110.
Arata: starea unitatii (uptime, PID, memoria cgroup, restarturi), firele din
state.json cu tur in zbor si cost, costul zilei fata de plafon, confirmarile
PreToolUse in asteptare (aprobabile direct din pagina), bot.log / infra.log si
opt verificari de diagnostic.
Face: start / stop / restart pe punte, cautarea si curatarea orfanilor prin
cleanup.py, repornirea propriului serviciu.
Garantii, cu teste:
- unitatea controlata e fixa in cod; un {"unit": "ssh.service"} in cerere nu
schimba nimic, altfel panoul ar fi systemctl remote fara parola;
- stop/restart intorc 409 cu lista firelor active si cer force explicit, fiindca
KillMode=control-group taie tururile in desfasurare;
- state.json se citeste fara lock: panoul nu are voie sa blocheze botul;
- diagnosticul pica daca reapare Bash(ssh:*) in deny (regresia de azi).
Uptime-ul se calculeaza din time.monotonic(), nu din /proc/uptime: in LXC acela
e virtualizat de lxcfs si da diferenta negativa fata de monotonic-ul systemd.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B29CApsP1JkSdjYaGaHpE7
This commit is contained in:
@@ -187,12 +187,22 @@ tail -f ~/.claude-discord/logs/alerts.log # ce alerte s-au trimis / au esu
|
||||
systemctl --user restart claude-discord # repornire
|
||||
```
|
||||
|
||||
Aceleasi lucruri, cu butoane, in **dashboard-ul de control**
|
||||
([dashboard/README.md](dashboard/README.md)) — stare, restart, orfani, confirmari,
|
||||
jurnale, la `http://127.0.0.1:18790` (tunel SSH; e legat de localhost intentionat):
|
||||
|
||||
```bash
|
||||
ssh -L 18790:127.0.0.1:18790 -N claude@10.0.20.171 &
|
||||
grep DASHBOARD_TOKEN ~/.claude-discord/env
|
||||
```
|
||||
|
||||
| Fisier | Ce e |
|
||||
|--------|------|
|
||||
| `~/.claude-discord/env` | token + allowlist + limite (0600) |
|
||||
| `~/.claude-discord/state.json` | sesiuni, directoare, pid-uri, cost |
|
||||
| `~/.claude-discord/logs/bot.log` | stdout/stderr al botului (rotit zilnic, 14 zile) |
|
||||
| `~/.claude-discord/logs/alerts.log` | jurnalul alertelor |
|
||||
| `~/.claude-discord/logs/dashboard.log` | stdout/stderr al dashboard-ului de control |
|
||||
| `~/.claude-discord/alerts-dedup.json` | fereastra de dedup a alertelor |
|
||||
| `~/.claude-discord/approvals/` | cereri de confirmare intre hook si bot |
|
||||
|
||||
@@ -345,4 +355,7 @@ baza pe ele ca pe o bariera.
|
||||
| `ops/install.sh` | instalare idempotenta | C |
|
||||
| `ops/env.example` | sablon de configurare | C |
|
||||
| `ops/logrotate.conf` | rotatia logurilor | C |
|
||||
| `dashboard/api.py` | dashboard de control (stare, restart, orfani, confirmari) | C |
|
||||
| `dashboard/index.html`, `login.html`, `static/` | interfata dashboard-ului | C |
|
||||
| `dashboard/claude-discord-dashboard.service` | unit systemd pentru dashboard | C |
|
||||
| `INTERFACES.md` | contractul intre module | orchestrator |
|
||||
|
||||
Reference in New Issue
Block a user