Terrantula is the fleet layer for Terraform. When you run the same Terraform a hundred times — per-customer stacks, per-region cells, per-PR ephemeral environments — the individual resources stop mattering and the population becomes the problem. Terrantula sits on top of whatever runs your Terraform today (Terraform Cloud, Atmos, Atlantis, or plain GitHub Actions with state in S3) and adds typed entities with lifecycle, cell placement with capacity limits, relationships with cardinality, and Actions that change your IaC by opening pull requests.
Terraform names your pets. Terrantula herds your cattle.
This section is a deliberate staircase: concepts before commands, then a guided build, then hands-on tutorials. But you don't have to start at step one — the persona router below lets you jump in at the problem you actually have.
Everything in the Learn staircase rests on four ideas. You'll meet them in depth in Core Concepts; here they are in one breath:
dependsOn, placedIn) with enforced cardinality. Those relationships define the order in which work cascades across the fleet — upstream entities settle before their dependents proceed.terraform apply. Actions open PRs against your IaC repo; your existing CI applies on merge.These hold across every substrate and every persona. Terrantula is Apache 2.0 and self-hostable end-to-end — the whole cattle wedge runs with zero SaaS dependencies.
Where are you with your Terraform fleet? Pick the card that sounds like your week.
OnboardTenant cascade that opens the right PRs in the right order.Build the model → Learn Terrantula, then Your First Fleet →Self-host pathSamYou're OSS-first with a hard no-SaaS constraint — Atmos plus self-hosted CI, nothing you have to subscribe to. The whole cattle wedge has to run on your own infrastructure. It does: Atmos is a peer substrate, and the backend is Apache 2.0.Stay self-hosted → the Atmos on-ramp, then self-hosting →Not sure which persona fits? The personas overlap on purpose — start with Riley's visibility on-ramp. Every path begins by importing your existing Terraform state and getting a read-only graph; you can climb toward the cattle wedge whenever the population becomes the problem. See Use-cases for the full persona breakdown, and Multi-tenancy & self-hostingfor the no-SaaS, run-it-yourself path.
When you're ready to do it rather than read about it:
terrantula import terraform your existing state, then terrantula dashboard for a working graph view. No signup, no server, no Docker. (Start here.)The sidebar lays out the complete zero-to-competent path. In order: