Skip to content

chore(deploy): add Render.com deployment configuration - #89

Merged
Goldokpa merged 2 commits into
mainfrom
feat/render-deployment
Jun 24, 2026
Merged

Goldokpa merged 2 commits into
mainfrom
feat/render-deployment

Conversation

@obielin

@obielin obielin commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds Render.com as the primary deployment target for ClimateVision, since Fly.io requires active billing.

Changes

  • — Render Blueprint for the free-tier web service
  • — writes the GEE service-account key from an env var into a file at startup
  • Error: Render CLI not found. Install it from https://render.com/docs/cli — uploads + to Render
  • Updated — copies scripts and respects the env var
  • Updated — Render-first instructions, Fly.io as alternative

Why Render?

  • Free tier available without a credit card
  • Native GitHub + Dockerfile support
  • Suitable for investor demos

Post-merge steps

  1. Install the Render CLI and log in.
  2. Run Error: Render CLI not found. Install it from https://render.com/docs/cli.
  3. Connect the GitHub repo in the Render dashboard; it will detect .
  4. Add a custom domain for in Render and configure Namecheap DNS.

@obielin
obielin requested a review from Goldokpa as a code owner June 24, 2026 00:21
- Add render.yaml blueprint for Render.com free-tier web service
- Add scripts/render_entrypoint.sh to write GEE key from env var at startup
- Add scripts/setup_render_secrets.sh to upload secrets via Render CLI
- Update Dockerfile to copy scripts and use PORT env var for Render
- Update docs/DEPLOYMENT.md with Render-first deployment instructions
- Keep Fly.io instructions as an alternative for paid accounts
@Goldokpa
Goldokpa force-pushed the feat/render-deployment branch from 12be1b1 to f044939 Compare June 24, 2026 00:43

@Goldokpa Goldokpa left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docker CI job is failing because of a conflict between .dockerignore and the Dockerfile. The other three checks (python, frontend, ci) pass. See the inline comment on the Dockerfile for the root cause and fix.

Comment thread Dockerfile
COPY config/ ./config/
COPY models/ ./models/
COPY scripts/ ./scripts/
RUN chmod +x scripts/*.sh

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what's failing the docker CI job. The build dies here with:

buildx failed with: ERROR: failed to solve: process "/bin/sh -c chmod +x scripts/*.sh" did not complete successfully: exit code: 1

Root cause: .dockerignore contains scripts/*.sh, so no .sh files are in the build context. COPY scripts/ ./scripts/ brings in the directory without any shell scripts, then chmod +x scripts/*.sh matches nothing and exits 1.

This is also a runtime bug: the final CMD ["./scripts/render_entrypoint.sh"] would fail since that script is excluded by the same rule, even if the chmod line were removed.

Fix: remove (or narrow) the scripts/*.sh entry in .dockerignore so render_entrypoint.sh is included. If you want to keep ignoring the local-only setup scripts, ignore them by name instead (e.g. scripts/setup_*.sh) and let the entrypoint through.

Narrow `scripts/*.sh` to `scripts/setup_*.sh` so the local-only setup scripts stay excluded from the build context while scripts/render_entrypoint.sh is included. Fixes the docker CI job failing on `chmod +x scripts/*.sh` (exit 1) and the runtime CMD that runs the entrypoint.
@Goldokpa
Goldokpa merged commit fad0ffa into main Jun 24, 2026
4 checks passed
Goldokpa added a commit that referenced this pull request Jun 26, 2026
* chore(deploy): add Render.com deployment configuration

- Add render.yaml blueprint for Render.com free-tier web service
- Add scripts/render_entrypoint.sh to write GEE key from env var at startup
- Add scripts/setup_render_secrets.sh to upload secrets via Render CLI
- Update Dockerfile to copy scripts and use PORT env var for Render
- Update docs/DEPLOYMENT.md with Render-first deployment instructions
- Keep Fly.io instructions as an alternative for paid accounts

* fix(docker): stop ignoring render_entrypoint.sh in .dockerignore

Narrow `scripts/*.sh` to `scripts/setup_*.sh` so the local-only setup scripts stay excluded from the build context while scripts/render_entrypoint.sh is included. Fixes the docker CI job failing on `chmod +x scripts/*.sh` (exit 1) and the runtime CMD that runs the entrypoint.

---------

Co-authored-by: Gold okpa <Okpagold@gmail.com>
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.

2 participants