Atlantis
By the Atlantis open-source project
Atlantis is an open-source, self-hosted tool that automates Terraform plan and apply workflows through comments on pull requests, letting teams review and approve infrastructure changes using the same Git-based review process they use for…
Definition
Atlantis is an open-source, self-hosted tool that automates Terraform plan and apply workflows through comments on pull requests, letting teams review and approve infrastructure changes using the same Git-based review process they use for application code. It runs as a service that listens for pull request webhooks, executes Terraform commands in response to comments, and posts the results back to the pull request for review before an apply is triggered. DevOps teams use it to add GitOps-style guardrails to Terraform without adopting a paid platform.
Overview
Atlantis was created to solve a common Terraform workflow problem: running `terraform plan` and `terraform apply` locally means a reviewer cannot easily see the exact plan output that will be applied, and coordinating who runs apply and when is often handled informally through chat messages or tribal knowledge. Atlantis moves that workflow into the pull request itself, where the plan output is visible to every reviewer alongside the code diff that produced it. Mechanically, Atlantis runs as a self-hosted server connected to a webhook from a Git hosting platform such as GitHub, GitLab, or Bitbucket. When a pull request touching Terraform code is opened, Atlantis automatically runs `terraform plan` and posts the output as a comment; reviewers examine both the code change and the plan, and once satisfied, a team member comments `atlantis apply` to trigger the actual apply, with the pull request serving as an audit trail of who approved what and when. Atlantis supports locking so that only one plan or apply runs against a given Terraform working directory at a time, preventing concurrent changes from corrupting state. Compared to managed platforms like Spacelift or env0, Atlantis is free, open-source, and self-hosted, giving teams full control over where it runs and no per-seat licensing cost, but it also means the team is responsible for deploying, scaling, and securing the Atlantis server themselves, and it lacks the built-in policy engines, drift detection, and cost estimation those commercial platforms provide out of the box. Atlantis is deliberately narrower in scope, focused specifically on the plan-comment-apply loop around pull requests. In practice, Atlantis is popular with teams that already have strong DevOps capability and want GitOps-style Terraform review without paying for a managed platform, often layering custom policy checks via `conftest` or Open Policy Agent as a pre-apply hook themselves. It is commonly deployed as a small internal service reachable from the Git provider's webhook infrastructure, sometimes on Kubernetes alongside other DevOps tooling. Limitations include the operational burden of running and securing the Atlantis server, since it needs credentials to apply infrastructure changes and must be reachable by the Git provider's webhooks, and the lack of built-in enterprise features like formal policy engines or automatic environment expiration found in Spacelift or env0. Teams wanting those features without building them internally typically choose a managed platform instead. Atlantis configuration lives in a repository-level file that defines which directories map to which Terraform workspaces and what commands run for each, giving teams fine-grained control over multi-project repositories without needing a separate configuration UI. Because it is just a server process, teams can also run multiple Atlantis instances for different environments or trust boundaries, which is a common pattern for separating production infrastructure changes from lower environments.
Key Features
- Runs Terraform plan and apply in response to pull request comments
- Posts plan output directly into the pull request for review
- Locks Terraform working directories to prevent concurrent runs
- Integrates with GitHub, GitLab, and Bitbucket webhooks
- Is free and open-source with no per-seat licensing
- Requires self-hosting and operational management by the team
- Supports custom pre-apply policy checks via external tools
- Provides an auditable trail of approvals within pull requests