Fly.io

Cheap always-on small machines in many regions — more hands-on.

Trial only VMs / containers close to users

Free tier

No free tier — free trial of 2 VM hours or 7 days, whichever comes first

  • Trial: 2 total VM hours, up to 10 machines, 20 GB volumes; apps stop when it runs out
  • Billed per second while a machine runs
  • Smallest preset shared-cpu-1x 256 MB: $2.19/month (Ashburn; other regions cost more)

Paid

≈$2.19/mo: Pay-as-you-go: shared-cpu-1x · 256 MB is $2.19/month in Ashburn (iad); region multipliers apply. Managed Postgres from $38/month

Catches

  • Needs the flyctl CLI and usually a Dockerfile — not the lowest-friction choice for non-developers.

Deploying to Fly.io

Connect
Install flyctl, run fly launch in the project folder (it detects a Dockerfile or framework), then fly deploy for later updates.
Build
A Vite SPA is typically built in a Docker stage and served by nginx on port 80 (set internal_port in fly.toml).
Env vars
fly secrets set NAME=value for runtime secrets; build-time VITE_* values must be passed as build args
Domain
fly certs add yourdomain.com, then create the A/AAAA (or CNAME) records flyctl prints.

Single-page app fallback

nginx.conf
location / {
    try_files $uri $uri/ /index.html;
}

Official docs (opens in a new tab)

Guides for Fly.io