Skip to content

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

Open
juzigu40-ui wants to merge 6 commits intorohitdash08:mainfrom
juzigu40-ui:codex/finmind-144-deploy-bounty
Open

Bounty Submission: Universal One-Click Deployment (Docker + K8s + Tilt) for FinMind#308
juzigu40-ui wants to merge 6 commits intorohitdash08:mainfrom
juzigu40-ui:codex/finmind-144-deploy-bounty

Conversation

@juzigu40-ui
Copy link

@juzigu40-ui juzigu40-ui commented Mar 5, 2026

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

Discord coordination for #144 is in place. If the maintainer wants the Discord record mirrored on GitHub, the screenshot note is prepared in docs/bounty/discord-proof-comment.md.

Current submission head: 0a4b11f

Current checks

Acceptance entry page

Platform Deploy command Validate command Proof status Live URL
Production Compose ./scripts/review-deploy.sh ./scripts/review-deploy.sh CI-validated Local only
Kubernetes / Helm ./scripts/review-k8s.sh helm test finmind -n finmind --logs CI-validated Local only
Tilt tilt up tilt ci --timeout 10m CI-validated Local only
Render Blueprint: render.yaml ./deploy/render/validate.sh --frontend-url <url> --api-url <url> Repo-ready
DigitalOcean App Platform ./deploy/digitalocean/app-platform/deploy.sh --spec deploy/digitalocean/app-platform/app.yaml ./deploy/digitalocean/app-platform/validate.sh --frontend-url <url> --api-url <url> Repo-ready
DigitalOcean Droplet AUTO_START=1 ./deploy/digitalocean/droplet/setup.sh AUTO_START=1 AUTO_VALIDATE=1 ./deploy/digitalocean/droplet/setup.sh Repo-ready
AWS ECS Fargate ./deploy/aws/deploy.sh ./deploy/aws/validate.sh --frontend-url <url> --api-url <url> Repo-ready
GCP Cloud Run ./deploy/gcp/deploy.sh ./deploy/gcp/validate.sh --frontend-url <url> --api-url <url> Repo-ready
Azure Container Apps ./deploy/azure/deploy.sh ./deploy/azure/validate.sh --frontend-url <url> --api-url <url> Repo-ready

Review files

What changed in the submission path

  • Hosted validation now converges on ./scripts/validate-public-deployment.sh, so the same smoke and UI path can be reused across public deployments.
  • Render closes init-db through dockerCommand plus FINMIND_RUN_INIT_DB_ON_BOOT=1, which keeps the path free-tier compatible.
  • DigitalOcean App Platform closes init-db with a PRE_DEPLOY migration job and uses provider-native public URL wiring for backend CORS and frontend API resolution.
  • DigitalOcean Droplet now deploys the requested repo, ref, and optional commit SHA, leaves first checkout stopped by default, and only validates when explicitly requested.
  • AWS ECS Fargate, GCP Cloud Run, and Azure Container Apps now each have concrete deploy, validate, and destroy scripts in-repo.
  • The K8s runtime path now runs Helm plus Tilt in workflow instead of stopping at template output.

Visual walkthrough

Current demo video: docs/demo/finmind-deploy-demo.mp4

Readiness check
Readiness first: database and Redis are both connected before the UI flow starts.
Signup flow
Fresh signup in the same run, so the walkthrough does not depend on preloaded data.
Bills flow
Bill creation happens live before reminders are scheduled.
Expenses flow
Expense entry is committed and appears in the list during the same recording.
Analytics flow
The walkthrough ends in analytics after the earlier data path has already been exercised.

@juzigu40-ui
Copy link
Author

Local validation completed on Apple Silicon macOS (Colima + Docker).

Commands run:

  • docker compose -f docker-compose.prod.yml up -d --build
  • ./scripts/validate-deploy.sh

Observed result:

  • backend /health returned {"status":"ok"} on http://127.0.0.1:8000
  • frontend served HTTP 200 on http://127.0.0.1:8081
  • compose services reached healthy/running state for postgres, redis, backend, and frontend

I still need to attach the demo video required by the bounty, but the deployment stack itself now runs end-to-end locally.

@juzigu40-ui
Copy link
Author

Added the demo video required by the bounty and updated the PR body to reflect the local runtime validation.

Demo video: https://github.com/juzigu40-ui/FinMind/blob/codex/finmind-144-deploy-bounty/docs/demo/finmind-deploy-demo.mp4

@juzigu40-ui
Copy link
Author

juzigu40-ui commented Mar 5, 2026

Reran the stack after commit 212ce70.

  • docker compose -f docker-compose.prod.yml --profile observability up -d --build passed
  • ./scripts/validate-deploy.sh passed
  • ./scripts/validate-observability.sh passed

The PR body now shows the exact commands, expected endpoints, and the runtime snapshot.

@juzigu40-ui
Copy link
Author

@rohitdash08 quick coordination note: I sent a Discord request to @geekster007 when I submitted, but it still hasn't been accepted, so I'm leaving this here as well.

PR #308 is ready for review and already includes:

  • production Docker/Compose path
  • Kubernetes + Helm + Tilt path
  • runtime validation steps
  • local verification evidence and demo video

If there is any acceptance item you want checked first, I can prioritize it directly in this PR.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant