The Terraform Registry at registry.terraform.io hosts public modules and providers, but most organizations use modules or providers that cannot or do not need to be publicly available.
You can load private modules directly from version control and other sources, but those methods do not support version constraints or a browsable marketplace, both of which are important for enabling a producers-and-consumers content model in a large organization. You will benefit from a private registry if your teams need access to a common list of providers and modules.
»Terraform Cloud Private Registry
Terraform Cloud includes a private registry that is available to all accounts, including free organizations. Unlike the public registry, the private registry can import modules from your private VCS repositories on any of Terraform Cloud's supported VCS providers. It also lets you upload and manage private, custom providers through the Terraform Cloud API and curate a list of commonly-used public providers and modules.
You can seamlessly reference private modules and providers in your Terraform configurations, and the Terraform Cloud UI provides a searchable marketplace to help users find the components they need.
»Other Private Registries
Terraform can use versioned modules from any service that implements the registry API. The Terraform open source project does not provide a server implementation, but we welcome community members to create their own private registries by following the published protocol.