Minimal dev deployment of Semaphore UI on a local kind cluster with Ingress and PostgreSQL (Bitnami Helm chart).
This project is educational — it was created to practice Kubernetes basics:
- using kustomize for manifests,
- managing configs and secrets,
- installing dependencies with Helm,
- exposing applications through Ingress,
- adding probes and resource requests/limits.
Using make
# deploy postgres and semaphore
make up
# watch logs
make logs
Manual
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install pg bitnami/postgresql -n semaphore --create-namespace -f ops/helm/pg-dev.values.yaml
kubectl -n semaphore rollout status statefulset/pg-postgresql --timeout=180s
kubectl apply -k k8s/base
kubectl -n semaphore rollout status deploy/semaphore --timeout=180s
Open in browser: http://localhost 🎉
make down
Non-secret environment: k8s/base/app.env
Secrets: copy k8s/base/secret.env.example
to k8s/base/secret.env
PostgreSQL values: ops/helm/pg-dev.values.yaml
MIT — see LICENSE
This setup is for local development only (no persistence, self-signed).
For production use the official Semaphore UI Helm charts