nixfredFLY.IOFIELD GUIDE · BY NIX UNOFFICIAL
LEARN / DATA AND INTEGRATIONS

Integrations: data, storage, secrets and observability

Fly.io splits its data story into things it runs and supports (Managed Postgres, metrics, logs), partner services billed on your Fly.io invoice (Tigris, Upstash), and things it says it will not support (unmanaged Postgres, LiteFS). Knowing which bucket a customer’s question falls into tells you who can help them (https://fly.io/docs/about/support/).

This page is drawn from https://fly.io/docs/about/support/, https://fly.io/docs/database-storage-guides/, https://fly.io/docs/postgres/, https://fly.io/docs/postgres/extensions/, https://fly.io/docs/unmanaged-postgres/, https://fly.io/docs/tigris/, https://fly.io/docs/upstash/redis/, https://fly.io/docs/apps/secrets/, https://fly.io/docs/monitoring/, https://fly.io/docs/monitoring/metrics/, https://fly.io/docs/monitoring/exporting-logs/, https://fly.io/docs/litefs/ and the Fly.io blog posts on Litestream.

What is supported, in one place

The support page lists supported products as Networking, Machines, Managed Postgres (MPG), Apps, Launch/Deploy, Volumes, Security, Accounts and Billing, Extensions (Tigris, Upstash, Depot) and Monitoring (metrics and logs). It lists LiteFS and Unmanaged Postgres under “Not Supported” (https://fly.io/docs/about/support/).

flowchart LR
  A[Your app<br/>on Machines] --> M[Managed Postgres<br/>supported]
  A --> T[Tigris<br/>extension]
  A --> U[Upstash Redis<br/>extension]
  A --> S[SQLite<br/>Litestream or LiteFS]
  A --> O[Prometheus,<br/>Grafana, logs]
Whiteboard diagram (rendered from the source mermaid)

Managed Postgres (MPG) and the unmanaged status

  • What it is. “Fly.io’s Managed Postgres is our fully-managed database service”. It covers backups, high availability with automatic failover, monitoring, scaling, 24/7 support and encryption at rest and in transit (https://fly.io/docs/postgres/).
  • Plans. Basic (Shared-2x, 1GB) is $38.00 a month; Starter (2GB) $72.00; Launch (Performance-2x, 8GB) $282.00; Scale (Performance-4x, 32GB) $962.00; Performance (Performance-8x, 64GB) $1,922.00. Storage is billed at $0.28 per GB for a 30-day month (https://fly.io/docs/postgres/).
  • Versions and limits. Postgres 16 or 17, chosen at creation, with no in-place major upgrade (use pg_dump and pg_restore). Storage maxes at 1 TB. There are no alerts on CPU or storage, only emailed maintenance notices (https://fly.io/docs/postgres/).
  • Extensions. Only pgvector and PostGIS are supported as third-party extensions. plpgsql, pg_stat_monitor and pgaudit are on by default and cannot be disabled (https://fly.io/docs/postgres/extensions/).
  • Commands. fly mpg create, fly mpg attach, fly mpg connect, fly mpg proxy, plus backup, restore, fork and users subcommands (https://fly.io/docs/flyctl/cmd/fly_mpg/, https://fly.io/docs/postgres/create-and-connect/).
  • Cleanup trap. The pricing page says “Managed Postgres lives outside your apps”, so deleting an app leaves the database running and billing. Check the dashboard when cleaning up (https://fly.io/docs/about/pricing/).
  • Unmanaged Postgres. The pages are archived: “Fly Postgres (unmanaged) is no longer maintained, and Fly.io Support is not able to provide support or guidance for it” (https://fly.io/docs/unmanaged-postgres/). The pricing page files it under “Unsupported Products” (https://fly.io/docs/about/pricing/).

Say: “Managed Postgres is the supported database; old fly postgres clusters are yours to run.” Ask: “Which one are you on?” The cluster generation matters for billing, since older v1 clusters are billed on provisioned storage (https://fly.io/docs/postgres/).

Tigris object storage

  • What it is. “Tigris is available natively as the object storage provider for Fly.io.” It is S3-compatible and globally distributed (https://fly.io/docs/tigris/).
  • Provisioning. fly storage create makes a bucket; inside an app context it sets BUCKET_NAME, AWS_ENDPOINT_URL_S3, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as secrets (https://fly.io/docs/tigris/).
  • Keys. The docs say flyctl “can’t retrieve them later”, so tell customers to save the credentials at creation (https://fly.io/docs/tigris/).
  • Public buckets. Private by default; fly storage create --public makes a public one (https://fly.io/docs/tigris/).
  • Deleting. fly storage destroy removes the bucket and all its objects, and cannot be undone (https://fly.io/docs/tigris/).
  • Billing. Extensions are charged at the provider’s list price on your Fly.io invoice, and data transfer to them is billed separately (https://fly.io/docs/about/pricing/).

Upstash Redis and other extensions

Secrets

Metrics: Prometheus and Grafana

Logs

SQLite: LiteFS and Litestream

Lead with: “Pick Managed Postgres for supported SQL, Tigris for blobs, and treat SQLite replication as your own responsibility.”

← flyctl, Machines API, tokens · Sprites and agents →