This package deploys a full Git AI self-hosted stack on Kubernetes using Helm.
- Postgres (Bitnami chart dependency)
- Valkey (Bitnami chart dependency)
- ClickHouse (native StatefulSet)
- Postgres + ClickHouse migration Jobs (Helm hooks)
- Web deployment + service + traffic entry (nginx ingress or Istio gateway)
- Worker deployment + optional BullMQ dashboard service
- Migration scripts/assets embedded in the EE runtime image (
web/Dockerfile.ee) - Migrators execute scripts from
/app/scriptsand SQL from/app/migrations
storage.backend supports:
local(default): PVC-backed/app/dataaws: bucket-backed worker storage, app storage volumes areemptyDirazure: blob-backed worker storage, app storage volumes areemptyDirgcp: GCS-backed worker storage, app storage volumes areemptyDir
ingress.mode supports:
nginx(default): renders KubernetesIngressistio: renders IstioGateway+VirtualService
Portable defaults:
ingress.enabled=falseingress.className=""ingress.annotations={}
ingress.cloud presets for nginx mode:
generic(default): no class/annotation assumptionsaws: ALB-friendly class/annotations defaultsgcp: GKE ingress annotation default (kubernetes.io/ingress.class=gce)azure: AKS app-routing class default (webapprouting.kubernetes.azure.com)
All presets are overrideable via ingress.className and ingress.annotations.
Provider overlays are included:
values.aws.yamlvalues.gcp.yamlvalues.azure.yamlvalues.istio.yaml
- Git clone this repo locally
task init- Edit
generated/values.local.yaml:- set
secrets.licenseKey - set ingress/global URLs (
ingress.enabled,ingress.mode,ingress.cloud, host)
- set
task scm:configureUse the default slug for each provider unless you are configuring multiple instances of that provider.task uptask waittask doctor
Managed cloud shortcuts:
task up -- -f values.aws.yamltask up -- -f values.gcp.yamltask up -- -f values.azure.yamltask up -- -f values.istio.yaml
task uptask downtask statustask logs -- webtask doctortask test:rendertask admin:grant -- <email-or-id>
- Enable ingress addon:
minikube addons enable ingress - Add local DNS/hosts entry for the ingress host from
generated/values.local.yaml - Use
task up -- -f values.minikube.yamlto layer minikube overrides
docs/00-overview.mddocs/01-prereqs.mddocs/02-quickstart.mddocs/03-configuration.mddocs/04-scm-github.mddocs/05-scm-gitlab.mddocs/06-scm-bitbucket.mddocs/07-admin-bootstrap.mddocs/08-operations.mddocs/09-troubleshooting.mddocs/10-upgrades.md