# Awesome OpenTofu

> A curated and collaborative list of awesome OpenTofu resources and tools.

OpenTofu lets you declaratively manage your infrastructure. It’s an open-source and community-driven alternative to Terraform.

## Contents

- Official
- Community
- Features
- Tools
  - Environment managers
  - Wrappers
  - CI
  - Tests
  - State
  - Providers
  - Platforms
  - Registry
  - Helpers
- Learning
- Media
- Podcasts

## Official

- OpenTofu repository 🎉
- Fork announcement
- Official registry
- Weekly updates
- Office hours
- Technical Steering Committee updates

## Community

Communication channels, meetups, newsletters and forums.

- OpenTofu GitHub Discussion
- OpenTofu LinkedIn
- OpenTofu Slack
- OpenTofu Twitter

## Features

- End-to-end encryption for state files 🚧
- OCI-compliant registry support 🚧
- Provider-defined functions 🚧

## Tools

### Environment managers

- arkade - CLI and Kubernetes app installer.
- asdf-opentofu - OpenTofu plugin for asdf version manager.
- tenv - Terraform and OpenTofu version manager written in Go.
- tfswitcher - Terraform and OpenTofu version switcher written in Rust.
- tofuenv - OpenTofu version manager inspired by tfenv.

### Wrappers

Simplify your OpenTofu workflows with a thin wrapper.

- Atmos - Orchestration tool that keeps environment configuration DRY.
- Terragrunt - Keep your configurations DRY, work with multiple modules, and manage remote state.
- Terramate - Automation, orchestration and code generation for OpenTofu, Terraform, Kubernetes, and others.
- easy_infra - Docker container to simplify and secure the use of infrastructure as code.
- tf - Less verbose and more friendly command outputs.
- tfam - Rust-powered wrapper for concurrent Terraform/OpenTofu apply, enabling multi-deployment support.
- tfexe - Rust-powered wrapper for seamless execution of tfswitch and Terraform/OpenTofu with version control.
- tfwrapper - Python wrapper that aims to simplify OpenTofu usage and enforce best practices.

### CI

- pre-commit-opentofu - Git pre-commit hooks plugin.
- setup-opentofu - Set up OpenTofu CLI in your GitHub Actions workflow.
- terraform-github-actions - GitHub Actions for OpenTofu.
- tf-via-pr-comments - GitHub Action to run Terraform or OpenTofu CLI commands via PR comments.
- tofu-controller - GitOps OpenTofu and Terraform controller for Flux.

### Tests

- Terratest - Go library that makes it easier to write automated tests for your infrastructure code.

### State

Analyze and manipulate OpenTofu’s state.

- tfmigrate - State migration tool.

### Providers

Inspect and interact with OpenTofu providers.

- tfschema - Schema inspector for providers.

### Platforms

Alternatives to Terraform Cloud.

- digger - Open-source IaC orchestration tool. Digger allows you to run IaC in your existing CI pipeline.
- terrakube - Open-source platform with private registry, remote state, custom flows, scheduled workspaces, and visual states.
- tofutf - Open-source alternative to Terraform Enterprise with SSO, team management, agents, etc.
- walrus - Walrus is an open-source application management platform based on IaC tools including OpenTofu, Terraform and others.

### Registry

- boring-registry - Boring-registry is an open-source module and provider registry compatible with OpenTofu.
- hermitcrab - Registry network mirroring service compatible with OpenTofu.
- terrac - Minimal private module registry compatible with OpenTofu.
- GitLab Module Registry - Use GitLab projects as a private registry for terraform modules.
- terralist - Private registry for providers and modules.
- citizen - Private registry for modules and providers with support for multiple databases and storages.
- petra - Private registry manager using Google Cloud Storage.
- tapir - Private registry for modules and providers with an UI.
- terraform-registry - Modules registry with authentication and support for multiple backends.
- terrareg - Open-source modules registry with UI, optional Git integration and deep analysis.
- terustry - Proxy registry for providers.

### Helpers

- terratag - CLI tool allowing for tags or labels to be applied across an entire set of OpenTofu/Terraform files.

## Learning

- OpenTofu Course - Interactive tutorials.
- Terraform in Depth - Book with OpenTofu sections.
- Infrastructure automation with OpenTofu - Learn infrastructure provisioning with lectures, quizzes, hands-on demos and coding exercises.

## Media

- OSS EU 2023 - Announcement
- OSS EU 2023 - Project Overview
- Code To Cloud - Getting Started With OpenTofu
- CNCF - OpenTofu Day 2024

## Podcasts

- TheIaCPodcast - Expert Panel on OpenTofu GA Release, Licensing, and OSS Future
- Contributor - Community-Driven IaC
- Ned in the Cloud - IaC Live Stream
- Arrested DevOps - What’s Up With Open Terraform?
- OpenObservability - Terraform is no longer open source. Is OpenTF the successor?
- TheCloudGambit - The Future of OpenTF
- Oxide and Friends - Fork in the road for Terraform?
- Changelog - OpenTF for an open Terraform