https://github.com/tonedefdev/opendepot
A Kubernetes native OpenTofu/Terraform Registry
https://github.com/tonedefdev/opendepot
Last synced: about 1 month ago
JSON representation
A Kubernetes native OpenTofu/Terraform Registry
- Host: GitHub
- URL: https://github.com/tonedefdev/opendepot
- Owner: tonedefdev
- Created: 2025-12-27T17:36:55.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-05-10T02:03:49.000Z (about 1 month ago)
- Last Synced: 2026-05-10T04:36:26.613Z (about 1 month ago)
- Language: Go
- Homepage: https://tonedefdev.github.io/opendepot/
- Size: 77.4 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# OpenDepot
[](https://go.dev/)
[](https://github.com/tonedefdev/opendepot/blob/main/LICENSE)
[](https://github.com/tonedefdev/opendepot/tree/main/chart/opendepot)
[](https://tonedefdev.github.io/opendepot/)
A Kubernetes-native, self-hosted OpenTofu/Terraform module and provider registry that implements both the [Module Registry Protocol](https://opentofu.org/docs/internals/module-registry-protocol/) and the [Provider Registry Protocol](https://developer.hashicorp.com/terraform/internals/provider-registry-protocol). OpenDepot gives organizations complete control over distribution, versioning, and storage — without relying on the public registry.
Compatible with **OpenTofu** (all versions) and **Terraform** (v1.2+).
## Documentation
Comprehensive documentation is available at **[tonedefdev.github.io/opendepot/](https://tonedefdev.github.io/opendepot/)**.
| Guide | Description |
|-------|-------------|
| [Installation](https://tonedefdev.github.io/opendepot/getting-started/installation/) | Deploy OpenDepot to Kubernetes using the Helm chart |
| [Quickstart](https://tonedefdev.github.io/opendepot/getting-started/quickstart/) | Get up and running locally in minutes |
| [Helm Chart Reference](https://tonedefdev.github.io/opendepot/helm-chart/) | Full values reference for the OpenDepot Helm chart |
| [Architecture](https://tonedefdev.github.io/opendepot/architecture/) | How OpenDepot works under the hood |
| [Authentication](https://tonedefdev.github.io/opendepot/authentication/) | GitHub App and token-based auth |
| [Kubernetes RBAC](https://tonedefdev.github.io/opendepot/rbac/) | Fine-grained access control for registry resources |
## Version Constraints
OpenDepot supports all standard OpenTofu/Terraform version constraint syntax:
| Syntax | Example | Meaning |
|--------|---------|---------|
| Exact | `1.2.0` | Only version 1.2.0 |
| Comparison | `>= 1.0.0, < 2.0.0` | Any 1.x version |
| Pessimistic | `~> 1.2.0` | >= 1.2.0, < 1.3.0 (bugfixes only) |
| Pessimistic (minor) | `~> 1.2` | >= 1.2.0, < 2.0.0 |
| Exclusion | `>= 1.0.0, != 1.5.0` | Any 1.x except 1.5.0 |
## Project Structure
```
opendepot/
├── api/v1alpha1/ # CRD type definitions
│ ├── types.go # Depot, Module, Version, StorageConfig schemas
│ └── groupversion_info.go # API group registration
├── chart/opendepot/ # Helm chart
│ ├── Chart.yaml
│ ├── values.yaml
│ ├── crds/ # CRD manifests
│ └── templates/ # Deployment, RBAC, Service templates
├── examples/
│ └── internal-developer-portal/ # React + MUI demo portal for Depot->Module->Version visualization
├── pkg/
│ ├── github/ # GitHub API client (App auth, archive fetching)
│ │ └── github.go
│ └── storage/ # Storage backend implementations
│ ├── storage.go # Storage interface definition
│ ├── aws.go # Amazon S3
│ ├── azure.go # Azure Blob Storage
│ ├── gcp.go # Google Cloud Storage
│ ├── filesystem.go # Local filesystem
│ └── types/ # StorageObjectInput, StorageMethod
├── services/
│ ├── server/ # Registry Protocol API (HTTP server)
│ ├── version/ # Version controller (core — fetch & store)
│ ├── module/ # Module controller (version lifecycle)
│ ├── provider/ # Provider controller (version lifecycle for providers)
│ └── depot/ # Depot controller (GitHub + HashiCorp discovery)
├── Makefile # Build, load, deploy targets
└── go.work # Go workspace (multi-module)
```
## License
Apache License 2.0. See [LICENSE](LICENSE) for details.