Local Workflow Dashboard
When you're developing Dapr workflows and durable agents locally, you probably want to inspect the underlying workflow state and the historical execution data. For this you can use the Diagrid Dashboard. The dashboard runs locally as a container and is powered by the data stored in your local actor state store.

Download & run the Diagrid Dashboard
Prerequisites
- A local container runtime such as Docker Desktop or Podman Desktop.
Run the container
Depending on which state store you use, follow these instructions to download and run the dashboard.
- Redis
- Other state stores
If you use the default Redis state store that gets installed with the Dapr CLI, you download and run the Diagrid dashboard as follows:
docker run -p 8080:8080 ghcr.io/diagridio/diagrid-dashboard:latest
If you don't use the default Redis store for your Dapr workflows, but use Postgres or SQLite, you need to add a volume mapping that maps your local state store component file to a custom state component file inside the container, and specify the COMPONENT_FILE environment variable to point to that custom state component file:
- Bash
- PowerShell
docker run -p 8080:8080 \
-v ./RESOURCES_PATH/STATE_COMPONENT.yaml:/app/components/custom_state.yaml \
-e COMPONENT_FILE=/app/components/custom_state.yaml \
ghcr.io/diagridio/diagrid-dashboard:latest
Where ./RESOURCES_PATH/STATE_COMPONENT.yaml points to a local state store component file.
Example for a local ./resources/state_postgres.yaml state component:
docker run -p 8080:8080 \
-v ./resources/state_postgres.yaml:/app/components/custom_state.yaml \
-e COMPONENT_FILE=/app/components/custom_state.yaml \
ghcr.io/diagridio/diagrid-dashboard:latest
docker run -p 8080:8080 `
-v .\RESOURCES_PATH\STATE_COMPONENT.yaml:/app/components/custom_state.yaml `
-e COMPONENT_FILE=/app/components/custom_state.yaml `
ghcr.io/diagridio/diagrid-dashboard:latest
Where .\RESOURCES_PATH\STATE_COMPONENT.yaml points to a local state store component file.
Example for a local .\resources\state_postgres.yaml state component:
docker run -p 8080:8080 `
-v .\resources\state_postgres.yaml:/app/components/custom_state.yaml `
-e COMPONENT_FILE=/app/components/custom_state.yaml `
ghcr.io/diagridio/diagrid-dashboard:latest
The terminal will show some logging output including:
level=info msg="starting diagrid-dashboard restservice server on 0.0.0.0:8080
Once the container is running, open the Diagrid Dashboard in the browser at http://localhost:8080/.
Using the Diagrid Dashboard
Once the dashboard is running, start your Dapr workflow application as you normally would, via an IDE or via the Dapr CLI, and use the workflow management API to schedule a new workflow instance.
Once a workflow instance is running you will see it in the dashboard:

Click on the Instance ID of a workflow instance to drill down to inspect the workflow execution details, including input, output and historical data:

Expand workflow events in the Execution History table to see the details of that workflow step:

Update the dashboard
Update the Diagrid dashboard image by running:
docker image pull ghcr.io/diagridio/diagrid-dashboard:latest
Limitations
- Currently, the Diagrid Dashboard only supports the following local state stores:
- Redis (automatic connection)
- Postgres (manual configuration)
- SQLite (manual configuration)
- This dashboard is intended for local use only. If you need workflow insights for other environments use Catalyst.
Troubleshooting
-
If you get a
Error response from daemon: Head "https://ghcr.io/v2/diagridio/diagrid-dashboard/manifests/latest": denied: deniederror, logout of theghcr.ioregistry usingdocker logout ghcr.io, and try thedocker runcommand again. -
If you get a
panic: failed to ping the database: failed to connect to...error, please check the connection string in the state store component. Try changing it fromlocalhosttohost.docker.internal.
Feedback
We love to hear about your experience using the Diagrid Dashboard! Please join our Discord server and share your feedback.