# Terraform

> Infrastructure-as-code CLI that builds, changes, and versions infrastructure from declarative configuration files, using execution plans and a resource graph.

Stars: 50.1k · Language: Go · Categories: Dev Tools

- Repository: https://github.com/hashicorp/terraform
- Website: http://developer.hashicorp.com/terraform
- Page: https://www.trmn.sh/tools/terraform

## Overview

Terraform is an infrastructure-as-code command line tool from HashiCorp. Infrastructure is described in declarative configuration files using a high-level syntax, so a blueprint of a datacenter or service setup can be versioned, shared, reused, and reviewed like other code. It can manage existing, popular service providers as well as custom in-house solutions.

Before changing anything, Terraform runs a planning step that produces an execution plan showing what will happen when you call apply. It also builds a graph of all resources and parallelizes creation and modification of resources that do not depend on each other. The graph gives operators visibility into dependencies, and combined with the plan it lets complex changesets be applied with minimal human interaction in a known order.

This repository contains Terraform core only: the command line interface and the main graph engine. Providers are implemented as plugins, and Terraform can automatically download providers published on the Terraform Registry. HashiCorp develops some providers and other organizations develop the rest. The tool is aimed at DevOps engineers, SREs, and platform teams who manage infrastructure through version-controlled configuration. It is licensed under the Business Source License 1.1.

## Alternatives

- [lazydocker](https://www.trmn.sh/tools/lazydocker.md): Terminal UI for Docker and Docker Compose management with container logs, stats, and interactive controls (Go, 53.2k stars)
- [dive](https://www.trmn.sh/tools/dive.md): Docker image layer analysis tool for exploring contents and optimizing image size (Go, 54.7k stars)
- [mkcert](https://www.trmn.sh/tools/mkcert.md): Generate locally-trusted development certificates with automatic CA management for HTTPS testing (Go, 59.8k stars)
- [trivy](https://www.trmn.sh/tools/trivy.md): Security scanner that detects vulnerabilities, secrets, and misconfigurations in containers, filesystems, git repos, VMs, and Kubernetes (Go, 38.8k stars)
- [k9s](https://www.trmn.sh/tools/k9s.md): Terminal UI for managing and observing Kubernetes clusters with real-time monitoring and resource navigation (Go, 34.9k stars)

---

Canonical: https://www.trmn.sh/tools/terraform
