Self-Hosted Deployment and Pricing
On-premise Terrateam on your infrastructure
Self-hosted covers deploying Terrateam to your own infrastructure with Docker. This solution is designed for:
1. Evaluating Terrateam on your own infrastructure (Free)
2. Deploying Terrateam to your own infrastructure for production use ($999/mo or $9,990/yr)
There is no license requirement for an on-premise evaluation. Just follow the instructions below to get started.
Terrateam without a license will expire after 30 days or 100 operations. Whichever comes first. If you need an evaluation extension, please reach out to firstname.lastname@example.org.
To deploy Terrateam to your own infrastructure for production use, a license key is required. A license key allows you to use Terrateam without restriction. If you need a fully supported on-premise version of Terrateam, reach out to email@example.com.
The following diagram shows an overview of the Terrateam architecture:
The Terrateam application server is horizontally scalable. You can run as many as you’d like as long as they all point to the same PostgreSQL database.
These instructions require you to run commands from a terminal.
1. Create a private Terrateam GitHub application
Terrateam Self-Hosted requires a new Terrateam GitHub application to be created.
Navigate to http://localhost:3000 and follow the setup instructions
2. Deploy the Terrateam server
The following deployment methods are supported:
GitHub Actions Workflow
Terrateam needs permission to access your cloud provider in order to make changes with the Terraform CLI.
Start using Terrateam
Create a Pull Request with a Terraform code change
- Create a pull request with a Terraform code change
- Terrateam will automatically run
terraform planand comment back the output
- Comment on the pull request with
terrateam applyto apply changes
- Merge the pull request
Learn how to fully customize your workflow with our configuration file.
You can customize the Terrateam server using environment variables.
Expand for environment variables
|Github application id
|Terrateam public-facing URL including a trailing
|Terrateam application server port
|GitHub application client id
|GitHub application client secret
|GitHub application PEM
|GitHub application webhook secret
|Telemetry level. Default
anonymous. Set to
disabled to disable telemetry.
|Infracost pricing API endpoint
|Self-hosted Infracost API key
|On startup, automatically update the GitHub application webhook URL. Default
|The GitHub base URL. Default
Listeners and endpoints
The Terrateam server listens on two ports:
- Nginx reverse proxy port 8080
- Terrateam application server port 8180
The following unauthenticated endpoints are included:
/health- Health check port 8080
/metrics- Prometheus metrics port 8180
/nginx_status- Nginx status port 8080
The Terrateam server sends cost estimation requests to the Cloud Pricing API
endpoint defined by the
variables. The Cloud Pricing API is an open-source service provided by Infracost and is easy to deploy.
If you prefer to use the public Infracost Pricing API, then set your Infracost API key as a GitHub Secret in your Terraform repository. See the Cost Estimation documentation for details.
Official Docker image registry path for the Terrateam server: ghcr.io/terrateamio/terrateam