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: 26 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 (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-30T14:17:41.000Z (about 1 month ago)
- Last Synced: 2024-10-04T18:05:37.277Z (about 1 month ago)
- Topics: private-registry, registry, terraform, terraform-login, terraform-module, terraform-provider
- Language: Go
- Homepage: http://www.terralist.io/
- Size: 1.74 MB
- Stars: 313
- Watchers: 10
- Forks: 27
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-opentofu - terralist - Private registry for providers and modules. (Tools / Registry)
- 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 that follows 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.terralist.io
terraform logout registry.terralist.io
```
It can also generate custom API keys for an authenticated user, which can be used in pipelines to upload and delete modules and in 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 a download request is received, it calls the remote storage to generate a temporary public download URL and forwards it to the requester.
Currently supported private storage:
* AWS S3: uses a private S3 bucket
* Azure Blob: uses a private Azure Storage Account
* GCS: uses a private Google Storage bucket
* 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
* GCS: uses a private Google Storage bucket
* 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
Check the official documentation on [www.terralist.io](https://www.terralist.io/).
## Contributions
All contributions are welcome. If you want to contribute, open an issue or fork the repository and open a PR.