Skip to content

feat: web UI dashboard for monitoring and management #18

@STRRL

Description

@STRRL

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

Logs (relates to #15, #16)

  • 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-dashboard flag
  • Auth: optional basic auth or token for remote access

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions