mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-07-22 11:51:04 +02:00
* feat: add Helm chart for Kubernetes deployment Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Replace bundled Bitnami subcharts with in-chart manifests on official images The Bitnami catalog removed all versioned image tags from docker.io/bitnami in Aug 2025 (old images frozen in bitnamilegacy, maintained catalog now behind a Broadcom subscription), so the bundled postgresql/redis/minio subcharts no longer pull. Replace them with plain in-chart manifests built on official upstream images, keeping the internal/all-in-one path fully self-contained and free of third-party chart packaging that can disappear: - internal-postgres.yaml: pgvector/pgvector:pg17 — upstream Postgres plus the `vector` extension the migrations require. POSTGRES_USER=dograh is the initdb superuser, so CREATE EXTENSION vector succeeds. - internal-redis.yaml: redis:7.4-alpine, password-protected, AOF persistence. - internal-minio.yaml: minio/minio, root creds shared with the app via a single secret (can't drift); the app auto-creates its bucket. Service/secret names are unchanged (<rel>-postgresql, <rel>-redisinternal-master, <rel>-minio) so the app wiring is untouched. Dep passwords are generated once and persisted across upgrades via lookup. Drop the Chart.yaml dependencies, Chart.lock, and the `helm dependency` step; the internal manifests gate on the mode toggles (database.mode=internal, etc.). Also fixes surfaced by smoke-testing on a live EKS cluster: - Dockerfile: ship the per-service run_*.sh entrypoints the chart invokes. - migrate-job: run as a post-install/pre-upgrade hook (the bundled Postgres does not exist during pre-install) with a wait-for-postgres init container. - backend env: declare POSTGRES_PASSWORD/REDIS_PASSWORD before the DATABASE_URL/ REDIS_URL that interpolate them (Kubernetes only expands back-references). - worker liveness probes: pgrep isn't in the slim runtime image; check /proc/1/cmdline instead (each worker execs its process as PID 1). - UI: set HOSTNAME=0.0.0.0 so Next.js standalone doesn't bind to the k8s-injected pod name (which maps to the pod IP only, breaking port-forward/loopback). Verified end-to-end on EKS 1.36: all pods Ready, migrations applied (pgvector extension + 27 tables), UI login page and web API served via port-forward. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
apiVersion: v2
|
|
name: dograh
|
|
description: |
|
|
Dograh — open-source voice AI platform. Deploys the FastAPI backend
|
|
(decomposed into web, ARQ worker, ARI manager singleton, and campaign
|
|
orchestrator singleton), the Next.js UI, and coturn for WebRTC media
|
|
relay. Optional bundled PostgreSQL, Redis, and MinIO via subcharts.
|
|
type: application
|
|
|
|
# version: chart version. Bump for any chart change.
|
|
# appVersion: Dograh application version. Tracks the image tag.
|
|
version: 0.1.0
|
|
appVersion: "0.1.0"
|
|
|
|
kubeVersion: ">=1.28.0-0"
|
|
|
|
keywords:
|
|
- voice-ai
|
|
- webrtc
|
|
- telephony
|
|
- fastapi
|
|
|
|
home: https://dograh.com
|
|
sources:
|
|
- https://github.com/dograh-hq/dograh
|
|
|
|
maintainers:
|
|
- name: Dograh
|
|
|
|
# The bundled stateful deps (PostgreSQL, Redis, MinIO) for the internal/all-in-one
|
|
# modes are plain in-chart manifests (templates/internal-*.yaml) built on official
|
|
# upstream images — NOT subcharts. This avoids depending on third-party chart
|
|
# packaging/registries that can change or disappear (as the Bitnami catalog did in
|
|
# Aug 2025). Production deployments should use the external/managed modes
|
|
# (database.mode=external, redis.mode=external, storage.mode=s3|externalMinio).
|
|
#
|
|
# dependencies: []
|