Helm 3 charts for the self-hosted variant of Moodify. The canonical production deploys to Vercel + Modal; this directory targets Kubernetes clusters as an optional alternative.
helm/
├── moodify-backend/ Django backend chart (blue/green-aware, HPA, PDB, ingress, network policy)
├── moodify-frontend/ React SPA chart (runtime env.js, read-only rootfs, ingress + cert-manager)
└── monitoring/ Umbrella chart wrapping kube-prometheus-stack + Loki + Tempo + Promtail
Ships Moodify dashboards, SLO PrometheusRule, extra ServiceMonitors
# Add this repo as a local working chart (no chart museum needed).
helm dependency update helm/moodify-backend
# Lint + dry-render
helm lint helm/moodify-backend
helm template moodify helm/moodify-backend --namespace=moodify
# Install / upgrade
helm upgrade --install moodify helm/moodify-backend \
--namespace=moodify --create-namespace \
--values helm/moodify-backend/values.yaml \
--set image.tag=$(git rev-parse --short HEAD)
# Status + history
helm status moodify -n moodify
helm history moodify -n moodify
# Roll back
helm rollback moodify -n moodifyVia the root Makefile:
make helm-lint
make helm-template
make helm-install
make helm-uninstallEvery chart ships:
Chart.yaml— metadata + version pinningvalues.yaml— every knob with sane prod defaultstemplates/— rendered K8s objects_helpers.tpl— common label / name helpersdeployment.yaml— workload (blue + green pair whenblueGreen.enabled)service.yaml— ClusterIP, selector flips withblueGreen.activeEnvironmentserviceaccount.yaml— non-mounted SA, IRSA-readyconfigmap.yaml— non-secret envhpa.yaml— CPU + memory + custom metricspdb.yaml— minAvailable: 2 by defaultingress.yaml— ingress-nginx + cert-managernetworkpolicy.yaml— egress allow-list (Mongo, Redis, HTTPS)NOTES.txt— post-install message
Use the standard Helm pattern of base + override:
helm upgrade --install moodify helm/moodify-backend \
--namespace moodify-prod --create-namespace \
--values helm/moodify-backend/values.yaml \
--values helm/moodify-backend/values-production.yaml \
--set image.tag=v1.2.3The repo doesn't ship per-env values files by design — checking in
production sizing alongside dev sizing tempts copy-paste mistakes.
Generate them from terraform outputs or kustomize instead.
../kubernetes/— raw manifests (alt path)../argocd/— GitOps wrapper around this chart../scripts/deployment/— blue/green + canary scripts