55 lines
1.0 KiB
Markdown
55 lines
1.0 KiB
Markdown
# Fly.io
|
|
|
|
## CLI
|
|
```bash
|
|
# Install (macOS/Linux)
|
|
curl -L https://fly.io/install.sh | sh
|
|
# Install (Windows)
|
|
pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"
|
|
|
|
fly auth login
|
|
fly launch # first time — generates fly.toml
|
|
fly deploy # deploy
|
|
```
|
|
|
|
## Config: fly.toml
|
|
```toml
|
|
app = "my-app"
|
|
primary_region = "sjc"
|
|
|
|
[build]
|
|
|
|
[http_service]
|
|
internal_port = 3000
|
|
force_https = true
|
|
auto_stop_machines = "stop"
|
|
auto_start_machines = true
|
|
min_machines_running = 0
|
|
|
|
[[vm]]
|
|
memory = "256mb"
|
|
cpu_kind = "shared"
|
|
cpus = 1
|
|
```
|
|
|
|
## Detection
|
|
- `fly.toml` in project root
|
|
|
|
## Free Tier
|
|
- No persistent free tier for new accounts
|
|
- One-time trial credit only
|
|
- Legacy Hobby: 3x shared VMs + 3GB volume
|
|
|
|
## Cost Optimize
|
|
- `auto_stop_machines = "stop"` + `min_machines_running = 0`
|
|
- Avoids idle charges for dev/staging
|
|
|
|
## Rollback
|
|
```bash
|
|
fly releases
|
|
fly deploy --image registry.fly.io/my-app:PREVIOUS_VERSION
|
|
```
|
|
|
|
## Best For
|
|
Dockerized apps, globally distributed apps, Elixir/Phoenix, managed Postgres
|