Install the CLI first — it's all you need for the first five minutes. Self-hosting the backend is optional and comes later.
Or with npm:
Bun is required at runtime. The binary's shebang is #!/usr/bin/env bun — if you don't already have it, install Bun from bun.sh first.
The CLI runs in local mode out of the box. Point it at a Terraform state file and open a dashboard — everything is stored in a local SQLite database, nothing leaves your machine:
That's the whole first-five-minutes loop. For a step-by-step walkthrough — including the built-in starter configs that map AWS/Kubernetes resources to entity types — follow the Quick Start.
When you're ready for multiple users, orgs, or production use, the CLI talks to a Terrantula API server. Authenticate once:
Credentials are saved to ~/.config/terrantula/config.json (permissions 600) and used automatically afterward. You can also drive the CLI from env vars in CI:
The full flag matrix, auth model, and config-file format live in the CLI reference → Install & Authenticate.
The Terrantula backend is Apache 2.0 and self-hostable end-to-end — the cattle wedge runs with zero SaaS dependencies. You bring your own Postgres; Terrantula owns the fleet layer above your Terraform.
| Path | What runs | Guide |
|---|---|---|
| Kubernetes (Helm) | API + Worker as Bun processes, pg-boss (Postgres-native) queue — no extra infrastructure | Deploy on Kubernetes |
| Local development | API + Worker against a local Postgres | See the repo README |
At minimum you'll set a DATABASE_URL (Postgres 14+) and an ENCRYPTION_KEY (used to encrypt third-party credentials at rest). The deployment guide walks through the full configuration.
Hosted option. If you'd rather not operate Postgres — or you want managed multi-tenancy, SSO/OIDC, and audit out of the box — there's a hosted offering. It adds routes; it doesn't fork the OSS API. The self-hosted path is never second-class: no cattle-wedge feature is gated behind a paywall.