Deploy the Registry Server
System requirements
- Kubernetes: current and two previous minor versions are supported. Production workloads should run on a cluster with at least one node providing 1 vCPU and 1 GB of memory available for the Registry Server pod.
- PostgreSQL: version 14 or later. The server runs database migrations automatically on startup, so the migration user needs schema-modification privileges. See Migration user privileges for the full privilege model.
- Persistent storage (recommended for Git sources): a volume mounted at
/dataavoids re-cloning repositories on every container restart. - Network access: outbound connectivity to your configured sources (Git hosts, upstream registries, file URLs) and to the PostgreSQL server.
Deployment methods
The Registry Server can be deployed in Kubernetes using three methods. Choose the one that fits your environment:
| Method | Description |
|---|---|
| ToolHive Operator | Manage the Registry Server lifecycle through MCPRegistry CRDs |
| Helm | Deploy a standalone Registry Server using its dedicated Helm chart |
| Manual manifests | Deploy directly using raw Kubernetes manifests |
ToolHive Operator
Deploy and manage the Registry Server using MCPRegistry custom resources. The
ToolHive Operator watches for these resources and creates the necessary
infrastructure automatically.
See Deploy with the ToolHive Operator for a complete guide.
Helm
Deploy the Registry Server directly with the official Helm chart from the toolhive-registry-server repository. Use this method when you want to manage the Registry Server like any other Helm release without installing the ToolHive Operator.
See Deploy with Helm for a complete guide.
Manual manifests
Deploy the Registry Server directly using raw Kubernetes manifests. This approach gives you full control over the deployment configuration.
See Deploy manually for instructions.
Next steps
Pick the deployment method that fits your environment and follow its guide:
- Deploy with the ToolHive Operator for a CRD-driven workflow
- Deploy with Helm for a standalone chart-based install
- Deploy manually for raw Kubernetes manifests
Then configure the rest of the stack:
- Configure sources and registries to set up your data sources and sync policies
- Set up authentication to secure access to your registry
- Set up authorization to control access with roles and claims
- Configure telemetry to monitor your deployment