diff --git a/about/extensions.html.markerb b/about/extensions.html.markerb index e1418ae005..ea1b5d0c1e 100644 --- a/about/extensions.html.markerb +++ b/about/extensions.html.markerb @@ -9,7 +9,7 @@ Fly.io is a global cloud service for running full stack apps close to users. We We have two main goals: to deliver a slick developer experience, and to build the best possible platform for running full stack apps. We're looking for partners that share this goal, extending Fly.io with services our customers need. -Services such as managed databases, exception handlers, CI runners or log aggregators are great examples. Check out our [managed Upstash for Redis](https://fly.io/docs/reference/redis/) to get an idea of what's possible, and how we integrate services directly into our CLI. +Services such as managed databases, exception handlers, CI runners or log aggregators are great examples. Check out our [managed Upstash for Redis](https://fly.io/docs/upstash/redis/) to get an idea of what's possible, and how we integrate services directly into our CLI. [Check out our documentation](https://fly.io/docs) to see what our platform has to offer. Contact us at [extensions@fly.io](mailto:extensions@fly.io) to discuss your case! diff --git a/about/pricing.html.markerb b/about/pricing.html.markerb index cf25d24edf..dbaba303f1 100644 --- a/about/pricing.html.markerb +++ b/about/pricing.html.markerb @@ -243,7 +243,7 @@ You're not billed for the following types of traffic: - all inbound data transfer - data transfer between apps or Machines in the same region (for organizations using granular data transfer rates) - data transfer from apps without an assigned IP address (for organizations not using granular data transfer rates) -- data transfer to [Tigris Object Storage](https://fly.io/docs/reference/tigris) +- data transfer to [Tigris Object Storage](https://fly.io/docs/tigris/) Fly.io pricing is per region group for outbound data transfer. You'll see a more detailed breakdown of cost per region and per traffic type on your monthly invoice. @@ -274,7 +274,7 @@ The [Machine price](#compute) and [volume price](#persistent-storage-volumes) fo ## Extensions -Fly.io offers managed services operated by third parties, such as [Tigris Object Storage](/docs/reference/tigris), [Supabase Postgres](/docs/reference/supabase) and [Upstash Redis](/docs/reference/redis). +Fly.io offers managed services operated by third parties, such as [Tigris Object Storage](/docs/tigris), [Supabase Postgres](/docs/rsupabase/) and [Upstash Redis](/docs/upstash/redis/). When you provision their services, you become their customer, and you pay their list prices via your monthly Fly.io bill. Charges are updated daily in your Fly.io dashboard. diff --git a/apps/going-to-production.html.markerb b/apps/going-to-production.html.markerb index ae8c3150ca..a28dd728fa 100644 --- a/apps/going-to-production.html.markerb +++ b/apps/going-to-production.html.markerb @@ -27,7 +27,7 @@ This checklist guides you through setting up a production environment on Fly.io. - **Make sure private services are not exposed:** Check that your private apps with services don't have public IP addresses. Run `fly ips list` and use `fly ips release` to release unnecessary public IPs. See flyctl [`fly ips` commands](/docs/flyctl/ips/). Assign private apps a [Flycast address](https://fly.io/docs/networking/flycast/) instead. -- **Use Arcjet application security for JavaScript apps:** Secure your app with rate limiting, bot protection, email validation, and defense against common attacks through our extension partner Arcjet. Currently [free in beta](/docs/reference/arcjet/#pricing), but pricing is subject to change. See [Application Security by Arcjet](/docs/reference/arcjet/). +- **Use Arcjet application security for JavaScript apps:** Secure your app with rate limiting, bot protection, email validation, and defense against common attacks through our extension partner Arcjet. Currently [free in beta](/docs/security/arcjet/#pricing), but pricing is subject to change. See [Application Security by Arcjet](/docs/security/arcjet/). ## Networking @@ -47,7 +47,7 @@ This checklist guides you through setting up a production environment on Fly.io. - **Export your logs:** Set up the Fly Log Shipper to aggregate your app’s logs to a service of your choice. See [Export logs](/docs/monitoring/exporting-logs/). -- **Use Sentry for Error tracking**: An application monitoring platform that helps you identify and fix software problems before they impact your users from our extension partner Sentry.Fly.io organizations get a year's worth of [Team Plan](https://sentry.io/pricing/+external) credits. See [Application Monitoring by Sentry](/docs/reference/sentry/). +- **Use Sentry for Error tracking**: An application monitoring platform that helps you identify and fix software problems before they impact your users from our extension partner Sentry.Fly.io organizations get a year's worth of [Team Plan](https://sentry.io/pricing/+external) credits. See [Application Monitoring by Sentry](/docs/monitoring/sentry/). ## Availability, resiliency, and costs diff --git a/apps/move-app-org.html.markerb b/apps/move-app-org.html.markerb index 94279b435c..33fb8f0fe6 100644 --- a/apps/move-app-org.html.markerb +++ b/apps/move-app-org.html.markerb @@ -36,4 +36,4 @@ The following app resources are transferred to the new org automatically: The following extension services need to be reconfigured for the app after the move: -- **[Upstash for Redis](https://fly.io/docs/reference/redis/):** Upstash Redis is only available over an organization's private network. After you move the app, you'll need to provision a new database for the new org. +- **[Upstash for Redis](https://fly.io/docs/upstash/redis/):** Upstash Redis is only available over an organization's private network. After you move the app, you'll need to provision a new database for the new org. diff --git a/blueprints/cell-based.html.md b/blueprints/cell-based.html.md index a6d9424487..65d756d101 100644 --- a/blueprints/cell-based.html.md +++ b/blueprints/cell-based.html.md @@ -220,7 +220,7 @@ likely make use of one or more of the following: addresses many problems, it doesn't help deal with logs that are missing due to application or network problems. Consider having applications emit a heartbeat, and write monitoring software that looks for missing heartbeats - and reports them as issues. [Sentry](https://fly.io/docs/reference/sentry/) + and reports them as issues. [Sentry](https://fly.io/docs/monitoring/sentry/) can help here. * While applying updates when all of the services for a single Machine are self contained is an easier problem then upgrading potentially @@ -251,7 +251,7 @@ As mentioned above, backups are crucial. Items to explore: * [Rsync](https://rsync.samba.org/) is a utility available with Linux distributions that can be used to efficiently copy changes between Machines. * Use a traditional database. - [Supabase](https://fly.io/docs/reference/supabase/), for example, supports + [Supabase](https://fly.io/docs/supabase/), for example, supports [custom claims](https://github.com/supabase-community/supabase-custom-claims) that can be used to build a multi-tenancy option for your database. diff --git a/database-storage-guides.html.md b/database-storage-guides.html.md index 70faa2b6b5..b449bc8e21 100644 --- a/database-storage-guides.html.md +++ b/database-storage-guides.html.md @@ -19,7 +19,7 @@ The Fly Machines in your app provide ephemeral storage, so you get a blank slate _Object storage service from our extension partners._ -- **[Tigris Global Object Storage](/docs/reference/tigris/)** - [Tigris](https://www.tigrisdata.com/+external) is a globally distributed S3-compatible object storage service on Fly.io infrastructure. +- **[Tigris Global Object Storage](/docs/tigris/)** - [Tigris](https://www.tigrisdata.com/+external) is a globally distributed S3-compatible object storage service on Fly.io infrastructure. --- @@ -27,9 +27,9 @@ _Object storage service from our extension partners._ _Managed database services from our extension partners._ -- **[Supabase Postgres (public alpha)](/docs/reference/supabase/)** - [Supabase](https://supabase.com/database+external) Postgres is a full-featured and fully-managed Postgres database on Fly.io infrastructure. +- **[Supabase Postgres (public alpha)](/docs/supabase/)** - [Supabase](https://supabase.com/database+external) Postgres is a full-featured and fully-managed Postgres database on Fly.io infrastructure. -- **[Upstash for Redis](/docs/reference/redis/)** - [Redis](https://redis.io/+external) is an in-memory database commonly used for caching. A managed service by [Upstash](https://upstash.com/+external). +- **[Upstash for Redis](/docs/upstash/redis/)** - [Redis](https://redis.io/+external) is an in-memory database commonly used for caching. A managed service by [Upstash](https://upstash.com/+external). --- diff --git a/happy-path/aim.html.markerb b/happy-path/aim.html.markerb index f705cfefd9..8b573ae330 100644 --- a/happy-path/aim.html.markerb +++ b/happy-path/aim.html.markerb @@ -22,7 +22,7 @@ The demo uses the following: * A [PostgreSQL](https://www.postgresql.org/+external) relational database to store the names of the audio clips * A [Tigris bucket](https://www.tigrisdata.com/+external) to store the the audio files -* [Upstash for Redis](https://fly.io/docs/reference/redis/) and [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API+external) to handle the connections for the realtime requirement +* [Upstash for Redis](https://fly.io/docs/upstash/redis/) and [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API+external) to handle the connections for the realtime requirement ## Demo flavors diff --git a/happy-path/postgresql.html.markerb b/happy-path/postgresql.html.markerb index a4917c571a..af07306b59 100644 --- a/happy-path/postgresql.html.markerb +++ b/happy-path/postgresql.html.markerb @@ -7,7 +7,7 @@ nav: demo Fly Postgres is deployed as a separate app, and that app comes initially configured with a single [Fly Postgres](https://fly.io/docs/postgres/) Machine. That's fine for development, but for production you need redundancy and scalability. With a [few commands](https://fly.io/docs/postgres/advanced-guides/high-availability-and-global-replication/) you can create an HA cluster in your primary region and read-only replicas elsewhere. -If you're interested in a managed offering, [Supabase Postgres](https://fly.io/docs/reference/supabase/) is in public alpha. +If you're interested in a managed offering, [Supabase Postgres](https://fly.io/docs/supabase/) is in public alpha. And there is no lock in here. We have a list of [recommended external providers](https://fly.io/docs/postgres/getting-started/what-you-should-know/#recommended-external-providers), but you're free to host your database literally anywhere. diff --git a/happy-path/redis.html.markerb b/happy-path/redis.html.markerb index ff8f23559d..a88f2e353d 100644 --- a/happy-path/redis.html.markerb +++ b/happy-path/redis.html.markerb @@ -5,7 +5,7 @@ nav: demo order: 7 --- -[Upstash Redis](https://fly.io/docs/reference/redis/) is used by the deep dive demo app for its [pubsub](https://redis.io/docs/latest/commands/?group=pubsub) capabilities, but it can do [so much more](https://upstash.com/docs/redis/overall/rediscompatibility). +[Upstash Redis](https://fly.io/docs/upstash/redis/) is used by the deep dive demo app for its [pubsub](https://redis.io/docs/latest/commands/?group=pubsub) capabilities, but it can do [so much more](https://upstash.com/docs/redis/overall/rediscompatibility). In particular, Redis is useful for caching: diff --git a/happy-path/tigris.html.markerb b/happy-path/tigris.html.markerb index d8c062f463..0ea3c73ad3 100644 --- a/happy-path/tigris.html.markerb +++ b/happy-path/tigris.html.markerb @@ -5,8 +5,8 @@ nav: demo order: 6 --- -[Tigris](https://fly.io/docs/reference/tigris/) is a globally distributed object storage service. It essentially requires no configuration, and seamlessly handles multi-regions. If you upload an audio file to a host in Virginia, you can access it from Amsterdam. Even better: subsequent accesses from regions other than the primary region are served locally. +[Tigris](https://fly.io/docs/tigris/) is a globally distributed object storage service. It essentially requires no configuration, and seamlessly handles multi-regions. If you upload an audio file to a host in Virginia, you can access it from Amsterdam. Even better: subsequent accesses from regions other than the primary region are served locally. -Unlike relational databases, there may be reasons why you want to make your object store available via the internet. In this demo, the object store starts out private, but you can make it [public](https://fly.io/docs/reference/tigris/#public-buckets) if you want. +Unlike relational databases, there may be reasons why you want to make your object store available via the internet. In this demo, the object store starts out private, but you can make it [public](https://fly.io/docs/tigris/#public-buckets) if you want. -And if you happen to have an existing S3 object store, check out [shadow buckets](https://fly.io/docs/reference/tigris/#migrating-to-tigris-with-shadow-buckets) which enable you to incrementally migrate your data. +And if you happen to have an existing S3 object store, check out [shadow buckets](https://fly.io/docs/tigris/#migrating-to-tigris-with-shadow-buckets) which enable you to incrementally migrate your data. diff --git a/index.html.md b/index.html.md index deb92b51c9..89fe7ce915 100644 --- a/index.html.md +++ b/index.html.md @@ -62,11 +62,11 @@ _Run GPU workloads on Fly Machines._ _Services from Fly.io and our extension partners to help you run your entire stack near your users._ -[Upstash for Redis®](/docs/reference/redis/) +[Upstash for Redis®](/docs/upstash/redis/) -[Tigris object storage](/docs/reference/tigris/) +[Tigris object storage](/docs/tigris/) -[Supabase Postgres (public alpha)](/docs/reference/supabase/) +[Supabase Postgres (public alpha)](/docs/supabase/) [LiteFS - Distributed SQLite](/docs/litefs/) @@ -88,7 +88,7 @@ _Explore built-in and custom Prometheus metrics and Grafana dashboards. Live tai [Fly.io Metrics](/docs/monitoring/metrics/) -[Error Monitoring by Sentry](/docs/reference/sentry/) +[Error Monitoring by Sentry](/docs/monitoring/sentry/) [Logging on Fly.io](/docs/monitoring/logging-overview/) @@ -100,6 +100,6 @@ _Built-in security and partner extensions._ [Security](/docs/security/) on the Fly.io platform -[Application security by Arcjet](/docs/reference/arcjet/) for JavaScript apps +[Application security by Arcjet](/docs/security/arcjet/) for JavaScript apps \ No newline at end of file diff --git a/js/frameworks/nextjs.html.markerb b/js/frameworks/nextjs.html.markerb index 30950ed520..3016d7e6d4 100644 --- a/js/frameworks/nextjs.html.markerb +++ b/js/frameworks/nextjs.html.markerb @@ -143,7 +143,7 @@ application. If you still have questions, post on our [community forum](https:/ ### Connecting to Supabase Postgres -[Supabase](https://fly.io/docs/reference/supabase/#create-and-manage-a-supabase-postgres-database) is a managed Postgres service deployed at Fly.io infrastructure. +[Supabase](https://fly.io/docs/supabase/#create-and-manage-a-supabase-postgres-database) is a managed Postgres service deployed at Fly.io infrastructure. You can create a Supabase Postgres instance at Fly.io and use the provided `DATABASE_URL` as described above. Alternatively, you can connect with a dedicated JavaScript client and leverage its API. In this section we'll help you to get started with such setup. @@ -159,7 +159,7 @@ flyctl ext supabase create ? Choose a name, use the default, or leave blank to generate one: hello-nextjs-db ? Choose the primary region (can't be changed later) Warsaw, Poland (waw) -Your Supabase database (hello-nextjs-db) in waw is ready. See details and next steps with: https://fly.io/docs/reference/supabase/ +Your Supabase database (hello-nextjs-db) in waw is ready. See details and next steps with: https://fly.io/docs/supabase/ Setting the following secrets on hello-nextjs: DATABASE_POOLER_URL diff --git a/js/the-basics/object-storage.html.md b/js/the-basics/object-storage.html.md index 6b0fd9771a..fdf04339a4 100644 --- a/js/the-basics/object-storage.html.md +++ b/js/the-basics/object-storage.html.md @@ -22,7 +22,7 @@ fly storage create ``` ```output ? Choose a name, use the default, or leave blank to generate one: -Your Tigris project (xxx) is ready. See details and next steps with: https://fly.io/docs/reference/tigris/ +Your Tigris project (xxx) is ready. See details and next steps with: https://fly.io/docs/tigris/ Setting the following secrets on xxx: AWS_ACCESS_KEY_ID: tid_xxx @@ -53,4 +53,4 @@ fly launch --from https://github.com/fly-apps/node-dictaphone.git ## Find out more! -Now that you are up and running, there is a lot more to explore on the [Tigris Global Object Storage](/docs/reference/tigris/) page. Highlights include public buckets, migrating to Tigris with shadow butckets, Pricing, and AWS API compatibility. \ No newline at end of file +Now that you are up and running, there is a lot more to explore on the [Tigris Global Object Storage](/docs/tigris/) page. Highlights include public buckets, migrating to Tigris with shadow butckets, Pricing, and AWS API compatibility. \ No newline at end of file diff --git a/laravel/database-guides/laravel-redis.html.markerb b/laravel/database-guides/laravel-redis.html.markerb index 04d2c6957a..6260836b4f 100644 --- a/laravel/database-guides/laravel-redis.html.markerb +++ b/laravel/database-guides/laravel-redis.html.markerb @@ -153,7 +153,7 @@ The simplest way to connect your local Laravel application to a Redis Fly App is ## _Laravel with Upstash Managed Redis Fly App_ -Want a fully-managed Redis Fly App? Try [Upstash Redis](https://upstash.com/)! To set up, you can follow our-in-depth guide [here](/docs/reference/redis/) +Want a fully-managed Redis Fly App? Try [Upstash Redis](https://upstash.com/)! To set up, you can follow our-in-depth guide [here](/docs/upstash/redis/) Once you've configured the necessary details through the flyctl prompts, and the app deployment completes, you should get a summary of the Redis cluster you've just deployed, like so: ```output diff --git a/monitoring/index.html.markerb b/monitoring/index.html.markerb index d4de41289e..c7671e4017 100644 --- a/monitoring/index.html.markerb +++ b/monitoring/index.html.markerb @@ -20,7 +20,7 @@ _Fully-managed metrics solutions to help you monitor your apps._ _Error monitoring for your apps from our extension providers._ -- **[Sentry](/docs/reference/sentry/):** Use Sentry on Fly.io and get actionable insights to resolve the most important code-related issues. Fly.io organizations that use Sentry can claim a year’s worth of Team Plan credits. +- **[Sentry](/docs/monitoring/sentry/):** Use Sentry on Fly.io and get actionable insights to resolve the most important code-related issues. Fly.io organizations that use Sentry can claim a year’s worth of Team Plan credits. --- diff --git a/monitoring/search-logs.html.markerb b/monitoring/search-logs.html.markerb index d24756834a..c88c54ffd8 100644 --- a/monitoring/search-logs.html.markerb +++ b/monitoring/search-logs.html.markerb @@ -20,6 +20,6 @@ You can access searchable logs in Grafana: **Important:** If you’re already signed in to Grafana, then you'll need to log out and log back in. -Searchable logs are built on our [Tigris Storage](/docs/reference/tigris/) and [Supabase Postgres](/docs/reference/supabase/) extensions. +Searchable logs are built on our [Tigris Storage](/docs/tigris/) and [Supabase Postgres](/docs/supabase/) extensions. For the beta period, log search is free and we retain logs for 30 days. Learn how to build more complex queries [Quickwit’s query language](https://quickwit.io/docs/get-started/query-language-intro+external). diff --git a/postgres/getting-started/what-you-should-know.html.md b/postgres/getting-started/what-you-should-know.html.md index 0c1de936d9..42f134633d 100644 --- a/postgres/getting-started/what-you-should-know.html.md +++ b/postgres/getting-started/what-you-should-know.html.md @@ -37,7 +37,7 @@ There are a lot of knobs to turn, but `fly pg config` only supports a few of the ## Fully managed Postgres
-Supabase Postgres, a fully managed Postgres database on Fly.io, is now in beta. Learn more about [Supabase Postgres](/docs/reference/supabase/) on Fly.io. +Supabase Postgres, a fully managed Postgres database on Fly.io, is now in beta. Learn more about [Supabase Postgres](/docs/supabase/) on Fly.io.
### Recommended External Providers diff --git a/rails/cookbooks/databases.html.markerb b/rails/cookbooks/databases.html.markerb index 4ca36e78c3..8192f1d945 100644 --- a/rails/cookbooks/databases.html.markerb +++ b/rails/cookbooks/databases.html.markerb @@ -81,7 +81,7 @@ Since this isn't a Rails tutorial, an overview of the contents will suffice: Before we deploy this application, we need to create the redis database. We will be using -[Upstash for Redis](https://fly.io/docs/reference/redis/), and creating +[Upstash for Redis](https://fly.io/docs/upstash/redis/), and creating the database and connecting it to the demo application is a matter of issuing two commands: diff --git a/rails/getting-started/index.html.md b/rails/getting-started/index.html.md index 821d754d0d..3d8697786a 100644 --- a/rails/getting-started/index.html.md +++ b/rails/getting-started/index.html.md @@ -8,9 +8,9 @@ objective: Quickly get a very basic Rails app up and running on Fly.io. This gui related_pages: - /docs/flyctl/ - /docs/reference/configuration/ - - /docs/reference/redis + - /docs/upstash/redis/ - /docs/postgres/ - - /docs/reference/tigris/ + - /docs/tigris/ ---
diff --git a/rails/the-basics/active-storage.html.md b/rails/the-basics/active-storage.html.md index a87d614e47..9dd07f8fea 100644 --- a/rails/the-basics/active-storage.html.md +++ b/rails/the-basics/active-storage.html.md @@ -30,7 +30,7 @@ fly storage create ``` ```output ? Choose a name, use the default, or leave blank to generate one: -Your Tigris project (xxx) is ready. See details and next steps with: https://fly.io/docs/reference/tigris/ +Your Tigris project (xxx) is ready. See details and next steps with: https://fly.io/docs/tigris/ Setting the following secrets on xxx: AWS_ACCESS_KEY_ID: tid_xxx @@ -83,4 +83,4 @@ Watch the app deploy and then upload, view, and download a few files! ## Find out more! -Now that you are up and running, there is a lot more to explore on the [Tigris Global Object Storage](https://fly.io/docs/reference/tigris/) page. Highlights include public buckets, migrating to Tigris with shadow butckets, Pricing, and AWS API compatibility. \ No newline at end of file +Now that you are up and running, there is a lot more to explore on the [Tigris Global Object Storage](https://fly.io/docs/tigris/) page. Highlights include public buckets, migrating to Tigris with shadow butckets, Pricing, and AWS API compatibility. \ No newline at end of file diff --git a/rails/the-basics/sidekiq.html.md b/rails/the-basics/sidekiq.html.md index 0a6d7607b1..c0b81b5b83 100644 --- a/rails/the-basics/sidekiq.html.md +++ b/rails/the-basics/sidekiq.html.md @@ -9,7 +9,7 @@ Rails applications commonly defer complex tasks that take a long to complete to ## Provision a Redis server -Sidekiq depends on Redis to communicate between the Rails server process and the background workers. Follow the [Redis setup guide](/docs/reference/redis) to provision a Redis server and set a `REDIS_URL` within the Rails app. Be sure to set the `REDIS_URL` via a secret as demonstrated [here](/docs/rails/the-basics/configuration/#secret-variables). +Sidekiq depends on Redis to communicate between the Rails server process and the background workers. Follow the [Redis setup guide](/docs/upstash/redis/) to provision a Redis server and set a `REDIS_URL` within the Rails app. Be sure to set the `REDIS_URL` via a secret as demonstrated [here](/docs/rails/the-basics/configuration/#secret-variables). Verify the `REDIS_URL` is available to your Rails application before you continue by running: diff --git a/rails/the-basics/turbo-streams-and-action-cable.html.md b/rails/the-basics/turbo-streams-and-action-cable.html.md index c44f7effeb..44aa8df7ec 100644 --- a/rails/the-basics/turbo-streams-and-action-cable.html.md +++ b/rails/the-basics/turbo-streams-and-action-cable.html.md @@ -31,7 +31,7 @@ fly redis create ? Optionally, choose one or more replica regions (can be changed later): Upstash Redis can evict objects when memory is full. This is useful when caching in Redis. This setting can be changed later. -Learn more at https://fly.io/docs/reference/redis/#memory-limits-and-object-eviction-policies +Learn more at https://fly.io/docs/upstash/redis/#memory-limits-and-object-eviction-policies ? Would you like to enable eviction? No ? Select an Upstash Redis plan Free: 100 MB Max Data Size diff --git a/reference/configuration.html.markerb b/reference/configuration.html.markerb index 9339bbccce..13a1cade3f 100644 --- a/reference/configuration.html.markerb +++ b/reference/configuration.html.markerb @@ -974,7 +974,7 @@ Each `[[statics]]` block maps a URL prefix to a path inside your container. You The "guest path" --- the path inside your container where the files to serve are located --- can overlap with other static mappings; the URL prefix should not (so, two mappings to `/public/foo` and `/public/bar` are fine, but two mappings to `/public` are not). -Alternatively, you can serve statics directly from object storage using [Tigris](/docs/reference/tigris/). Similar to machine statics, requests under `url_prefix` are served from static assets in your Tigris bucket under `guest_path`. The same rules apply for overlapping URL prefixes. +Alternatively, you can serve statics directly from object storage using [Tigris](/docs/tigris/). Similar to machine statics, requests under `url_prefix` are served from static assets in your Tigris bucket under `guest_path`. The same rules apply for overlapping URL prefixes. ```toml [[statics]] diff --git a/security/index.html.markerb b/security/index.html.markerb index 752b094958..1276ff0e0f 100644 --- a/security/index.html.markerb +++ b/security/index.html.markerb @@ -21,7 +21,7 @@ _Security for customer organizations and apps._ _Security add-ons from our extension partners._ -- **[Application Security by Arcjet](/docs/reference/arcjet/):** Use the Arcjet security layer to protect your JavaScript app with just a few lines of code. +- **[Application Security by Arcjet](/docs/security/arcjet/):** Use the Arcjet security layer to protect your JavaScript app with just a few lines of code. #### Tokens diff --git a/volumes/overview.html.markerb b/volumes/overview.html.markerb index 24f202d8c2..6f67a70d6b 100644 --- a/volumes/overview.html.markerb +++ b/volumes/overview.html.markerb @@ -37,7 +37,7 @@ A Fly Machine that does not require a volume will never attach itself to one. A We try to keep individual Fly Machines up for as long as possible, but hardware failures happen. That's why we recommend running at least two Machines per app to increase availability. You can run two or more Machines in one region, or better yet, one or more Machines in multiple regions. If you only have one Machine and volume, then you'll have downtime if there's a host or network failure, and whenever you deploy your app. -You'll also need to replicate data between volumes. Some options for replicating databases include [LiteFS - Distributed SQLite](/docs/litefs/) and [Supabase Postgres](/docs/reference/supabase/). +You'll also need to replicate data between volumes. Some options for replicating databases include [LiteFS - Distributed SQLite](/docs/litefs/) and [Supabase Postgres](/docs/supabase/). In a few cases, you can run a single Machine with an attached volume. For example, if your app is in development and you're not yet worried about downtime or if you're running an app that can handle downtime and has a custom backup procedure.