{"id":13505731,"url":"https://github.com/apparentlymart/terraform-simple-registry","last_synced_at":"2025-07-07T21:14:13.915Z","repository":{"id":66568591,"uuid":"108785452","full_name":"apparentlymart/terraform-simple-registry","owner":"apparentlymart","description":null,"archived":false,"fork":false,"pushed_at":"2022-04-14T11:42:36.000Z","size":9849,"stargazers_count":67,"open_issues_count":1,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-24T23:49:50.264Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apparentlymart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-10-30T01:06:41.000Z","updated_at":"2025-03-04T01:46:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"164a480b-66ee-4b8b-836c-402b40a1fcde","html_url":"https://github.com/apparentlymart/terraform-simple-registry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apparentlymart%2Fterraform-simple-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apparentlymart%2Fterraform-simple-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apparentlymart%2Fterraform-simple-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apparentlymart%2Fterraform-simple-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apparentlymart","download_url":"https://codeload.github.com/apparentlymart/terraform-simple-registry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251675330,"owners_count":21625790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T00:01:12.364Z","updated_at":"2025-04-30T09:23:59.798Z","avatar_url":"https://github.com/apparentlymart.png","language":"Go","funding_links":[],"categories":["Private Module Registries","Self-Hosted Registries"],"sub_categories":["Miscellaneous"],"readme":"# Terraform Simple Registry\n\nThis repository contains simple implementations of the Terraform registry\nprotocols.\n\nThis package is designed with the principle of \"small pieces loosely joined\":\nit deals only with the Terraform protocols and expects other concerns to be\ndealt with via complementary software. For example:\n\n* Each of the registry services is provided as a separate program, allowing the\n  user to decide which to use and how to deploy them.\n\n* Authentication is not directly integrated, but can be applied by e.g. putting\n  nginx in front of this program's server and configuring it to verify\n  _JSON Web Tokens_, or similar.\n\n* These programs provide read-only access to data available in the local\n  filesystem. This data can either be placed manually or updated automatically\n  by separate software in response to hooks from a remote Git repository, etc.\n\n* A simple, static configuration system is used, so these files can either be\n  hand-edited or generated automatically by some other external program.\n\nDelegating all but the core concerns to other software gives users the\nflexibility to customize their deployment and integrate these programs with\nother systems and processes.\n\nThis program is not a HashiCorp product and is not directly supported by\nthe Terraform team at HashiCorp.\n\nAn \"out-of-the-box\" private registry solution, with support from HashiCorp,\nis available as part of [Terraform Enterprise](https://www.hashicorp.com/products/terraform).\nThis implementation integrates well with other Terraform Enterprise\nfeatures.\n\n## Included Servers\n\nThe design of this codebase is to have a separate server program for each of\nthe separate Terraform native service protocols it supports. The protocols\ncurrently supported are:\n\n* [Module registry v1](./cmd/terraform-modules-v1-server) (`modules.v1`)\n\n## Service Discovery\n\nTerraform uses a simple service discovery protocol to locate remote services\nwhen given a \"friendly hostname\" by the user. For example, the hostname at\nthe start of a module source string like `example.com/foo/bar/baz` is such\na hostname, causing Terraform to attempt service discovery on that host.\n\nThe programs in this package each expose functionality for one of Terraform's\nsupported services. It's your responsibility as the deployer to place a\nservice discovery document on some suitable hostname to allow Terraform to\nfind the services you've deployed. It is not required that the servers\nthemselves be deployed at the same hostname.\n\nTerraform looks for a discovery document by accessing the given hostname with\nHTTPS and requesting the path `/.well-known/terraform.json`, at which it\nexpects to find an `application/json` response with content like the following:\n\n```json\n{\n  \"modules.v1\": \"http://modules.example.com/v1/\"\n}\n```\n\nEach key in this object relates to a single service, which in turn maps to one\nserver program in this repository. The documentation for each of the included\nservers (linked above) defines which service discovery key it relates to.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapparentlymart%2Fterraform-simple-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapparentlymart%2Fterraform-simple-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapparentlymart%2Fterraform-simple-registry/lists"}