尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Multi-tenant grocery management platform with autonomous SRE agent, Claude AI supervisor, Kubernetes, Prometheus observability
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗🌐 Live demo: kalemart.sreekanthp.com
📊 Public Grafana dashboards: grafana.sreekanthp.com (read-only viewer)
A production-grade, multi-tenant SaaS platform for grocery store chains — built to demonstrate full-stack engineering, Kubernetes operations, observability, and autonomous SRE practices.
┌─────────────────────────────────────────────────────────────────┐
│ Kubernetes (OrbStack) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ Next.js │ │ Node.js │ │ Python │ │ SRE Agent │ │
│ │ Frontend │→ │ Backend │→ │ AI Svc │ │ (FastAPI + │ │
│ │ :3000 │ │ :4000 │ │ :5000 │ │ Claude API) │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────────┘ │
│ │ │ │ ↑ │
│ └──────────────┴──────────────┘ Alertmanager │
│ │ │ │
│ ┌──────────────┐ ┌───────────────────┐ │
│ │ PostgreSQL │ │ Prometheus + │ │
│ │ (RLS + RBM) │ │ Grafana + Tempo │ │
│ └──────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
(tenant_id, created_at) with explicit query params for optimal planner statsSET LOCAL random_page_cost = 1.1 per transaction — corrects PostgreSQL's cost model for SSD storage/api/supervisor/analyze)claude → rule-based → demoThe centrepiece for SRE showcase. A Claude-powered agent that acts as an on-call SRE:
Prometheus alert fires
↓
Alertmanager webhook → SRE Agent (FastAPI)
↓
Claude investigates using tools:
• query_prometheus — fetch metrics
• get_pod_logs — stream k8s logs
• get_k8s_events — cluster events
• run_db_diagnostic — EXPLAIN ANALYZE (read-only guard)
• restart_deployment — needs human approval
• create_db_index — needs human approval
↓
Slack notification with Approve / Reject / Don't-ask-again links
↓
Fix applied → metrics re-validated → RCA posted to Slack
Approval flow: Uses asyncio.Event shared between the background investigation task and the HTTP /approve/{id} endpoint. Zero polling — the task suspends until the human clicks a link.
Don't-ask-again: Approved action types are persisted so repeated incidents self-heal without paging the engineer.
grafana.sreekanthp.comRecruiter access is intentionally read-only: production Grafana enables anonymous Viewer access, loads the Kalemart dashboard ConfigMap through Argo CD, and is exposed through Cloudflare Tunnel at https://grafana.sreekanthp.com.
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, React, Tailwind CSS |
| Backend | Node.js, Express, OpenTelemetry |
| AI Service | Python, FastAPI, Anthropic SDK |
| SRE Agent | Python, FastAPI, Anthropic Claude claude-sonnet-4-6 |
| Database | PostgreSQL 15, Row-Level Security |
| Infra | Kubernetes, Helm, Docker |
| Observability | Prometheus, Alertmanager, Grafana, Tempo, OTel Collector |
| CI/CD | GitHub Actions — build & push multi-service images |
/api 99.5% availability SLO with burn rate alertingkubectl, helm, dockergit clone https://github.com/sreekanthca6/kalemart.git
cd kalemart
cp .env.example .env
# Fill in .env — at minimum: ANTHROPIC_API_KEY, PGPASSWORD, JWT_SECRET
docker build -t kalemart/backend:latest ./apps/backend
docker build -t kalemart/frontend:latest ./apps/frontend
docker build -t kalemart/ai-service:latest ./apps/ai-service
docker build -t kalemart/sre-agent:latest ./apps/sre-agent
helm install kalemart ./helm/kalemart \
--set secrets.anthropicApiKey="$ANTHROPIC_API_KEY" \
--set secrets.postgresPassword="$PGPASSWORD" \
--set secrets.jwtSecret="$JWT_SECRET" \
--set secrets.slackWebhookUrl="$SLACK_WEBHOOK_URL"
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# Slack notifications for Prometheus alerts.
# The webhook URL is mounted into Alertmanager from a Secret, never committed to Git.
kubectl create namespace observability --dry-run=client -o yaml | kubectl apply -f -
kubectl create secret generic alertmanager-slack-webhook \
-n observability \
--from-literal=url="$SLACK_WEBHOOK_URL" \
--dry-run=client -o yaml | kubectl apply -f -
helm install prometheus prometheus-community/prometheus \
-n observability --create-namespace \
-f observability/prometheus-values.yaml
kubectl apply -f observability/alert-rules.yaml
For local OrbStack testing, ./scripts/deploy-local.sh dev uses observability/helmfile.local.yaml so Grafana points to localhost instead of production:
# Required if you want to test Slack alert delivery locally.
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
kubectl create namespace observability --dry-run=client -o yaml | kubectl apply -f -
kubectl create secret generic alertmanager-slack-webhook \
-n observability \
--from-literal=url="$SLACK_WEBHOOK_URL" \
--dry-run=client -o yaml | kubectl apply -f -
./scripts/deploy-local.sh dev
./scripts/port-forward.sh
# Frontend: http://localhost:3000
# Grafana: http://localhost:3001
# Prometheus: http://localhost:9090
# Alertmanager: http://localhost:9093
Open http://localhost:3000/ops to see the recruiter-facing control room. From there, open Grafana dashboards for SRE overview, API latency, platform infrastructure, Prometheus alerts, AI service health, and inventory business metrics.
kalemart/
├── apps/
│ ├── backend/ # Node.js/Express API
│ ├── frontend/ # Next.js dashboard
│ ├── ai-service/ # Python FastAPI — Claude AI supervisor
│ └── sre-agent/ # Python FastAPI — autonomous SRE agent
├── helm/kalemart/ # Helm chart for all services
├── observability/
│ ├── prometheus-values.yaml
│ └── alert-rules.yaml # 10 Prometheus alert rules
├── scripts/ # DB seed & Shopify import
└── .github/workflows/ # CI — build & push images
GitHub Actions builds and pushes all 4 Docker images on every push to main. See .github/workflows/.
MIT