An open API service indexing awesome lists of open source software.

https://github.com/terralist/terralist

Terraform Private Registry for modules and providers manageable from a REST API
https://github.com/terralist/terralist

private-registry registry terraform terraform-login terraform-module terraform-provider

Last synced: 26 days ago
JSON representation

Terraform Private Registry for modules and providers manageable from a REST API

Awesome Lists containing this project

README

          


Terralist Logo

Terralist


A private Terraform/OpenTofu registry for modules and providers


---

[![Latest Release](https://img.shields.io/github/release/terralist/terralist.svg)](https://github.com/terralist/terralist/releases/latest) [![CI](https://github.com/terralist/terralist/actions/workflows/test.yml/badge.svg)](https://github.com/terralist/terralist/actions/workflows/test.yml) [![Go Version](https://img.shields.io/github/go-mod/go-version/terralist/terralist)](https://go.dev/) [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)

Terralist implements the [Terraform registry protocols](https://developer.hashicorp.com/terraform/internals/module-registry-protocol) and gives you a private, self-hosted registry with a web dashboard, RBAC, and support for multiple storage backends.

## Features

- **Private module and provider registry**: upload, version, and distribute Terraform/OpenTofu modules and providers within your organization
- **Web dashboard**: browse artifacts, view documentation, and manage authorities and API keys
- **RBAC**: fine-grained access control with built-in roles (`admin`, `readonly`, `anonymous`) and custom policies via [Casbin](https://casbin.org/)
- **Multiple OAuth providers**: authenticate via GitHub, GitLab, BitBucket, or any OIDC-compatible provider
- **API keys with scoped policies**: create API keys for CI/CD with per-key RBAC policies and organizational scopes
- **Storage backends**: store artifacts in AWS S3, Azure Blob, Google Cloud Storage, local filesystem, or proxy mode
- **Prometheus metrics**: monitor uploads, downloads, API key usage, storage operations, and HTTP request latency
- **Single binary**: no external dependencies, runs anywhere Go compiles to

## Quick start

```bash
# Download the latest release
curl -sL "https://github.com/terralist/terralist/releases/latest/download/terralist_$(go env GOOS)_$(go env GOARCH).zip" -o terralist.zip
unzip terralist.zip

# Create a minimal config
cat > config.yaml <