Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion about/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ For stopped Machines we charge only for the root file system (rootfs) needed for
### Machine reservation blocks

You'll get a 40% discount when you reserve a block of compute time, either for `performance` Machines or `shared` Machines, in a specific region.
Reservations apply to any number of Machines of the specified CPU class, in the specified region, in any of your organisation's apps.
Reservations apply to any number of Machines of the specified CPU class, in the specified region, in any of your organization's apps.

The available reservation sizes are:

Expand Down
2 changes: 1 addition & 1 deletion app-guides/6pndemochat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ let natsapphost=process.env.NATSAPPHOST
const nc = NATS.connect(natsapphost+".internal");
```

The combination of an app name and `.internal` in 6PN networking resolves to the IPV6 addresses of the first instance of all instances if that app currently running. So, if we set NATSAPP to `myclusterapp` then scaling and adding nodes to `myclusterapp` would automatically be reflected in `myclusterapp.internal`. 6PN has a number of `.internal` addresses an app can query which you can read about in the [6PN documentation](/networking/services#internal-addresses).
The combination of an app name and `.internal` in 6PN networking resolves to the IPv6 addresses of the first instance of all instances if that app currently running. So, if we set NATSAPP to `myclusterapp` then scaling and adding nodes to `myclusterapp` would automatically be reflected in `myclusterapp.internal`. 6PN has a number of `.internal` addresses an app can query which you can read about in the [6PN documentation](/networking/services#internal-addresses).

Once the chat server has connected to the NATS cluster, it subscribes to a topic `msg` and any message written to `msg` will be broadcast to all web socket clients that are connected. If any of those web socket clients sends a message to the chat server, then it will publish that message to the `msg` topic on the NATs cluster. It doesn't even try to echo it locally, relying on the NATS cluster to publish to subscribers.

Expand Down
2 changes: 1 addition & 1 deletion app-guides/minio.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Your app is ready! Deploy with `flyctl deploy`

## (Un)configure networking

There's no need for this app to be accessible from the public internet, if you run your object storage within the same [Fly IPV6 private network](/networking/private-networking) as the app(s) that want to connect to it.
There's no need for this app to be accessible from the public internet, if you run your object storage within the same [Fly IPv6 private network](/networking/private-networking) as the app(s) that want to connect to it.

Delete the `[http_service]` block in `fly.toml`. Now the Fly proxy won't pass any requests to the app from outside your private network.

Expand Down
2 changes: 1 addition & 1 deletion app-guides/multiple-processes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ root@30952b25:/# overmind connect foo
# (clouds part, screen fills with foo's terminal)
```

If you're not a `tmux` person, `ctr-b d` detaches you from that window.
If you're not a `tmux` person, `ctrl-b d` detaches you from that window.

### There are so many other process managers

Expand Down
2 changes: 1 addition & 1 deletion app-guides/nats-cluster.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Then run `flyctl logs` and you'll see the virtual machines discover each other.

## Testing the cluster

While the cluster is only accessible from inside the Fly network, you can use Fly's [Wireguard support](/networking/private-networking) to create a VPN into your Fly organisation and private network.
While the cluster is only accessible from inside the Fly network, you can use Fly's [Wireguard support](/networking/private-networking) to create a VPN into your Fly organization and private network.

Then you can use tools such as [natscli](https://github.com/nats-io/natscli) to subscribe to topics, publish messages to topics and perform various tests on your NATS cluster. Install the tool first.

Expand Down
2 changes: 1 addition & 1 deletion getting-started/launch-demo.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ For fun, add `/<your-name>` to `fly apps open` and your name will be appended to
fly apps open /fred
```
```out out
opening https:http://hellofly.fly.dev/fred ...
opening https://hellofly.fly.dev/fred ...
```
</CodeGroup>

Expand Down
2 changes: 1 addition & 1 deletion laravel/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Once you accept the configuration, this would proceed with **adding [default sec
3. [Dockerfile](https://github.com/fly-apps/dockerfile-laravel/blob/main/resources/views/dockerfile.blade.php) - Used to build a container image that is run in fly
4. [.dockerignore](https://github.com/fly-apps/dockerfile-laravel/blob/main/resources/views/fly/dockerignore.blade.php) - Used to ensure certain files don’t make its way into your image

With the configuration files and extenstion apps in place, an image is built for your app using your project and the Dockerfile generated for it. This image is then finally used to deploy your app.
With the configuration files and extension apps in place, an image is built for your app using your project and the Dockerfile generated for it. This image is then finally used to deploy your app.

#### Success!
You should be able to visit `https://your-app-name.fly.dev` and see the Laravel demo home page.
Expand Down
2 changes: 1 addition & 1 deletion launch/create.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ The components of a successful launch, ready for the first deployment:

* A way to get a Docker image that we can use to get your app running on a Machine. Usually that's a Dockerfile, which `fly launch` can generate for you.
* A `fly.toml` file, created by `fly launch` or provided by you, for your app's Fly.io-specific [configuration](/reference/configuration).
* Optional resources such as [public IP addresses](/networking/services), [app secrets](/apps/secrets), and [databases and storage](/database-storage-guides) from Fly.io or extenstion partners.
* Optional resources such as [public IP addresses](/networking/services), [app secrets](/apps/secrets), and [databases and storage](/database-storage-guides) from Fly.io or extension partners.

## Framework launch scanners

Expand Down
2 changes: 1 addition & 1 deletion machines/runtime-environment.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Environment variables make several kinds of information available within a Machi
Not to be confused with the [HTTP header](/networking/request-headers#fly-region) `Fly-Region`, which is where the connection was accepted from.

### `FLY_PUBLIC_IP`
**IPV6 public IP**: The full public outbound IPV6 address for this Machine. Read more in the [Network Services](/networking/services#outbound-ip-addresses) section.
**IPv6 public IP**: The full public outbound IPv6 address for this Machine. Read more in the [Network Services](/networking/services#outbound-ip-addresses) section.

### `FLY_IMAGE_REF`
**Docker image reference**: The name of the Docker image used to create the Machine. `registry.fly.io/my-app-name:deployment-01H9RK9EYO9PGNBYAKGXSHV0PH` is an example of the Docker Image Reference's format.
Expand Down
2 changes: 1 addition & 1 deletion monitoring/logging-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Outside of the Machine, on the host, we take that output and send it to [Vector]

A proxy sits in front of NATS, to ensure you only see your own logs, and you can hook into NATS via this proxy to get your logs.

Vector can act as a NATS client, read the logs, and ship them somewhere. An example of this our Fly Log Shipper app.
Vector can act as a NATS client, read the logs, and ship them somewhere. An example of this is our Fly Log Shipper app.

## Live tail logs

Expand Down
2 changes: 1 addition & 1 deletion monitoring/logs-api-options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ This gives you structured JSON log messages in real time.
- You’ll need to handle reconnections: if the network drops or the proxy restarts, your subscriber needs to reconnect and resume without losing messages.
- You’ll need to handle backpressure: if your app can’t process logs fast enough, messages might pile up and get dropped. Design your consumer to either keep up or fail gracefully.
- If you want to dedupe across subscribers, use NATS queue groups.
- NATS only streams logs from starting from the moment you connect. You won’t get any history unless you’ve been subscribed the whole time.
- NATS only streams logs starting from the moment you connect. You won’t get any history unless you’ve been subscribed the whole time.

For more details on connecting to Fly’s NATS log stream (authentication, subject patterns, example clients), head over to the [Observability for User Apps](/blueprints/observability-for-user-apps#streaming-fly-app-logs-to-your-end-users) guide.

Expand Down
2 changes: 1 addition & 1 deletion networking/request-headers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Not to be confused with the [environment variable](/machines/runtime-environment

**Client and Proxy List**: A comma separated list of IP addresses including the address of the client that originated the request and the addresses of the proxy servers the request passed through. For example, "77.97.0.98, 77.83.142.33" contains the client and the one proxy it passed through. On the Fly.io platform, the last address (rightmost) in this list will be a shared or dedicated IP address assigned to your app.

This header must be treated with caution to avoid spoofing attempts. Follow the directives in the [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) for `X-Forwarded-For` to learn how parse the header safely. If you aren't using another reverse proxy in front of the Fly.io platform, the [`Fly-Client-IP` header](#fly-client-ip) might be a better choice to get client IP addresses.
This header must be treated with caution to avoid spoofing attempts. Follow the directives in the [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) for `X-Forwarded-For` to learn how to parse the header safely. If you aren't using another reverse proxy in front of the Fly.io platform, the [`Fly-Client-IP` header](#fly-client-ip) might be a better choice to get client IP addresses.

### `X-Forwarded-Proto`

Expand Down
2 changes: 1 addition & 1 deletion networking/udp-and-tcp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ source_url: https://fly.io/docs/networking/udp-and-tcp/

You can run any containerized app on our platform, regardless of what protocols it talks over, including apps that rely on UDP in addition to TCP. This guide walks you through how to set up your UDP app on Fly.io.

Before getting started, here's the summary of important points about using up UDP on Fly.io (that we'll expand on below):
Before getting started, here's the summary of important points about using UDP on Fly.io (that we'll expand on below):

* You need a dedicated IPv4 address. You can't use a shared IPv4 address or an IPv6 address for UDP. We support public IPv6 and shared IPv4 for TCP.

Expand Down
10 changes: 5 additions & 5 deletions security/openid-connect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ Every request to the token endpoint generates a unique Json Web Token (JWT). Whe
{
"app_id": "11111111",
"app_name": "example-app",
"aud": "https://fly.io/exmaple-org",
"aud": "https://fly.io/example-org",
"exp": 1712099653,
"iat": 1712099053,
"image": "docker-hub-mirror.fly.io/you/image:latest",
"image_digest": "sha256:2c1cdaded1b3820020c9dc9fdd1d6e798d6f6ca36861bb6ae64019fad6be9ee3",
"iss": "https://oidc.fly.io/exmaple-org",
"iss": "https://oidc.fly.io/example-org",
"jti": "93ca09e1-70e0-477b-a260-1d8fcd4ef4f4",
"machine_id": "148e21ea7e46e8",
"machine_name": "example-machine",
Expand All @@ -57,7 +57,7 @@ curl --unix-socket /.fly/api -X POST "http://localhost/v1/tokens/oidc" --data '{

## OpenID Connect Trust Policies in AWS

You can leverage the trust policy of an IAM role to restrict which Machines in your organisation can assume a role in AWS. For example the following policy would only allow Machines in the app `foo-bar` within your org to assume the role it’s attached to.
You can leverage the trust policy of an IAM role to restrict which Machines in your organization can assume a role in AWS. For example the following policy would only allow Machines in the app `foo-bar` within your org to assume the role it’s attached to.

```json
{
Expand Down Expand Up @@ -87,7 +87,7 @@ You can leverage the trust policy of an IAM role to restrict which Machines in y
To read from an S3 bucket using a Fly Machine you'll first need to set up a trust between AWS and Fly.io by creating an OIDC provider in AWS and then attaching a trust policy to the role policy your Machine will assume. If you've already packaged up your app in a Dockerfile, then you can follow these steps to read from an S3 bucket:

1. Create a Fly.io app by running `fly launch` in the same directory as your Dockerfile.
1. Find the slug for the organisation you want to launch your app in.
1. Find the slug for the organization you want to launch your app in.

```bash
fly orgs list
Expand All @@ -111,7 +111,7 @@ To read from an S3 bucket using a Fly Machine you'll first need to set up a trus
AWS_ROLE_ARN = "arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>"
```

1. Deploy your app and let the AWS SDK will do the rest.
1. Deploy your app and let the AWS SDK do the rest.

```bash
fly deploy
Expand Down
Loading