Ignition
Guides

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 dashboard

The dashboard starts on 127.0.0.1:9090 by default. Specify a custom address:

ignition dashboard --host 0.0.0.0 --port 8080

Open 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 @web

To report to a non-default endpoint, point run at the dashboard explicitly:

ignition run deploy.ts @web --dashboard-host dashboard.internal --dashboard-port 8080

If no dashboard server responds at the configured address, the run proceeds normally without dashboard streaming.

REST API

The dashboard server exposes a REST API:

EndpointDescription
GET /api/healthHealth check ({ status: "ok" })
GET /api/runsList run summaries (active + history)
GET /api/runs/:runId/eventsFull event replay for a specific run
GET /api/eventsEvents for the current/latest run

WebSocket endpoints

EndpointDirectionDescription
/wsServer → ClientBrowser consumers receive broadcast events
/ws/pushClient → ServerCLI 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 20 on ignition 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 IgnitionConfig

Dashboard 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:ui

Open 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.

On this page