Flyctl Builtins - The Fly Changelog for August

Super-simple builtin builders and smart certificates creation - it's all in the latest flyctl (v0.0.139) available now for your command line. Find out more about it in the Changelog.

For the latest version of flyctl, we've focussed on making your life fast and simple. From getting your first deployment up and running to setting up a host's certificate.

Builtins

First up, we've got the new “builtin” builders which you can select when you init your App. We have builtin builders for Node, Ruby, Deno and Go and there's also a static web server available. No need for a Dockerfile - just init and deploy.

You can find out more at the command line with flyctl builtins list which will give you information on all of the builtins, and flyctl builtins show <builtin-name> which will give you all the details of the named builtin, including the virtual Dockerfile that the builtins use.

With builtins all you need to do is:

  • Write your code
  • Run flyctl init
  • Select a builtin for the code's language, press return for defaults on the other prompts
  • Run flyctl deploy
  • Finally, run flyctl open to view your app in a browser

You can see full examples for Go, Node, Ruby, Deno and a static web server in the documentation.

Images

In previous versions of flyctl, we have been able to deploy an image from the command line. In this version, you can now use the image builder (or --image flag on flyctl init) to select a public Docker image to be published to Fly. This persists the selected image in a fly.toml file.

By using the fly.toml file, it also lets you configure the ports and health checks for the image. Best of all, it lets you save that information into your git repository so you can perform repeatable builds with images.

Backup Regions

When, for whatever reason, an App instance is unable to deploy in a particular region, Fly will look to deploying it in a backup region. This is a longstanding behavior of Fly, but flyctl has been not been good in communicating that that is what is happening, leading to confusion over why an App is deploying in a region but not in the region list.

Not anymore! flyctl regions list will now show the regions and the associated backup regions that an app instance may appear in. Also, flyctl status will display (b) next to any region which is not in the region pool and is therefore in a backup region. This should give everyone a better view of where their app is running.

Guided Certs

In the past, when creating a certificate for a hostname, you had to refer to the documentation or UI for the various steps you needed to take. In this version of flyctl, we've embedded some smart-documentation into the process. When you add a certificate now, flyctl will give you detailed instructions on what you need to set with your DNS provider to direct traffic to your App through your domain name and verify your ownership (allowing a certificate to be generated). It's all part of making flyctl your preferred way to work with Fly.

Orgs and DNS

Also implemented in 0.0.138, are the orgs and dns commands. Orgs allows you to add and remove organizations - which you can also do from the Web UI. What you currently can't do is invite and remove users from the organization; you'll have to use the Web UI for that. This, and the dns command, are works in progress and could change in a later version. We thought it was better to let you see what was in the longer pipeline.

Other changes

  • flyctl init now has an --import option which will use the settings of the imported fly.toml file while creating a new app name and slot.
  • JSON status output now has timestamps.
  • flyctl deploy now has a --local-only flag to force builds to happen locally or not at all.

This is the Fly Changelog where we list all significant changes to the Fly platform, tooling and web sites. You can also use the RSS feed of just changelog posts available on fly.io/changelog.xml or consult our dedicated ChangeLog page with all the recent updates.

25th August

flyctl: Version 0.0.139 released.

  • fix issue with builtin init.

Fly Platform/Web

  • Updated documentation in sync with new flyctl.

25th August

flyctl: Version 0.0.138 released

  • Added flyctl builtins and flyctl builtins list.
  • Added flyctl builtins show.
  • Added images as an option to builder selection.
  • Added --image as flag to flyctl init.
  • Added prompting to certs process to give directions to user on next steps after adding or checking a certificate.
  • Changed certs create/delete to add/remove (aliased for back compatibility).
  • Added prompting for internal port to flyctl init.
  • Added display of backup regions.
  • Added --import to flyctl.
  • Added --local-only option to flyctl deploy.
  • Added orgs and dns commands.
  • Displays app URL before deployment.
  • JSON status output now has timestamp.
  • Caught errors in suspend (thanks @alrs).
  • Clarified monitoring error messages.
  • Only display auth URL when an error has occurred.
  • Setting secret to same value no longer causes a "no deployment available" error.
  • Improved internal API use.
  • Immediate duplicates in logs supressed in client.