Skip to content

feat: Fly.io deployment and k8s-standard health endpoints#55

Closed
Taure wants to merge 3 commits intonovaframework:masterfrom
Taure:feat/fly-deploy
Closed

feat: Fly.io deployment and k8s-standard health endpoints#55
Taure wants to merge 3 commits intonovaframework:masterfrom
Taure:feat/fly-deploy

Conversation

@Taure
Copy link
Copy Markdown
Contributor

@Taure Taure commented Mar 11, 2026

Summary

  • Replace /heartbeat with k8s-standard /healthz (liveness) and /readyz (readiness) endpoints
  • Add fly.toml template pre-configured with health checks, auto-stop, and sensible defaults
  • Add rebar3 nova fly provider with init, deploy, and status actions
  • Auto-read .tool-versions for Erlang/Rebar Docker build args
  • Serve priv/assets/ at /assets/[...] in dev environment for OpenAPI docs access

Usage

rebar3 new nova my_app
cd my_app
rebar3 nova fly init      # create Fly.io app
rebar3 nova fly deploy    # ship it
rebar3 nova fly status    # check status

Test plan

  • `rebar3 new nova test_app` generates `/healthz` and `/readyz` routes
  • Health controller returns 200 for healthz, 200/503 for readyz
  • `fly.toml` generated with correct port and health check paths
  • `rebar3 nova fly` detects missing flyctl and aborts with install instructions
  • `/assets/[...]` route only present in dev environment

🤖 Generated with Claude Code

Taure and others added 3 commits March 10, 2026 22:20
- Add multi-stage Dockerfile with ARG for erlang/rebar versions from .tool-versions
- Add .dockerignore to keep build context clean
- Use nova_jsonlogger in prod_sys.config for structured JSON logging
- Add shutdown_delay and shutdown_drain_timeout config for graceful shutdown
- Disable distributed Erlang by default in vm.args (commented out -sname/-setcookie)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace /heartbeat with /healthz and /readyz endpoints following k8s
conventions. Add fly.toml template and rebar3 nova fly provider for
one-command deploys to Fly.io.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add static file route for /assets/[...] in dev environment only,
so rebar3 nova openapi output is accessible without manual routing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Taure Taure mentioned this pull request Mar 11, 2026
5 tasks
@Taure
Copy link
Copy Markdown
Contributor Author

Taure commented Mar 12, 2026

Closing — Fly.io deployment extracted to standalone rebar3_fly plugin (https://github.com/Taure/rebar3_fly)

@Taure Taure closed this Mar 12, 2026
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