Deploy — Helm chart for deploying rubra-server on Kubernetes.
./scripts/test-in-kind.shThis builds the actual rubra-server Dockerfile, loads it into a throwaway kind (Kubernetes-in-Docker) cluster, installs this chart via Helm, waits for a healthy rollout, and port-forwards it to localhost:8000 — a genuine end-to-end deployment test with no image registry or real cluster required. Needs docker, kind, helm, and kubectl, which the rubra-server devcontainer/Codespace installs automatically.
helm install rubra oci://ghcr.io/pm1715/charts/rubra --version 0.1.3git clone https://github.com/pm1715/rubra-deploy
cd rubra-deploy
helm install rubra ./helm/rubraThis deploys rubra-server with a ClusterIP service, a persistent volume for SQLite, and liveness/readiness probes against /api/v1/health.
To reach it locally:
kubectl port-forward svc/rubra 8000:8000Key values in helm/rubra/values.yaml:
| Value | Default | Description |
|---|---|---|
image.repository |
ghcr.io/pm1715/rubra-server |
Server image |
image.tag |
0.1.0 |
Image tag |
replicaCount |
1 |
Pod replicas |
service.type |
ClusterIP |
Change to LoadBalancer for external access |
ingress.enabled |
false |
Set true and configure ingress.hosts to expose via Ingress |
persistence.enabled |
true |
Persistent volume for SQLite storage |
persistence.size |
5Gi |
PVC size |
env.RUBRA_DATABASE_URL |
unset (SQLite) | Set to a PostgreSQL URL for multi-replica deployments — SQLite does not support concurrent writers across pods |
secrets.apiKeySecretName |
"" |
Name of a Kubernetes Secret holding RUBRA_API_KEY; leave empty to run in open dev mode |
Override with --set or a custom values file:
helm install rubra ./helm/rubra \
--set replicaCount=2 \
--set env.RUBRA_DATABASE_URL="postgresql://rubra:rubra@postgres:5432/rubra" \
--set persistence.enabled=falsekubectl create secret generic rubra-api-key --from-literal=api-key=<your-key>
helm upgrade rubra ./helm/rubra --set secrets.apiKeySecretName=rubra-api-keyhelm upgrade rubra ./helm/rubra \
--set ingress.enabled=true \
--set ingress.hosts[0].host=rubra.yourdomain.comhelm uninstall rubraThe PVC is not deleted automatically (Helm default) — remove it manually if you want to drop stored traces:
kubectl delete pvc -l app.kubernetes.io/instance=rubraThis repo follows the same Security Policy and Code of Conduct as rubra-sdk.
Rubra was designed and built by Prayansh Mishra (@pm1715 · LinkedIn).
Apache 2.0 — see LICENSE.