Skip to content

Repository files navigation

Orbit

A small proxy to turn a GitHub mono-repo into a Terraform module registry. This proxy expects releases in the same format as a golang monorepo (module/vX.Y.Z), with each module having a directory on the root of the repository. You might find release please useful for managing the release process.

Supported ENV variables

Environment VariableTypeDefaultRequiredDescription
MODULES_PROXY_SECRET[]byteYesSecret key for proxy token encryption.
CACHE_ENABLEDboolNoEnable or disable caching.
CACHE_AUTH_DISABLEDboolNoDisable auth for cached requests.
CACHE_PATHstring/tmpNoPath to store cache files.
CACHE_EXPIRATIONduration10sNoCache expiration duration.
GITHUB_REPOSITORIESmapNoAllowed repositories (per org).
GITHUB_ORG_MAPPINGSmapNoOrganization name mappings.
GITHUB_TOKENstringNoGitHub API token.
MODULES_TOKEN_EXPIRATIONduration60sNoExpiration time for proxy tokens.
SERVER_HOSTstringNoServer listen host.
SERVER_PORTint8080NoServer listen port.
SERVER_TIMEOUT_HANDLERduration10sNoHTTP handler timeout.
SERVER_TIMEOUT_IDLEdurationNoHTTP idle timeout.
SERVER_TIMEOUT_READdurationNoHTTP read timeout.
SERVER_TIMEOUT_READ_HEADERduration2sNoHTTP read header timeout.
SERVER_TIMEOUT_SHUTDOWNduration5sNoGraceful shutdown timeout.
SERVER_TIMEOUT_WRITEdurationNoHTTP write timeout.
SERVER_TLS_ENABLEDboolNoEnable TLS for the server.
SERVER_TLS_CERT_FILEstringNoTLS certificate file path.
SERVER_TLS_KEY_FILEstringNoTLS key file path.
SERVER_METRICS_ENABLEDboolfalseNoEnable metrics endpoint.
SERVER_METRICS_PORTint9090NoMetrics server port.

Notes:

  • Duration values (e.g., 10s, 60s) are Go duration strings (e.g., 1m, 30s).
  • Prefixes like CACHE_, GITHUB_, MODULES_, and SERVER_ are used for grouping related variables.
  • Some variables (like maps) may require specific formatting (e.g., JSON or comma-separated values).
  • MODULES_PROXY_SECRET must be a base64-encoded 16, 24 or 32-byte key for AES encryption.

Deployment

Orbit can easily be deployed using Docker, or by just running the binary provided in the release. If you want to deploy using Kubernetes, we're providing a helm chart under deploy/charts/orbit.

About

A small proxy to turn a Github mono-repo into a Terraform module registry.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages