---
title: "Why deploy dashboards with Terraform? | Grafana Labs"
description: "Learn why Terraform is a natural fit for deploying dashboards alongside your existing infrastructure."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Why deploy dashboards with Terraform?

You already have a dashboard JSON file. You could import it manually through the Grafana UI, but that means every update requires a manual step, there’s no audit trail, and you can’t reproduce the deployment consistently.

Terraform solves this by treating dashboards as infrastructure:

- **State management.** Terraform tracks what’s deployed. It knows whether to create a new dashboard or update an existing one.
- **Plan before apply.** Preview exactly what will change before any modification touches your Grafana instance.
- **One tool for everything.** If your team already uses Terraform for servers, networks, or cloud resources, adding dashboards to the same workflow is natural.
- **Reproducible deployments.** The same `terraform apply` produces the same result every time, in every environment.
- **Audit trail.** Every deployment is tied to a Terraform state change, which you can track in version control.

## When Terraform is the right choice

Expand table

| Scenario                                         | Terraform fit                                              |
|--------------------------------------------------|------------------------------------------------------------|
| Team already uses Terraform for infrastructure   | Excellent. Same workflow, same tool.                       |
| Need plan-and-apply safety for dashboard changes | Excellent. Preview before deploy.                          |
| Want to deploy dashboards from CI/CD pipelines   | Excellent. Integrates with GitHub Actions, GitLab CI, etc. |
| Just need quick one-off dashboard sharing        | Consider manual import or Git Sync instead                 |

In the next milestone, you create a service account token that Terraform uses to authenticate to Grafana.
