Skip to content

Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind (Issue #144)#769

Open
shaidshark wants to merge 4 commits intorohitdash08:mainfrom
shaidshark:feature/universal-deployment
Open

Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind (Issue #144)#769
shaidshark wants to merge 4 commits intorohitdash08:mainfrom
shaidshark:feature/universal-deployment

Conversation

@shaidshark
Copy link
Copy Markdown

Implements Issue #144 - Universal One-Click Deployment (\ Bounty)

Deployment Platforms

Docker

  • Multi-stage production Dockerfile (non-root, gunicorn, health check)
  • Production docker-compose with hardened Postgres + Redis
  • Nginx reverse proxy with security headers + gzip

Kubernetes (Helm Chart)

  • Full Helm chart: deployment, service, ingress, HPA, secrets, configmap
  • TLS-ready ingress with cert-manager annotations
  • HPA: 2-10 replicas, CPU/memory autoscaling
  • Liveness + readiness probes on /health
  • Resource requests/limits for all containers

Tilt

  • Tiltfile for local K8s development
  • Live update for backend code
  • Port forwards (backend, postgres, redis)

Platform Configs (One-Command Deploy)

Platform Config File Command
Railway deploy/railway.json \
ailway up\
Heroku deploy/Procfile \git push heroku main\
Render deploy/render.yaml Blueprint import
Fly.io deploy/fly.toml \ ly deploy\
DigitalOcean deploy/digitalocean.yaml App Platform import
AWS ECS deploy/aws-task-definition.json \�ws ecs register...\
GCP Cloud Run deploy/gcp-cloudrun.yaml \gcloud run apply\
Azure deploy/azure-containerapp.yaml \�z containerapp create\

Files Added (18 total)

  • packages/backend/Dockerfile
  • Tiltfile
  • deploy/helm/finmind/ (Chart.yaml, values.yaml, 7 templates)
  • deploy/nginx/nginx.conf
  • deploy/kubernetes/ (namespace.yaml, README.md)
  • deploy/ (8 platform configs)
  • deploy/README.md (comprehensive deploy guide)

Acceptance Criteria

  • Docker-based deployment for backend
  • Production Compose path
  • Kubernetes full stack (Helm, ingress/TLS, HPA, secrets, health probes)
  • Tilt local dev workflow
  • Platform configs for Railway, Heroku, Render, Fly.io, DO, AWS, GCP, Azure
  • Documentation with one-command deploy for each platform

shaidshark added 4 commits April 3, 2026 13:41
- Production Dockerfile (multi-stage, non-root, gunicorn)
- Helm chart: deployment, service, ingress, HPA, secrets, configmap
- Tiltfile for local K8s dev workflow
- Platform configs: Railway, Render, Fly.io, Heroku
- Production nginx config (reverse proxy, security headers, gzip)
- K8s namespace + README with setup guide
- HPA: 2-10 replicas, CPU/memory targets
- TLS-ready ingress with cert-manager annotations
- Health probes (liveness + readiness)
- DigitalOcean App Platform
- AWS ECS Fargate task definition
- GCP Cloud Run service
- Azure Container Apps
- Heroku Procfile
- Comprehensive deploy/README.md with one-command deploy for each platform
- Post-deploy verification steps
- Add docker-compose.prod.yml (was missing)
- Add missing platforms: Netlify, Vercel, DigitalOcean Droplet
- Fix Tiltfile: use helm() function instead of raw path
- Fix secrets template: remove broken ternary, use if/else
- Add Postgres StatefulSet + Service template
- Add Redis StatefulSet + Service template
- Add ServiceAccount, NetworkPolicy, PodDisruptionBudget
- Fix Procfile to match Dockerfile entrypoint
…ated defaults

- azure-containerapp.yaml: SET_YOUR_* -> \ references
- digitalocean-droplet.yaml: CHANGE_ME -> auto-generated via openssl rand
- No more plaintext secrets in config files
- Addresses security review feedback from rohitdash08#769
@shaidshark
Copy link
Copy Markdown
Author

Bounty submission — ready for review! All code review feedback from previous rounds has been addressed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant