v0.0.8
Diagrid Dev Dashboard
A local dashboard for Dapr developers that offers a live view of everything Dapr running on your machine, plus guided builders for authoring Dapr component and resiliency YAML. This is a big follow-up to v0.0.7 that turns the dashboard from read-only into a control panel: you can now start, stop, and restart your apps and their Dapr sidecars right from the detail page, the health you see is health you can trust (no more "healthy" while the app is actually dead), and the whole UI has been re-skinned to the Catalyst brand.
What's new
🎛️ Start, stop & restart from the dashboard
- The app detail page now has Start / Stop / Restart controls for the application, its Dapr sidecar, and the whole instance — across all three discovery sources.
dapr runapps: their launch commands are snapshotted before signalling, so a stopped app stays on the dashboard with a working Start/Restart (SIGTERM→SIGKILL escalation on stop). Whole-instance stop targets the dapr CLI, just likedapr stop.- Docker Compose:
docker start|stop|restarton the app and sidecar containers; the compose scan now usesdocker ps -aso stopped containers stay visible with astoppedstatus. - Aspire: Stop only, with a "restart it from the Aspire dashboard" hint, so the dashboard doesn't fight the orchestrator.
- Each panel shows a live-ticking Uptime row (resets to
—when stopped), with confirm-before-action and error toasts.
❤️🩹 Health you can trust
appStatusis now truthful: discovery verifies the reported app PID (and falls back to a fast TCP dial on the app port) instead of trusting stale metadata — so a dead app no longer shows as healthy.- Externally killed
dapr runinstances are detected correctly, and dead CLI PIDs are cleared so signals never land on a stale or reused PID. - The Applications list and detail header share a single combined health state — green
healthy, amberapp down/orphaned(with explanatory tooltips), redunhealthy, greystopped— and the stat cards (Healthy / Starting / Unhealthy) count that state, so an amber row no longer inflates Healthy.
🛟 Orphan detection & safe cleanup
- A standalone Dapr sidecar left running with no supervising CLI and no live app is now flagged as orphaned, with a banner and a safe Stop-only action (start/restart are rejected — a bare daprd can't be resurrected).
- Sidecar Stop/Restart for
dapr runapps funnel to the whole instance, so the dashboard can no longer create an orphan by restarting daprd outside the CLI's supervision.
🧭 No more dead ends after lifecycle actions
- Stopping just the app is now fully recoverable — the whole-instance Start re-runs the original
dapr run. - The "App not found" flash after Start is gone; the stopped row is cleaned up only once discovery sees the app again.
- "Remove from list" clears leftover ghosts (stopped standalone and Aspire instances) via a new
DELETE /api/apps/{key}, then returns to the overview. - A "← Back to applications" link on the detail 404 softens every dead-app path.
🎨 Catalyst brand styling
- Typography and accents realigned to the Catalyst product identity — Public Sans self-hosted (bundled, works offline), green-tinted dark surfaces, and a bright-mint accent unified across light and dark themes.
- A clear primary-action hierarchy: affirmative actions (Save, Save connection, wizard Continue/Finish, the New component / New resiliency policy / Add connection CTAs) are promoted to the bright primary button; Disconnect uses the danger outline.
⬆️ Interactive update on start-up
- The dashboard now checks for a newer release on start-up and offers an interactive update, with a link to the terminal output and to the release.
🧹 Housekeeping
- No stray
INFOlog at start-up. - Fixed the AppID / container-name swap for Docker Compose apps and the "update available" link.
Install & run
One-liner (macOS / Linux):
curl -sSL https://raw.githubusercontent.com/diagridio/dev-dashboard/main/scripts/install.sh | shWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/diagridio/dev-dashboard/main/scripts/install.ps1 | iexWith Go (≥ 1.26):
go install github.com/diagridio/dev-dashboard@v0.0.8Run:
dev-dashboard # serves http://localhost:9090 and opens your browserSingle self-contained binary — the React frontend is embedded via go:embed, so there are no runtime dependencies. Prebuilt archives for macOS and Linux (amd64 + arm64) and Windows (amd64) are attached below.