Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind#146
Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind#146aliraza556 wants to merge 6 commits intorohitdash08:mainfrom
Conversation
|
@aliraza556, can you please create a walkthrough video using some free plans on render and netlify |
@rohitdash08 I have provided the video on Discord chat. Please check it. |
|
@aliraza556, not all the services are running while doing tilt up, can you please check and fix that issue. |
rohitdash08
left a comment
There was a problem hiding this comment.
Please connect over discord, as most of the requirement are still incomplete.
Address PR review feedback to make all deploy paths truly one-click:
- deploy.ps1: Add actual Deploy-AWS/GCP/Azure/DigitalOcean functions
that execute bash scripts via WSL/Git Bash instead of printing messages
- aws-deploy.sh: Full end-to-end ECS Fargate deploy with ALB,
target groups, path-based routing, security groups, and service creation
- aws-ecs-task-definition.json: Add frontend container alongside backend
- .do/app.yaml: Provision Redis dev database, replace hardcoded REDIS_URL
with dynamic ${finmind-redis.DATABASE_URL} reference
- gcp-deploy.sh: Rebuild frontend with VITE_API_URL as build-time arg
via Cloud Build after deploying backend (fixes runtime vs build-time issue)
- heroku.yml: Use combined Dockerfile.heroku serving both frontend and
backend from a single container via nginx + gunicorn
- Add Dockerfile.heroku, heroku-nginx.conf.template, heroku-start.sh
|
Hi @rohitdash08, Thanks for the detailed review! I've addressed all your feedback in the latest commit. Here's a breakdown: 1. 2.
3. 4. 5. |
Summary
/health/readyendpoint validates DB + Redis connectivity (returns 503 when degraded)deploy.sh/deploy.ps1) with built-in deployment verification/claim #144
Platforms Covered
railway.json,railway.tomlheroku.yml,app.json,Procfilerender.yamlfly.toml,deploy/fly-frontend.toml.do/app.yamldeploy/digitalocean-droplet.shdeploy/aws-ecs-task-definition.json,deploy/aws-ecs-service.json,deploy/aws-deploy.shdeploy/aws-apprunner.yamldeploy/gcp-cloudrun.yaml,deploy/gcp-deploy.shdeploy/azure-containerapp.yaml,deploy/azure-deploy.shk8s/helm/finmind/(16 template files)Tiltfilenetlify.tomlvercel.jsonKubernetes Features
k8s/helm/finmind/)stringData)docker-compose.prod.yml)Runtime Acceptance Criteria
/healthbasic +/health/readydeep check)/health/ready→{"status":"ok","checks":{"database":"connected","redis":"connected"}})Test Plan
docker compose -f docker-compose.prod.yml up -d --buildand verify all services startGET /health→ returns{"status":"ok"}GET /health/ready→ returns{"status":"ok","checks":{"database":"connected","redis":"connected"}}/expenses/,/bills/,/reminders/,/categories/,/dashboard/summary,/insights/with Bearer token./deploy.sh verify http://localhostfor automated end-to-end verificationhelm template finmind ./k8s/helm/finmindrenders all manifests without errorstilt upstarts all services in local K8s cluster with live-reloadFiles Changed
Modified (4):
packages/backend/app/__init__.py— Added/health/readydeep health endpointpackages/backend/Dockerfile— Added curl, HEALTHCHECK, increased timeoutapp/Dockerfile— Added VITE_API_URL build arg, HEALTHCHECK.gitignore— Removed entries fordeployment.mdanddocker-compose.prod.ymlAdded (43):
docker-compose.prod.yml— Production Docker Composedeploy.sh/deploy.ps1— Universal one-click deploy scriptsDEPLOYMENT.md— Comprehensive deployment guiderailway.json,railway.toml,heroku.yml,app.json,Procfile,render.yaml,fly.toml,netlify.toml,vercel.json,.do/app.yamldeploy/aws-deploy.sh,deploy/gcp-deploy.sh,deploy/azure-deploy.sh,deploy/digitalocean-droplet.shdeploy/aws-ecs-task-definition.json,deploy/aws-ecs-service.json,deploy/aws-apprunner.yaml,deploy/gcp-cloudrun.yaml,deploy/azure-containerapp.yaml,deploy/fly-frontend.tomlk8s/helm/finmind/(Chart.yaml, values.yaml, 14 templates)TiltfileValidation
cd app && npm run lintcd app && npm test -- --runInBand./scripts/test-backend.ps1Security and Ownership
main)Checklist
Closed: #144