Ecosyste.ms: Awesome
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: 20 days ago
JSON representation
Terraform Private Registry for modules and providers manageable from a REST API
- Host: GitHub
- URL: https://github.com/terralist/terralist
- Owner: terralist
- License: mpl-2.0
- Created: 2022-01-03T08:11:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-17T14:48:06.000Z (24 days ago)
- Last Synced: 2024-06-20T00:59:48.025Z (22 days ago)
- Topics: private-registry, registry, terraform, terraform-login, terraform-module, terraform-provider
- Language: Go
- Homepage:
- Size: 833 KB
- Stars: 293
- Watchers: 10
- Forks: 23
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-opentofu - terralist - Private registry for providers and modules. (Tools / Registry)
- trackawesomelist - terralist (⭐265) - Private registry for providers and modules. (Recently Updated / [Mar 02, 2024](/content/2024/03/02/README.md))
- awesome-tf - terralist - Terraform Private Registry for modules and providers manageable from a REST API. (Self-Hosted Registries / Miscellaneous)
README
# Terralist
[![Latest Release](https://img.shields.io/github/release/terralist/terralist.svg)](https://github.com/terralist/terralist/releases/latest)
![]()
A truly private Terraform registry## About
Terralist is a private Terraform registry for providers and modules following the published HashiCorp protocols. It provides:
* A secure way to distribute your confidential modules and providers;
* [_Soon_] A management interface to visualize documentation;## Highlights
* **Login Functionality** ([docs](https://www.terraform.io/docs/internals/login-protocol.html)): Require a token to access the data. It is integrated with Terraform, so you can authenticate to the registry directly through Terraform:
```
$ terraform login registry.example.com
$ terraform logout registry.example.com
```
It can also generate custom API keys for an authenticated user, which can be used in pipelines: to upload and delete modules and providers, to fetch data.* **Modules Registry**: ([docs](https://www.terraform.io/docs/internals/module-registry-protocol.html)) Stores modules data in a *private* storage (for example, an S3 bucket). When download request is received, calls the remote storage to generate a temporary public download URL and forwards the URL to the requester.
Currently supported private storage:
* AWS S3: uses a private S3 bucket
* Azure Blob: uses a private Azure Storage Account
* Proxy: forwards the URL received at creation* **Provider Registry**: ([docs](https://www.terraform.io/docs/internals/provider-registry-protocol.html)) Similar with modules registry.
Currently supported private storage:
* AWS S3: uses a private S3 bucket
* Azure Blob: uses a private Azure Storage Account
* Proxy: forwards the URL received at creation_Note_: For _Proxy_ storage mode, the URL management is up to you. If, for example, you are providing a git URL, then the same URL will be forwarded to the requester (Terraform).
_Note_: Terralist uses the same library Terraform uses to make downloads ([go-getter](https://github.com/hashicorp/go-getter)), meaning that you can still use your [favorite protocols](https://github.com/hashicorp/go-getter#supported-protocols-and-detectors) while using Terralist. This is also an advantage for the _Proxy_ mode users, which can use the same source that they would normally put in Terraform.
## Disclaimer
This project is not meant to replace the public Terraform Registry. Its purpose is to mimic the public registry in a private environment.
## Documentation
+ [Getting Started](./docs/GETTING-STARTED.md)
+ [Configuration](./docs/CONFIGURATION.md)
+ [Local Testing](./docs/LOCAL-TESTING.md)
+ [API Endpoints](./docs/ENDPOINTS.md)## Contributions
Each contribution is welcomed, if you want to contribute, open an issue or fork the repository and open a PR.