Logbook - 2022-06-01

A 1950s style cartoon lady pointing at a vintage flight logbook
Image by Annie Ruygt

We’re Fly.io. We take container images and run them on our hardware around the world. It’s pretty neat, and you should check it out; with an already-working Docker container, you can be up and running on Fly in well under 10 minutes.

Here’s our latest changelog. Looking back over the week, our forum community has been quite a driver of (logged) change. When you’re done here, head over there to be a part of it!

  • [Feature] Created an example Node.js app to demonstrate how to expose multiple internal ports on separate public ports. (Related community discussion with additional helpful info from charsleysa.)
  • [Feature] fly restart now performs a rolling restart (thanks to ryansch in the forums).
  • [Feature] fly status --all now shows failed VMs for 7 days, up from 2 (thanks to dhess1 in forums).
  • [Feature] Created a sample Terraform project for orchestrating the Fly API, machines and DNSimple to bootstrap an app: https://github.com/fly-apps/terraformed-machines.
  • [Feature/Docs] We now have a getting-started guide for Laravel apps; there’s a hello-world app to go with it, and a more in-depth sample app demonstrating the use of the fly-replay header to take advantage of multi-region databases.
  • [Feature] Released the first version of our official Terraform provider with our awesome new community-member-turned-consultant, Dov Alperin. This provider will keep feature parity with the Machines API and allow users to easily orchestrate machines.
  • [Feature] Added a 512MB swap for release commands, in case they need more memory than normal VM runtime. This allows memory-hungry release commands to succeed without increasing RAM on apps that don’t otherwise need it.
  • [Feature] Added three new, direct GraphQL endpoints for fetching volumes, IPs and certificates by ID. These records were previously only available in the scope of an application. This was added to make our Terraform provider happy when importing existing apps. But it may be useful to anyone building stateful tooling around Fly resources. Caveat: Use our GraphQL API directly at your own peril; it’s in a preview state and may change.
  • [Feature] Now it’s possible to add a description and a cover image to docs pages, so we can make their link previews on social more informative. Added them to the Fly Machines reference, so at least one link will look good.
  • [Blog] Published A Reusable Multi-Select Component for Phoenix LiveView, attacking the problem of building a component that let users select multiple options from a list, and getting the front and back ends to do things with that selection.

Our web dashboard still needs its own section:

  • [Feature] Livebook apps created with the Fly.io web launcher can now be upgraded via a button in the app’s Image Details section. If the image is v0.6.0 or older, the Livebook interface itself will offer a link to our UI to update it: Screenshot of an update prompt on a running Livebook
  • [Feature] Put IP addresses (in the App Overview tab) and the App Secrets table in a monospace font, to improve readability.
  • [Feature] Subscription discounts are now visible on the dashboard main page.
  • [Feature] Any coupons an organization has are now visible on our billing page.
  • [Fix] Fixed a bug on the certificates page where clicking “copy” on a IPv6 DNS entry would actually copy the IPv4 entry.
  • [Fix] Individual Machines have their own info page, accessible through their parent App’s Machines tab, with a table to display events (e.g. start, launch). The actual events weren’t making it into the table. And now they are.
  • [Fix] Users without credit cards cannot change organization plans. No point in upgrading to a paid plan without a payment method!
  • [Fix] Updated the Tailwind classes on the New Organization button so you can see it better.
  • [Fix] Changed the URL for billing errors triggered on our API from fly.io/organizations/foo to fly.io/dashboard/foo/billing to fit our newer URL model.
  • [Fix] Logging out now logs you out of all open browser tabs.
  • [Fix] Removed the “usage” column from the App Volumes table, until we can plug a useful number into it. It was displaying total data ever written—which is, yes, a kind of usage—but rather panic-inducing when you’re expecting to see how much filesystem space you’re occupying.
  • [Fix] Two-factor authentication setup now limits input to 6 characters.