<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb" -->

---
title: How to Integrate Terraform with Backstage for Self-Service
description: Backstage, the open-source IDP framework originally built at Spotify, can be wired to Terraform to give developers self-service infrastructure without touching...
canonical: https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to Integrate Terraform with Backstage for Self-Service | daily.dev
og:description: Backstage, the open-source IDP framework originally built at Spotify, can be wired to Terraform to give developers self-service infrastructure without touching...
og:url: https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb
og:image: https://api.daily.dev/og/posts/5tYevrYqb.png
og:image:alt: How to Integrate Terraform with Backstage for Self-Service
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Integrate Terraform with Backstage for Self-Service

**[Spacelift](https://daily.dev/sources/spacelift)** · 20 min read · 0 upvotes · 0 comments

## Summary

Backstage, the open-source IDP framework originally built at Spotify, can be wired to Terraform to give developers self-service infrastructure without touching Terraform code directly. Backstage never runs Terraform itself: it collects a request through a software template form, generates Terraform from a reviewed skeleton, opens a pull request, and registers the result in its software catalog. Resource entities visualize stacks and their ownership, while plugins like the Spacelift one list stacks and trigger runs from the portal. A third-party Terraform provider, datolabs-io/backstage, can also manage Backstage itself. The guide walks through installing Backstage locally with `npx @backstage/create-app@latest`, configuring groups, systems, and templates in YAML, and installing the Spacelift frontend and backend plugins.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://spacelift.io/blog/terraform-backstage>

## Questions this post answers

### Can Backstage execute Terraform directly or does it need something else to run it?

Backstage cannot execute Terraform itself. It only collects the request through a form or template and hands execution off to an external system such as a CI/CD pipeline, Terraform Cloud, or a platform like Spacelift using plugins or scaffolder actions. State also remains with whatever backend handles execution, not with Backstage.

_daily.dev surfaces integration guides like this for teams wiring Terraform into a developer portal._

### How do I give developers self-service Terraform provisioning without giving them raw Terraform access?

Build a Backstage software template that renders a form, generates Terraform code from a reviewed skeleton directory using fetch:template, publishes it to a GitHub repository via publish:github, and registers the result in the Backstage catalog with catalog:register. This keeps module defaults and code review with the platform team while developers just fill in a form.

_daily.dev helps platform engineers compare self-service IaC patterns like this one before building their own._

### Is there a Terraform provider for managing Backstage configuration as code?

Yes, a third-party provider named datolabs-io/backstage is available in the Terraform registry (version 3.3.0), since there is no official provider from Spotify. It configures against the Backstage backend URL, typically port 7007, with an authentication header, and currently exposes a single resource, backstage_location, for registering entity-definition locations.

_daily.dev keeps IaC practitioners current on niche providers like this one before they commit to a toolchain._

## Similar posts on daily.dev

- [Spacelift vs Internal Developer Platforms \(IDPs\)](https://daily.dev/posts/spacelift-vs-internal-developer-platforms-idps--9dwzdshiv) · Spacelift · 0 upvotes · 0 comments
- [Terraform Is the Wrong Tool for Building Developer Platforms](https://daily.dev/posts/terraform-is-the-wrong-tool-for-building-developer-platforms-pwozf85ky) · codecentric · 4 upvotes · 0 comments
- [How to Build an Internal Developer Platform: A Complete Guide to Backstage, ArgoCD, and Crossplane](https://daily.dev/posts/how-to-build-an-internal-developer-platform-a-complete-guide-to-backstage-argocd-and-crossplane-tpjbns5y8) · freeCodeCamp · 3 upvotes · 0 comments
- [Building a state-of-the-art development platform with Backstage](https://daily.dev/posts/building-a-state-of-the-art-development-platform-with-backstage-1ljnqwwx3) · InfoWorld · 1 upvotes · 0 comments

---

Tags: [#terraform](https://daily.dev/tags/terraform), [#iac](https://daily.dev/tags/iac), [#internal-developer-platform](https://daily.dev/tags/internal-developer-platform), [#spacelift](https://daily.dev/tags/spacelift)

[View this post on daily.dev](https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to Integrate Terraform with Backstage for Self-Service","url":"https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb"},"datePublished":"2026-10-27T15:31:30.183Z","dateModified":"2026-10-27T15:49:41.077Z","description":"Backstage, the open-source IDP framework originally built at Spotify, can be wired to Terraform to give developers self-service infrastructure without touching...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e34ee9e633f22a50551e331cc0dc10bc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e34ee9e633f22a50551e331cc0dc10bc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Spacelift","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Spacelift","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/422b4004f7b24dc988e5720eca3accfc","url":"https://daily.dev/sources/spacelift"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"terraform,iac,internal-developer-platform,spacelift","timeRequired":"PT20M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Spacelift","item":"https://daily.dev/sources/spacelift"},{"@type":"ListItem","position":3,"name":"How to Integrate Terraform with Backstage for Self-Service"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-integrate-terraform-with-backstage-for-self-service-5tyevryqb#faq","mainEntity":[{"@type":"Question","name":"Can Backstage execute Terraform directly or does it need something else to run it?","acceptedAnswer":{"@type":"Answer","text":"Backstage cannot execute Terraform itself. It only collects the request through a form or template and hands execution off to an external system such as a CI/CD pipeline, Terraform Cloud, or a platform like Spacelift using plugins or scaffolder actions. State also remains with whatever backend handles execution, not with Backstage. daily.dev surfaces integration guides like this for teams wiring Terraform into a developer portal."}},{"@type":"Question","name":"How do I give developers self-service Terraform provisioning without giving them raw Terraform access?","acceptedAnswer":{"@type":"Answer","text":"Build a Backstage software template that renders a form, generates Terraform code from a reviewed skeleton directory using fetch:template, publishes it to a GitHub repository via publish:github, and registers the result in the Backstage catalog with catalog:register. This keeps module defaults and code review with the platform team while developers just fill in a form. daily.dev helps platform engineers compare self-service IaC patterns like this one before building their own."}},{"@type":"Question","name":"Is there a Terraform provider for managing Backstage configuration as code?","acceptedAnswer":{"@type":"Answer","text":"Yes, a third-party provider named datolabs-io/backstage is available in the Terraform registry (version 3.3.0), since there is no official provider from Spotify. It configures against the Backstage backend URL, typically port 7007, with an authentication header, and currently exposes a single resource, backstage_location, for registering entity-definition locations. daily.dev keeps IaC practitioners current on niche providers like this one before they commit to a toolchain."}}]}
```

