diff --git a/app-guides/edgedb.mdx b/app-guides/edgedb.mdx index 3c436ead09..bf60916527 100644 --- a/app-guides/edgedb.mdx +++ b/app-guides/edgedb.mdx @@ -1,5 +1,6 @@ --- title: EdgeDB on Fly +description: "Run EdgeDB on Fly.io backed by a Fly Postgres app: set EDGEDB_SERVER_* secrets, attach Postgres, grant role permissions, and persist the TLS cert." source_url: https://fly.io/docs/app-guides/edgedb/ --- diff --git a/app-guides/fauna.mdx b/app-guides/fauna.mdx index ded886a68a..0d16d83824 100644 --- a/app-guides/fauna.mdx +++ b/app-guides/fauna.mdx @@ -1,5 +1,6 @@ --- title: Fauna and Fly.io +description: "Pair a Fly.io app with a Fauna database: Fauna starter kits, US and EU Region Groups, and which Fly regions to scale into with fly scale count." source_url: https://fly.io/docs/app-guides/fauna/ --- diff --git a/app-guides/livebook.mdx b/app-guides/livebook.mdx index 7ec5300214..4c75c464ff 100644 --- a/app-guides/livebook.mdx +++ b/app-guides/livebook.mdx @@ -1,5 +1,6 @@ --- title: Deploy Livebook on Fly.io +description: "Deploy Livebook to one Fly Machine with a 1GB volume: a ready fly.toml, LIVEBOOK_PASSWORD secret, shared-cpu-2x sizing, and auto stop and start notes." source_url: https://fly.io/docs/app-guides/livebook/ --- diff --git a/app-guides/minio.mdx b/app-guides/minio.mdx index b6559bc2ba..845d501f72 100644 --- a/app-guides/minio.mdx +++ b/app-guides/minio.mdx @@ -1,5 +1,6 @@ --- title: Deploy MinIO Object Storage to Fly.io +description: "Self-host S3-compatible MinIO object storage on Fly.io with a volume, reach the console via fly proxy, use the mc client, and set up a 3-node cluster." source_url: https://fly.io/docs/app-guides/minio/ --- diff --git a/app-guides/mysql-on-fly.mdx b/app-guides/mysql-on-fly.mdx index 13249b764c..48db8a55fa 100644 --- a/app-guides/mysql-on-fly.mdx +++ b/app-guides/mysql-on-fly.mdx @@ -1,5 +1,6 @@ --- title: Use a MySQL Database +description: "Run self-managed MySQL on Fly.io from the official image: volume, secrets, [processes] datadir and auth plugin flags per version, fly proxy, and backups." source_url: https://fly.io/docs/app-guides/mysql-on-fly/ --- diff --git a/app-guides/planetscale.mdx b/app-guides/planetscale.mdx index 020487a876..1b8f93f73e 100644 --- a/app-guides/planetscale.mdx +++ b/app-guides/planetscale.mdx @@ -1,5 +1,6 @@ --- title: Fly.io and PlanetScale +description: "Connect a Node app on Fly.io to PlanetScale read-only regions, pick the closest replica per region, and replay writes to the primary with fly-replay." source_url: https://fly.io/docs/app-guides/planetscale/ --- diff --git a/deep-dive/application.mdx b/deep-dive/application.mdx index 0f4a4289d7..82f5b19db9 100644 --- a/deep-dive/application.mdx +++ b/deep-dive/application.mdx @@ -1,5 +1,6 @@ --- title: Your Fly App +description: "The Fly.io deep dive demo runs on two Fly Machines with autostop and autostart. Scale them vertically or with fly scale count, edit fly.toml, and redeploy." source_url: https://fly.io/docs/deep-dive/application/ --- diff --git a/deep-dive/django.mdx b/deep-dive/django.mdx index 465bf766ef..9c9abd6877 100644 --- a/deep-dive/django.mdx +++ b/deep-dive/django.mdx @@ -1,5 +1,6 @@ --- title: Django demo reference +description: "How the Django dictaphone demo fits together: Django Storages on Tigris, Channels on Redis, Postgres via DATABASE_URL, and Celery jobs that call Whisper." sidebarTitle: Django source_url: https://fly.io/docs/deep-dive/django/ --- diff --git a/deep-dive/index.mdx b/deep-dive/index.mdx index 7082b13b8b..0a3f5634d2 100644 --- a/deep-dive/index.mdx +++ b/deep-dive/index.mdx @@ -1,5 +1,6 @@ --- title: Deep dive demo +description: "An hour-long Fly.io demo deploying MDN's Web Dictaphone with Postgres, Tigris, and Upstash Redis WebSockets in Django, Next.js, Node, Phoenix, or Rails." source_url: https://fly.io/docs/deep-dive/ --- diff --git a/deep-dive/launch-deep-dive.mdx b/deep-dive/launch-deep-dive.mdx index d2a81acc03..b96a6380d0 100644 --- a/deep-dive/launch-deep-dive.mdx +++ b/deep-dive/launch-deep-dive.mdx @@ -1,5 +1,6 @@ --- title: Launch the demo +description: "Install flyctl, then run fly launch --from with the Django, Node.js, Next.js, Phoenix, or Rails dictaphone repo to deploy the deep dive demo on Fly.io." source_url: https://fly.io/docs/deep-dive/launch-deep-dive/ --- diff --git a/deep-dive/nextjs.mdx b/deep-dive/nextjs.mdx index 015b2969ce..c939467b47 100644 --- a/deep-dive/nextjs.mdx +++ b/deep-dive/nextjs.mdx @@ -1,5 +1,6 @@ --- title: Next.js demo reference +description: "Walk through the Next.js dictaphone source: server.js WebSockets, the app/audio route for clip GET, PUT, and DELETE, pg for Postgres, pubsub.js for Redis." sidebarTitle: Next.js source_url: https://fly.io/docs/deep-dive/nextjs/ --- diff --git a/deep-dive/nodejs.mdx b/deep-dive/nodejs.mdx index 81f7696c8f..b8ea6ab255 100644 --- a/deep-dive/nodejs.mdx +++ b/deep-dive/nodejs.mdx @@ -1,5 +1,6 @@ --- title: Node.js demo reference +description: "Tour the Express.js dictaphone demo: EJS views, the pg module, AWS SDK access to Tigris, express-ws WebSockets, and a Redis queue that updates browsers." sidebarTitle: Node.js source_url: https://fly.io/docs/deep-dive/nodejs/ --- diff --git a/deep-dive/phoenix.mdx b/deep-dive/phoenix.mdx index b035a78a57..bf4be6db33 100644 --- a/deep-dive/phoenix.mdx +++ b/deep-dive/phoenix.mdx @@ -1,5 +1,6 @@ --- title: Phoenix demo reference +description: "See how the Phoenix dictaphone demo uses LiveView, Ecto with Postgres, ExAws.S3 for Tigris, and Phoenix.PubSub.Redis, plus the Whisper audio controller." sidebarTitle: Phoenix source_url: https://fly.io/docs/deep-dive/phoenix/ --- diff --git a/deep-dive/postgresql.mdx b/deep-dive/postgresql.mdx index eaa5be2db9..57a70c4840 100644 --- a/deep-dive/postgresql.mdx +++ b/deep-dive/postgresql.mdx @@ -1,5 +1,6 @@ --- title: "Deep Dive: PostgreSQL" +description: "Fly Postgres in the deep dive demo starts as one Machine in its own app. Add an HA cluster and read replicas, and keep it on the private network only." sidebarTitle: PostgreSQL source_url: https://fly.io/docs/deep-dive/postgresql/ --- diff --git a/deep-dive/rails.mdx b/deep-dive/rails.mdx index c4a71a1f0c..526f4803b4 100644 --- a/deep-dive/rails.mdx +++ b/deep-dive/rails.mdx @@ -1,5 +1,6 @@ --- title: Rails demo reference +description: "Rails dictaphone demo internals: Stimulus controllers, Active Record on Postgres, Active Storage on Tigris, Action Cable on Redis, Sidekiq Whisper jobs." sidebarTitle: Rails source_url: https://fly.io/docs/deep-dive/rails/ --- diff --git a/deep-dive/recap.mdx b/deep-dive/recap.mdx index e5818e377d..11bb8e3251 100644 --- a/deep-dive/recap.mdx +++ b/deep-dive/recap.mdx @@ -1,5 +1,6 @@ --- title: Recap +description: "Wrap up the Fly.io deep dive after deploying a full-stack app with object storage, realtime updates, and AI, plus links to production, pricing, support." source_url: https://fly.io/docs/deep-dive/recap/ --- diff --git a/deep-dive/redis.mdx b/deep-dive/redis.mdx index 518d180c61..0e3138b548 100644 --- a/deep-dive/redis.mdx +++ b/deep-dive/redis.mdx @@ -1,5 +1,6 @@ --- title: Upstash Redis +description: "Upstash Redis in the deep dive demo broadcasts pubsub updates to each Machine, which tells browsers over WebSockets. It also caches for Node and Rails." source_url: https://fly.io/docs/deep-dive/redis/ --- diff --git a/deep-dive/tigris.mdx b/deep-dive/tigris.mdx index cccf03efc3..40ddc6ffd8 100644 --- a/deep-dive/tigris.mdx +++ b/deep-dive/tigris.mdx @@ -1,5 +1,6 @@ --- title: Tigris +description: "Tigris object storage serves the demo's audio files across regions with no setup. Make a bucket public, or migrate from S3 gradually with shadow buckets." source_url: https://fly.io/docs/deep-dive/tigris/ --- diff --git a/deep-dive/whisper.mdx b/deep-dive/whisper.mdx index 8c211ac467..13abc01513 100644 --- a/deep-dive/whisper.mdx +++ b/deep-dive/whisper.mdx @@ -1,5 +1,6 @@ --- title: Whisper +description: "Add speech-to-text to the deep dive demo with fly launch --attach, which runs OpenAI Whisper on an L40S GPU Machine that is reachable only over Flycast." source_url: https://fly.io/docs/deep-dive/whisper/ --- diff --git a/litefs/backup.mdx b/litefs/backup.mdx index b7193cda17..e900f3e23a 100644 --- a/litefs/backup.mdx +++ b/litefs/backup.mdx @@ -1,5 +1,6 @@ --- title: Backing up your LiteFS cluster +description: "Back up a LiteFS cluster with litefs export, gzip, and rolling S3 copies, or stream continuously to Tigris with Litestream for point-in-time restore." sidebarTitle: Backing up your cluster source_url: https://fly.io/docs/litefs/backup/ --- diff --git a/litefs/cloud-backups.mdx b/litefs/cloud-backups.mdx index f273dde50f..97253143cd 100644 --- a/litefs/cloud-backups.mdx +++ b/litefs/cloud-backups.mdx @@ -1,5 +1,6 @@ --- title: Using LiteFS Cloud for Backups +description: "LiteFS Cloud was retired in October 2024, so this is kept for reference. Covers creating a cluster, upgrading to v0.5.0, and setting LITEFS_CLOUD_TOKEN." sidebarTitle: Using Cloud for Backups source_url: https://fly.io/docs/litefs/cloud-backups/ --- diff --git a/litefs/cloud-restore.mdx b/litefs/cloud-restore.mdx index 22cfd1ba8e..ff0ba598b9 100644 --- a/litefs/cloud-restore.mdx +++ b/litefs/cloud-restore.mdx @@ -1,5 +1,6 @@ --- title: Restoring from a LiteFS Cloud Backup +description: "Archived: LiteFS Cloud was retired in 2024. Restoring a database to any point in the past 30 days at 5-minute granularity, and why a write was needed." sidebarTitle: Restoring from a Cloud Backup source_url: https://fly.io/docs/litefs/cloud-restore/ --- diff --git a/litefs/config.mdx b/litefs/config.mdx index 1c5d2cec7d..6f657133e3 100644 --- a/litefs/config.mdx +++ b/litefs/config.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: Config Reference title: LiteFS Config Reference +description: "Reference for each litefs.yml section: fuse and data dirs, exec, HTTP API port 20202, proxy, Consul or static leases, env var expansion, and trace logging." source_url: https://fly.io/docs/litefs/config/ --- diff --git a/litefs/disaster-recovery.mdx b/litefs/disaster-recovery.mdx index db713eaa20..b93f785941 100644 --- a/litefs/disaster-recovery.mdx +++ b/litefs/disaster-recovery.mdx @@ -1,5 +1,6 @@ --- title: Disaster Recovery from LiteFS Cloud +description: "Deprecated LiteFS Cloud guide to rebuilding a lost cluster: run only the primary, fix the clusterid file, clear the Consul key conflict, re-clone replicas." sidebarTitle: Disaster Recovery from Cloud source_url: https://fly.io/docs/litefs/disaster-recovery/ --- diff --git a/litefs/events.mdx b/litefs/events.mdx index 91f771f222..e64dc1a51b 100644 --- a/litefs/events.mdx +++ b/litefs/events.mdx @@ -1,5 +1,6 @@ --- title: Reading the LiteFS event stream +description: "Stream real-time LiteFS events from GET /events on port 20202 as newline-delimited JSON, including the init, tx, and primaryChange types and their fields." sidebarTitle: Reading the event stream source_url: https://fly.io/docs/litefs/events/ --- diff --git a/litefs/export.mdx b/litefs/export.mdx index 9c624c1772..a86b956e5b 100644 --- a/litefs/export.mdx +++ b/litefs/export.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: Export Command title: LiteFS Export Command +description: "The litefs export command downloads a SQLite database from a local or remote LiteFS node with the -name and -url flags. It is safe on a live database." source_url: https://fly.io/docs/litefs/export/ --- diff --git a/litefs/faq.mdx b/litefs/faq.mdx index 8f7857837d..e79fc2b36f 100644 --- a/litefs/faq.mdx +++ b/litefs/faq.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: FAQ title: LiteFS FAQ +description: "LiteFS answers on database size limits, FUSE write throughput near 100 tx/sec, async replication, write downtime on deploys, and LiteFS vs Litestream." source_url: https://fly.io/docs/litefs/faq/ --- diff --git a/litefs/getting-started-docker.mdx b/litefs/getting-started-docker.mdx index 8143488a53..3addb31569 100644 --- a/litefs/getting-started-docker.mdx +++ b/litefs/getting-started-docker.mdx @@ -1,5 +1,6 @@ --- title: Getting Started with LiteFS in Docker +description: "Run a LiteFS cluster in Docker: install fuse3, copy the flyio/litefs binary, set a static lease in litefs.yml, use --privileged, route writes via nginx." source_url: https://fly.io/docs/litefs/getting-started-docker/ --- diff --git a/litefs/how-it-works.mdx b/litefs/how-it-works.mdx index 7b587775b8..50652d3fa5 100644 --- a/litefs/how-it-works.mdx +++ b/litefs/how-it-works.mdx @@ -1,5 +1,6 @@ --- title: How LiteFS Works +description: "LiteFS intercepts SQLite journal and WAL writes over FUSE, packs page sets into LTX files, tracks TXID positions, and elects a primary with Consul leases." source_url: https://fly.io/docs/litefs/how-it-works/ --- diff --git a/litefs/import.mdx b/litefs/import.mdx index 6716c1a453..266d65914b 100644 --- a/litefs/import.mdx +++ b/litefs/import.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: Import Command title: LiteFS Import Command +description: "Upload a SQLite file to a LiteFS cluster with litefs import -name, creating or replacing it on a local or remote node. Run PRAGMA integrity_check first." source_url: https://fly.io/docs/litefs/import/ --- diff --git a/litefs/migrations.mdx b/litefs/migrations.mdx index e0486e181b..f17b334fd2 100644 --- a/litefs/migrations.mdx +++ b/litefs/migrations.mdx @@ -1,5 +1,6 @@ --- title: Running database migrations +description: "Run migrations on LiteFS with lease.promote auto-promotion and if-candidate exec commands, or forward writes from any node with -with-halt-lock-on." source_url: https://fly.io/docs/litefs/migrations/ --- diff --git a/litefs/mount.mdx b/litefs/mount.mdx index 56481b6026..a093539353 100644 --- a/litefs/mount.mdx +++ b/litefs/mount.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: Mount Command title: LiteFS Mount Command +description: "litefs mount starts the FUSE mount and joins the cluster. Covers the -config and -no-expand-env flags plus -fuse.debug and -tracing for verbose debug logs." source_url: https://fly.io/docs/litefs/mount/ --- diff --git a/litefs/position.mdx b/litefs/position.mdx index 60df36b920..075d6447e4 100644 --- a/litefs/position.mdx +++ b/litefs/position.mdx @@ -1,6 +1,7 @@ --- sidebarTitle: Tracking replication position title: Tracking LiteFS replication position +description: "Read a database's -pos file for its LiteFS replication position, a hex TXID plus rolling checksum, and use it or a delay for read-your-writes consistency." source_url: https://fly.io/docs/litefs/position/ --- diff --git a/litefs/primary.mdx b/litefs/primary.mdx index 0e5a3ea28f..9f9adb8f26 100644 --- a/litefs/primary.mdx +++ b/litefs/primary.mdx @@ -1,5 +1,6 @@ --- title: Determining the LiteFS primary +description: "Read the .primary file in the LiteFS mount to get the primary's hostname, decide when to forward writes, and see why replicas return SQLITE_READONLY." sidebarTitle: Determining the primary source_url: https://fly.io/docs/litefs/primary/ --- diff --git a/litefs/proxy.mdx b/litefs/proxy.mdx index 850ea83e8f..0bb1e915cf 100644 --- a/litefs/proxy.mdx +++ b/litefs/proxy.mdx @@ -1,5 +1,6 @@ --- title: Built-in HTTP Proxy +description: "The LiteFS HTTP proxy on Fly.io forwards writes to the primary via fly-replay and holds replica reads until a TXID cookie catches up. No WebSocket support." source_url: https://fly.io/docs/litefs/proxy/ --- diff --git a/litefs/releases.mdx b/litefs/releases.mdx index ca2f079097..77c9cd52da 100644 --- a/litefs/releases.mdx +++ b/litefs/releases.mdx @@ -1,5 +1,6 @@ --- title: LiteFS Releases +description: "Download prebuilt LiteFS binaries for amd64 or arm64 from GitHub releases when running on a Linux VPS without Docker or skipping the LiteFS Docker image." sidebarTitle: Releases source_url: https://fly.io/docs/litefs/releases/ --- diff --git a/litefs/run.mdx b/litefs/run.mdx index 0a0868a84e..760ebab296 100644 --- a/litefs/run.mdx +++ b/litefs/run.mdx @@ -1,5 +1,6 @@ --- title: LiteFS Run Command +description: "litefs run executes the command after the double dash, with -promote to make the node primary, -if-candidate, and -with-halt-lock-on for write forwarding." sidebarTitle: Run Command source_url: https://fly.io/docs/litefs/run/ --- diff --git a/litefs/speedrun.mdx b/litefs/speedrun.mdx index d3e6901ce4..9aacc547f9 100644 --- a/litefs/speedrun.mdx +++ b/litefs/speedrun.mdx @@ -1,5 +1,6 @@ --- title: 'Speedrun: Add LiteFS to your app' +description: "Add LiteFS to a Dockerized app on Fly.io fast: copy the sample litefs.yml, install fuse3, create a volume, run fly consul attach, deploy, clone regions." source_url: https://fly.io/docs/litefs/speedrun/ --- diff --git a/model-context-protocol/access-control.mdx b/model-context-protocol/access-control.mdx index 8dcecc6df0..f9600fdfb7 100644 --- a/model-context-protocol/access-control.mdx +++ b/model-context-protocol/access-control.mdx @@ -1,5 +1,6 @@ --- title: Access Control +description: "Securing an MCP server on Fly.io starts with HTTP Authorization, since most stdio MCP servers were never meant to be exposed to the internet." source_url: https://fly.io/docs/mcp/access-control/ --- diff --git a/model-context-protocol/deploy-on.mdx b/model-context-protocol/deploy-on.mdx index a4c1245192..12f93fa533 100644 --- a/model-context-protocol/deploy-on.mdx +++ b/model-context-protocol/deploy-on.mdx @@ -1,5 +1,6 @@ --- title: Deploy on +description: "Why to run each MCP server on its own Fly Machine instead of your laptop: isolation, plus access to volumes, SQLite databases, and app internal state." source_url: https://fly.io/docs/mcp/deploy-on/ --- diff --git a/model-context-protocol/deploy-with.mdx b/model-context-protocol/deploy-with.mdx index eabcbef8d8..7900baff4c 100644 --- a/model-context-protocol/deploy-with.mdx +++ b/model-context-protocol/deploy-with.mdx @@ -1,5 +1,6 @@ --- title: Deploy with +description: "Compare fly launch, fly machine run, and the Machines API for deploying a stdio MCP server, using the Filesystem MCP Server with a volume as the example." source_url: https://fly.io/docs/mcp/deploy-with/ --- diff --git a/model-context-protocol/examples.mdx b/model-context-protocol/examples.mdx index 35dabc8efd..86fc21b20e 100644 --- a/model-context-protocol/examples.mdx +++ b/model-context-protocol/examples.mdx @@ -1,5 +1,6 @@ --- title: Examples +description: "Copy-paste fly mcp launch commands for Fetch, internal DNS, Slack, Filesystem with a volume, GitHub, and Desktop Commander MCP servers, with secrets." source_url: https://fly.io/docs/mcp/examples/ --- diff --git a/model-context-protocol/flyctl-server.mdx b/model-context-protocol/flyctl-server.mdx index b2a95f32d1..ce0439e900 100644 --- a/model-context-protocol/flyctl-server.mdx +++ b/model-context-protocol/flyctl-server.mdx @@ -1,5 +1,6 @@ --- title: flyctl mcp server +description: "Add the flyctl MCP server to Claude, Cursor, or Zed with fly mcp server, see which flyctl commands it supports, test in MCP inspector, or run it remotely." source_url: https://fly.io/docs/mcp/flyctl-server/ --- diff --git a/model-context-protocol/index.mdx b/model-context-protocol/index.mdx index 43a4f38658..cef4ff1afd 100644 --- a/model-context-protocol/index.mdx +++ b/model-context-protocol/index.mdx @@ -1,5 +1,6 @@ --- title: Model Context Protocol +description: "Run Model Context Protocol servers on Fly.io: fly mcp launch for stdio servers, plus choosing a transport, deploy method, host, and access control." source_url: https://fly.io/docs/mcp/ --- diff --git a/model-context-protocol/launch.mdx b/model-context-protocol/launch.mdx index c7aadd0bf0..ce55862f90 100644 --- a/model-context-protocol/launch.mdx +++ b/model-context-protocol/launch.mdx @@ -1,5 +1,6 @@ --- title: Launch an MCP Server with fly mcp launch +description: "fly mcp launch deploys an npx, uvx, go run, or Docker stdio MCP server to a Fly Machine and configures your client; fly mcp inspect and destroy follow." sidebarTitle: fly mcp launch source_url: https://fly.io/docs/mcp/launch/ --- diff --git a/model-context-protocol/transports.mdx b/model-context-protocol/transports.mdx index bc49eeb6c5..6f79e2dbb3 100644 --- a/model-context-protocol/transports.mdx +++ b/model-context-protocol/transports.mdx @@ -1,5 +1,6 @@ --- title: MCP Transports +description: "MCP transports on Fly.io: stdio (recommended), Streamable HTTP, and deprecated SSE, demonstrated with Anthropic's Everything MCP Server and printEnv." source_url: https://fly.io/docs/mcp/transports/ ---