The DevHelm Terraform provider lets you manage your monitoring stack — monitors, alert channels, status pages, secrets, and more — declaratively alongside your cloud infrastructure. The provider is published on the Terraform Registry asDocumentation Index
Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt
Use this file to discover all available pages before exploring further.
devhelmhq/devhelm.
Install
Pre-release pin required. The provider currently ships only as pre-release versions, and Terraform’s
~> operator never selects pre-releases. Pin the exact version above (0.2.0-beta.4 is the latest published tag); bump it explicitly when the next version ships, or wait for the GA 1.0.0 cut to switch to a range like ~> 1.0. Latest version is on the Registry overview page.| Attribute | Env var | Default | Description |
|---|---|---|---|
token | DEVHELM_API_TOKEN | — | Required. Create at app.devhelm.io/settings/tokens. Sensitive. |
base_url | DEVHELM_API_URL | https://api.devhelm.io | API endpoint |
org_id | DEVHELM_ORG_ID | 1 | Organization ID (multi-org tokens only) |
workspace_id | DEVHELM_WORKSPACE_ID | 1 | Workspace ID (multi-workspace tokens only) |
Available resources
| Resource | Purpose |
|---|---|
devhelm_monitor | HTTP, DNS, TCP, ICMP, Heartbeat, MCP Server monitors |
devhelm_alert_channel | Slack, Email, PagerDuty, OpsGenie, Discord, Teams, Webhook |
devhelm_notification_policy | Routing rules from monitors → channels |
devhelm_webhook | Outbound webhook subscriptions for platform events |
devhelm_secret | Vault secrets referenced by monitor auth and config |
devhelm_environment | Per-environment variable scopes (production, staging, …) |
devhelm_tag | Tags for filtering and grouping |
devhelm_resource_group | Service / team groupings |
devhelm_resource_group_membership | Add a user to a resource group |
devhelm_dependency | Track third-party SaaS components (GitHub, Stripe, …) |
devhelm_status_page | Public or private status pages |
devhelm_status_page_component | Components shown on a status page |
devhelm_status_page_component_group | Group components into sections |
devhelm_status_page_custom_domain | Custom domain attached to a status page |
devhelm_status_page_custom_domain_verification | DNS / TLS verification record |
Available data sources
devhelm_monitor, devhelm_alert_channel, devhelm_environment, devhelm_resource_group, devhelm_status_page, devhelm_tag. See Data sources.
Quick example
config and assertions[].config are JSON strings (not HCL blocks). Use jsonencode({...}) and camelCase field names — they map directly to the API wire format (thresholdMs, verifyTls, expectedInterval, …). The provider validates the payload against the generated schema at plan time, so unknown fields fail fast.Import existing resources
Every resource supportsterraform import. Most are imported by their human-readable name or slug:
When to use Terraform vs YAML
| Use case | Recommended tool |
|---|---|
| Monitors managed alongside cloud infra (AWS, GCP, etc.) | Terraform provider |
| Standalone monitoring config, fast iteration | devhelm.yml + CLI |
| CI/CD with GitHub Action | devhelm.yml + setup-devhelm action |
| Mixed infra — some Terraform, some standalone | Use both (avoid managing the same resource in both) |
Next steps
Terraform monitors
Full devhelm_monitor resource reference.
Alert channels
Channel-type-specific arguments.
Importing resources
Import existing resources into Terraform state.
Terraform in CI/CD
Automate Terraform plans and applies in CI.