-
Notifications
You must be signed in to change notification settings - Fork 0
feat: web UI dashboard for monitoring and management #18
Copy link
Copy link
Open
Labels
Description
Problem
Currently the only way to observe the controller is by reading log files. There's no visual overview of runner status, job activity, or system health.
Proposal
Add a built-in web UI dashboard served by the controller process (e.g. :8080).
Views
Overview
- Runner sets with current status (idle/busy/preparing count per set)
- Live job queue depth
- System health indicators (CPU, memory, disk)
Runners
- List of all active runners with state, uptime, current job
- Historical runners with job result and duration
Jobs
- Job execution timeline (Gantt-style)
- Job history table with filtering (by runner set, result, date range)
- Duration breakdown: queue wait → preparation → execution
Resources (relates to #17)
- CPU/memory usage charts over time
- Per-runner-set resource consumption
- Disk and network I/O
Configuration
- Current config (read-only, secrets redacted)
- Runner set labels and limits
- Image versions in use
- Live log tail from controller
- Per-job log viewer
Technical Considerations
- Embedded web server in the controller binary (no separate process)
- Static assets embedded via
embed.FS - Lightweight frontend (plain HTML + HTMX, or minimal React)
- WebSocket for live updates (runner state changes, log streaming)
- Optional: disable via
--no-dashboardflag - Auth: optional basic auth or token for remote access
Related
- chore: improve controller logging format and verbosity #15 (controller logging)
- feat: collect and forward runner job logs #16 (runner job logs)
- feat: track job execution history and resource consumption metrics #17 (job history and resource metrics)
Reactions are currently unavailable