Home

Awesome

Tapir

<p> <a href="https://github.com/PacoVK/tapir?tab=readme-ov-file#contributors-"> <img alt="Contributors" src="https://img.shields.io/github/all-contributors/pacovk/tapir"> </a> <a href="https://hub.docker.com/r/pacovk/tapir"> <img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/pacovk/tapir"> </a> </p>

A Private Terraform Registry

Test Release Docs-deployment

Tapir overview

Tapir is the registry you always wanted if you are using Terraform at enterprise scale. Core values of Tapir is to provide

Feedback

You can send feedback and feature requests via GitHub issues. Either vote existing issues or feel free to raise an issue.

Why?

Modules

Terraform modules are reusable parts of infrastructure code. The most crucial part of re-usability is transparency and visibility. Since Terraform supports Git-based modules there are several disadvantages that come along with this capability.

Providers

If you make use of custom providers, or just want to have them mirrored you need an Artifactory to store the binaries. Additionally, users of the module need to break out the Toolchain and manually setup providers and copy them into the global provider directory. Supporting Terraform providers, Tapir does not help you to get your providers visible, but also keeps the users within the toolchain of Terraform only. That means:

About Tapir

Tapir is an implementation of the official Terraform registry protocol. You can easily run an instance on your own with the full flexibility and power a central registry has.

Apart from the above, this is what Wikipedia knows about Tapirs.

Overview

Deployment

NOTE starting with version 0.6.0 authentication is required. Hence, you need an OIDC IDP to run Tapir. Read more about the authentication below.

You can run Tapir wherever you can run Docker images. Images are available on DockerHub pacovk/tapir and AWS Elastic Container Registry public.ecr.aws/pacovk/tapir. There are samples with Terraform in examples/.

Other deployment options available are:

Configure

Tapir is configured via environment variables. You can learn how to set up Tapir here.

How-to

To see how to use Tapir, please read the usage docs.

Troubleshoot

See troubleshooting docs

Roadmap

Contribution

If you want to contribute to this project, please read the contribution guidelines. A detailed How-to guide on local development can be found in the docs.

Actively searching for contributors. <br/> Feedback is always appreciated :rainbow: <br/> Feel free to open an Issue (Bug- /Feature-Request) or provide a Pull request. :wrench:

Contributors ✨

Thanks go to these wonderful people (emoji key):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://pascal.euhus.dev/"><img src="https://avatars.githubusercontent.com/u/27785614?v=4?s=100" width="100px;" alt="PacoVK"/><br /><sub><b>PacoVK</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/pulls?q=is%3Apr+reviewed-by%3APacoVK" title="Reviewed Pull Requests">👀</a> <a href="#projectManagement-PacoVK" title="Project Management">📆</a> <a href="#maintenance-PacoVK" title="Maintenance">🚧</a> <a href="#example-PacoVK" title="Examples">💡</a> <a href="https://github.com/PacoVK/tapir/commits?author=PacoVK" title="Code">💻</a> <a href="https://github.com/PacoVK/tapir/commits?author=PacoVK" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/andrea-defraia"><img src="https://avatars.githubusercontent.com/u/56583671?v=4?s=100" width="100px;" alt="Andrea Defraia"/><br /><sub><b>Andrea Defraia</b></sub></a><br /><a href="#example-andrea-defraia" title="Examples">💡</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/WeiMengXS"><img src="https://avatars.githubusercontent.com/u/54929266?v=4?s=100" width="100px;" alt="Wmxs"/><br /><sub><b>Wmxs</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/issues?q=author%3AWeiMengXS" title="Bug reports">🐛</a> <a href="#ideas-WeiMengXS" title="Ideas, Planning, & Feedback">🤔</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jonasz-lasut"><img src="https://avatars.githubusercontent.com/u/93281932?v=4?s=100" width="100px;" alt="Jonasz Łasut-Balcerzak"/><br /><sub><b>Jonasz Łasut-Balcerzak</b></sub></a><br /><a href="#example-jonasz-lasut" title="Examples">💡</a> <a href="https://github.com/PacoVK/tapir/commits?author=jonasz-lasut" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tlchaffi"><img src="https://avatars.githubusercontent.com/u/128724533?v=4?s=100" width="100px;" alt="Tim Chaffin"/><br /><sub><b>Tim Chaffin</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/pulls?q=is%3Apr+reviewed-by%3Atlchaffi" title="Reviewed Pull Requests">👀</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tim-chaffin"><img src="https://avatars.githubusercontent.com/u/128724533?v=4?s=100" width="100px;" alt="Tim Chaffin"/><br /><sub><b>Tim Chaffin</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/commits?author=tim-chaffin" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/TomBeckett"><img src="https://avatars.githubusercontent.com/u/10406453?v=4?s=100" width="100px;" alt="Tom Beckett"/><br /><sub><b>Tom Beckett</b></sub></a><br /><a href="#example-TomBeckett" title="Examples">💡</a> <a href="https://github.com/PacoVK/tapir/commits?author=TomBeckett" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/akuzminsky"><img src="https://avatars.githubusercontent.com/u/1763754?v=4?s=100" width="100px;" alt="Oleksandr Kuzminskyi"/><br /><sub><b>Oleksandr Kuzminskyi</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/issues?q=author%3Aakuzminsky" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/GrzegorzHejman"><img src="https://avatars.githubusercontent.com/u/55591451?v=4?s=100" width="100px;" alt="GrzegorzHejman"/><br /><sub><b>GrzegorzHejman</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/issues?q=author%3AGrzegorzHejman" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://hybridbrothers.com"><img src="https://avatars.githubusercontent.com/u/26713978?v=4?s=100" width="100px;" alt="Cédric Braekevelt"/><br /><sub><b>Cédric Braekevelt</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/issues?q=author%3Acedricbraekevelt" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://lois.postu.la"><img src="https://avatars.githubusercontent.com/u/1423612?v=4?s=100" width="100px;" alt="Loïs Postula"/><br /><sub><b>Loïs Postula</b></sub></a><br /><a href="https://github.com/PacoVK/tapir/commits?author=loispostula" title="Code">💻</a> <a href="https://github.com/PacoVK/tapir/commits?author=loispostula" title="Documentation">📖</a> <a href="#ideas-loispostula" title="Ideas, Planning, & Feedback">🤔</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->