Small Express app hosted on Fly.io.
- App name:
willowwoodsberry - URL: https://willowwoodsberry.fly.dev/
- Region:
lhr
npm install
node server.jsThe server binds to 0.0.0.0:8080 (see server.js, fly.toml).
Environment variables go in .env (loaded via dotenv). Resend is used for
email, so RESEND_API_KEY must be set in the Fly environment — manage secrets
with fly secrets set KEY=value / fly secrets list.
One-time setup:
brew install flyctl # if not installed
fly auth loginTo ship changes:
git commit ... # commit your changes first
fly deployfly deploy builds the image from the repo-root Dockerfile using Fly's
remote Depot builder, pushes it to registry.fly.io/willowwoodsberry, and
performs a rolling update of the machines defined in fly.toml. Deploy
progress is also visible at
https://fly.io/apps/willowwoodsberry/monitoring.
Pushes to main now deploy automatically via
.github/workflows/fly-deploy.yml.
Required one-time GitHub setup:
fly tokens create deploy -x 999999hAdd the returned token to the repository's GitHub Actions secrets as
FLY_API_TOKEN. After that, every push to main will trigger a Fly deploy.
Useful follow-up commands:
fly status # machine state
fly logs # tail logs
fly releases # deploy history
fly ssh console # shell into a machinefly.toml— app name, region, VM size, HTTP service configDockerfile—node:20-alpine, installs prod deps, runsnode server.jsserver.js— Express server (port 8080)