| Deploy from GitHub |
Connect the repo and push to main. Every push goes live with a zero-downtime rollout. Bring a Dockerfile and it is used as-is; on a paid plan the build detects your stack for you.
How deploys work
|
Deploy on push means a GitHub Actions workflow you write, with a Fly deploy token stored as a repository secret.
Fly.io docs
|
| Deploy from a folder, or from your AI tool |
npx dockhold deploy ships any folder, no repo needed. An MCP server, llms.txt and agent rules let Claude, Cursor or Codex deploy here on their own.
Deploy from your AI tool
|
fly deploy builds from the local folder, driven by a fly.toml. flyctl ships an MCP server for Claude, Cursor, VS Code, Zed and others.
Fly.io docs
|
| HTTPS and custom domains |
HTTPS on every app from the first deploy. Your own domains on any paid plan, several per app, with certificates issued and renewed for you.
Custom domains
|
Automatic certificates. The first ten single-hostname certificates are free, then $0.10 a month each; wildcards $1 a month. A dedicated IPv4 is $2 a month.
Fly.io pricing
|
| Managed database |
Managed Postgres on every account, free included. One click and DATABASE_URL is injected, with vector search built in. Add dedicated database memory at $10 per GB when you want faster queries.
Databases
|
Managed Postgres from $38 a month for the 1 GB Basic plan, plus $0.28 per GB of storage. Or run Postgres yourself on a Machine and operate it.
Fly.io docs
|
| Persistent storage |
Turn on app storage and the app gets a folder that survives restarts and deploys. It draws on the same pool as database disk: $0.20 per GB, first 10 GB free.
App storage
|
A volume is a slice of one server’s drive, tied to one Machine. Fly’s docs say to always provision at least two volumes per app.
Fly.io docs
|
| Always on, and extra copies |
Every app is always on, free included. No sleep mode, no cold start. On a paid plan, run several copies of one app on separate hosts with traffic shared across them.
Runtime
|
fly launch writes auto_stop_machines = "stop" and min_machines_running = 0, so an idle app can stop entirely until the next request wakes it. Keeping it on is a setting you change. Copies are Machines you add yourself.
Fly.io docs
|
| Private apps |
Flip an app to private and every request needs a token, checked at the edge before it reaches your code. Named tokens you can rotate, an optional IP allow-list, on any paid plan.
Private apps
|
Private networking connects the apps in your organization over a WireGuard mesh, for app-to-app traffic.
Fly.io docs
|
| Scheduled tasks |
Run a command on a cron schedule, as its own run of the app’s image, on every account. A task reaches your app, its database and the internet.
Pricing
|
A Machine can be scheduled hourly, daily, weekly or monthly. For a cron expression, Fly’s docs point you to running Cron Manager as an app of its own.
Fly.io docs
|
| Pricing model |
One pool of capacity, split across as many apps as you want, no per-app fee. $5 per 512 MB + 0.5 vCPU, $10 per GB of database memory, $0.20 per GB of disk. The bill changes only when you change it.
Pricing
|
Metered by the second, card on file required. A shared-cpu-1x Machine is $2.02 a month at 256 MB, $3.32 at 512 MB, $5.92 at 1 GB, $11.11 at 2 GB. Volumes $0.15 per GB. Outbound bandwidth $0.02 per GB in Europe and North America.
Fly.io pricing
|
| Free tier |
256 MB of always-on app power, a managed database and 10 GB of storage. No card, no trial clock, no sleep.
Pricing
|
Trial only: seven days and two hours of Machine runtime, no card needed to start. When it ends, apps stop until a card is on file.
Fly.io docs
|
| Where it runs |
Germany, in the EU. Your apps, databases and storage stay there.
Security and trust
|
Regions on several continents, you pick per app. In the EU: Amsterdam, Frankfurt, Paris and Stockholm.
Fly.io docs
|