Deploy on Kubernetes
The repo ships manifests that run sorack as a dev pod — it mounts the
checked-out source via hostPath and runs pnpm dev inside. It’s the simplest
way to self-host today; a production, image-based deployment is on the roadmap.
(To just try sorack, the local path in the Quickstart is quicker.)
Prerequisites
Section titled “Prerequisites”- A Kubernetes cluster with a default
StorageClass. - A clone of this repo on the cluster node that will host the dev pod (the pod
mounts the source via
hostPath). - Optional: an ingress controller + cert-manager if you want HTTPS via an
Ingress; otherwise
kubectl port-forwardworks fine.
1. Create the Secrets
Section titled “1. Create the Secrets”Two Secrets keep DB and app config rotating independently:
| Secret | Source | Consumed by |
|---|---|---|
sorack-db | examples/secret-db.yaml | postgres statefulset + api |
sorack-app | examples/secret-app.yaml | api only |
kubectl apply -f deploy/dev/namespace.yaml
# Copy + fill in real values (don't commit the filled-in copies)cp examples/secret-db.yaml /tmp/sorack-db.yamlcp examples/secret-app.yaml /tmp/sorack-app.yaml$EDITOR /tmp/sorack-db.yaml /tmp/sorack-app.yamlkubectl apply -f /tmp/sorack-db.yamlkubectl apply -f /tmp/sorack-app.yaml2. Point the dev pod at your checkout
Section titled “2. Point the dev pod at your checkout”deploy/dev/deployment.yaml mounts a hostPath. Change it to wherever you
cloned the repo on the node:
volumes: - name: src hostPath: path: /home/youruser/projects/sorack type: Directory3. Apply the rest
Section titled “3. Apply the rest”kubectl apply -f deploy/postgres/kubectl apply -f deploy/dev/Migrations run automatically when the api boots — there’s no separate migrate step.
4. Open the UI
Section titled “4. Open the UI”kubectl port-forward -n sorack svc/sorack 5173:80# then open http://localhost:5173The initial admin password is printed to the api log once on first boot if you
didn’t pin SORACK_ADMIN_PASSWORD:
kubectl logs -n sorack deploy/sorack -c dev | grep -i password