Dashboard
Real-time web dashboard for monitoring automation runs.
Ignition includes a web dashboard server that serves the dashboard UI and receives lifecycle events
from ignition run.
What the dashboard shows
- Run status (in progress, completed, failed)
- Per-host progress with resource-level detail
- Resource statuses (ok, changed, failed) with timing
- Streaming command output
- Multi-run history with replay
Starting the dashboard
Start the long-running dashboard server:
ignition dashboardThe dashboard starts on 127.0.0.1:9090 by default. Specify a custom address:
ignition dashboard --host 0.0.0.0 --port 8080Open the printed URL in your browser.
When the dashboard is running on the default address (127.0.0.1:9090), ignition run
automatically detects it and streams lifecycle events to it.
Streaming a run
For the default local setup, start the dashboard in one terminal and run a recipe in another:
# Terminal 1
ignition dashboard
# Terminal 2
ignition run deploy.ts @webTo report to a non-default endpoint, point run at the dashboard explicitly:
ignition run deploy.ts @web --dashboard-host dashboard.internal --dashboard-port 8080If no dashboard server responds at the configured address, the run proceeds normally without dashboard streaming.
REST API
The dashboard server exposes a REST API:
| Endpoint | Description |
|---|---|
GET /api/health | Health check ({ status: "ok" }) |
GET /api/runs | List run summaries (active + history) |
GET /api/runs/:runId/events | Full event replay for a specific run |
GET /api/events | Events for the current/latest run |
WebSocket endpoints
| Endpoint | Direction | Description |
|---|---|---|
/ws | Server → Client | Browser consumers receive broadcast events |
/ws/push | Client → Server | CLI runs and other producers push lifecycle events |
Browser clients connecting to /ws receive a replay of the latest run, then live events as they
arrive.
Run history
The persistent dashboard keeps a bounded history of runs:
- Default: 10 runs retained
- Configure with
--max-history 20onignition dashboard - Each run stores up to 10,000 events
- When the buffer is full, output chunk events are dropped first to preserve lifecycle events
Browse historical runs through the dashboard sidebar and replay them.
Configuration
Use ignition dashboard flags such as --host, --port, and --max-history to configure the
dashboard server itself.
Use dashboardHost and dashboardPort in ignition.config.ts to configure where ignition run
reports events by default:
import type { IgnitionConfig } from "@grovemotorco/ignition"
export default {
dashboardHost: "127.0.0.1",
dashboardPort: 9090,
} satisfies IgnitionConfigDashboard development
For working on the dashboard UI itself:
# Terminal 1 — mock dashboard server with synthetic events
bun run dev:dashboard
# Terminal 2 — dashboard UI dev server with HMR
bun run dev:uiOpen http://localhost:5173 to develop the dashboard UI with hot module replacement. The Vite dev server proxies /ws and /api requests to the mock backend.