Phase 17: multi-host dashboard (0.19.0)

The dashboard now renders a stacks-with-usage table per host: the local host
plus a section for each registered agent (online dot + offline notice), reusing
the same CPU/memory meters and inline start/stop/restart actions.

- agent_app.py: GET /agent/stacks/stats (reuses stats_service); /agent/system
  now also returns cpu_cores + mem_total for remote meter references.
- routers/agents.py: proxy GET /api/agents/{id}/stacks/stats (declared before
  /{agent_id}/stacks/{stack_id}).
- Frontend: agentsApi.system + stackStats; Dashboard refactored into a shared
  StacksTable used by the local section and a per-agent AgentDashboardSection.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
menzelj
2026-06-08 13:15:33 +00:00
co-authored by Claude Opus 4.8
parent 56450efd82
commit 8fbacd200a
7 changed files with 234 additions and 67 deletions
+11 -1
View File
@@ -9,7 +9,8 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
> + Phase 9 (Networks) + Phase 10 (iGPU passthrough) + Phase 11 (Remote UX &
> network attach) + Phase 12 (File browser) + Phase 13 (Multi-host networks &
> images) + Phase 14 (Multi-host file browser) + Phase 15 (Dashboard stack
> resource usage) + Phase 16 (Volumes page, multi-host) complete.
> resource usage) + Phase 16 (Volumes page, multi-host) + Phase 17 (Multi-host
> dashboard) complete.
## What works today (Phase 1)
@@ -147,6 +148,15 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
container or connect any container on the host (`POST /api/networks/{id}/connect`
/ `/disconnect`).
### Phase 17 — Multi-host dashboard
- The dashboard now shows a **stacks-with-usage table per host** — the local host
plus a section for each registered agent (online dot, offline notice), with the
same CPU/memory meters and inline start/stop/restart as the local list.
- New agent endpoint `/agent/stacks/stats` (proxied at
`/api/agents/{id}/stacks/stats`); `/agent/system` now also reports `cpu_cores`
and `mem_total` so remote meters have a host reference.
### Phase 16 — Volumes page (multi-host)
- **New Volumes page** (sidebar) with per-host sections (local + each online