Flyby #1: Nearby VMs via internal DNS, livebook launcher, registry improvements and more

We’re heads-down working on Fly - so we thought we should post semi-regular updates about recent changes to the platform. Let us know if this is useful!

Anycast-like DNS in private networks

We added an internal DNS feature: find the nearest geographic VM of an app.

For example - find the current region’s DB replica or Redis cache instance without having to know the current region. Or get a list of nearby backup options should the current region’s VM be unreachable.

top1.nearest.of.appname.internal will give you the nearest internal ipv6 address, starting with the region from which the query is issued. top5.nearest.of.appname.internal gives you the nearest five addresses, and so on. Go nuts!

Docker registry improvements

We’ve improved speed and reliability of the Fly Docker registry. Now each region runs its own registry and metadata cache. The registry stores layers using S3 accelerated endpoints, which should help with speed and reliability issues in regions far from the US.

Launch a free Elixir Livebook

Livebooks are a great way to experiment with Elixir in the browser. You can now launch Livebooks without a credit card. Give it a spin!

For us, this was a prototype for building more launchers in the future in our new Elixir app. Stay tuned for more.

A new, official Redis image

We have an official Fly Redis repository and Docker image. It exports Prometheus metrics out of the box. Stay tuned for a more structured way to launch Redis on Fly. For now, feel free to experiment with the image and post issues on Github.

Fly CLI improvements

We’re working hard to improve our CLI. Here are some highlights from the last few weeks:

  • fly launch supports launching Remix apps with persistent SQLite storage.
  • fly.toml accepts a Dockerfile path and, for multistage builds, build-target .
  • fly image show reports details about a deployed app image, and whether official Fly images have an update available.
  • fly launch supports no-deploy and generate-name options. Useful in CI environments.
  • fly.toml accepts Dockerfile build targets. Before, this was only available on the command line.
  • Release tasks no longer hang due to missing or delayed logs.

Building our UI on Elixir

We love Elixir! We’re working full time rebuilding our UI as a fresh Elixir web app. Some recent highlights:

  • Forum login is now handled by Elixir. A new user should now be brought in with meaningful usernames instead of user123 .
  • Logs are now shown in launchers when deploying apps.
  • Apps list now shows the organization name on the ‘Apps that haven’t been deployed’ just like ‘Active apps’.

Docs & Guides

We posted some tips for working with high availability Postgres from the client perspective. Client Side Postgres High Availability Connection Tips