Install

Install the CLI first — it's all you need for the first five minutes. Self-hosting the backend is optional and comes later.

Install the CLI

bun install -g @terrantula/cli

Or with npm:

npm install -g @terrantula/cli

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.

Verify

terrantula --version
terrantula --help

Try it — no server, no signup

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:

terrantula import terraform --state ./terraform.tfstate --config terrantula.yaml
terrantula dashboard

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.

Connect to a server (remote mode)

When you're ready for multiple users, orgs, or production use, the CLI talks to a Terrantula API server. Authenticate once:

terrantula login --base-url https://api.example.com --token terr_xxxxxxxx

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:

export TERRANTULA_BASE_URL=https://api.example.com
export TERRANTULA_TOKEN=terr_xxxxxxxx

The full flag matrix, auth model, and config-file format live in the CLI reference → Install & Authenticate.

Self-host the backend

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.

PathWhat runsGuide
Kubernetes (Helm)API + Worker as Bun processes, pg-boss (Postgres-native) queue — no extra infrastructureDeploy on Kubernetes
Local developmentAPI + Worker against a local PostgresSee 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.

Next steps