Fly Answers More Questions

We get asked questions about Fly in a lot of places on the web which we answer. But, not everyone is everywhere on the web, so with Fly Answers Questions, we bring those answers to you. If you have questions about Fly, why not ask @flydotio on Twitter, or drop a query in our Fly Spectrum.chat forum.

Q: What if I get a large number of malicious TCP connections from around the world that are malicious and cause a large number of apps to be launched in the various datacenters. Are we on the hook for the bill? And is there anything in place to stop that happening? - (via Spectrum.chat/flyio)

A: Let’s start with what we have to stop that sort of problem. Fly apps have a number of configurable constraints to prevent runaway scaling. There’s a per-region max count and a global max count to prevent too many instances from being started.

Going beyond those maximums means that incoming requests will automatically be dropped. It’s also worth mentioning that we have a number of protections against malicious connections already baked into the Fly networking infrastructure.

Coming soon, and currently in preview, is a configurable monthly maximum spend which will cap your spending. Also, where there was obviously a DDoS attack or similar, we’d look to waive usage for any crazy spikes that happened.

Q: I’m working on a small team project using Fly, and we’d like to have a dedicated deploy key for our GitHub Actions CD workflow. Is there a way to do this yet? - (via Spectrum.chat/flyio)

A: The easiest way to get a dedicated deploy key is to create a dedicated user for your CD workflow. Once you have a dedicated user you can get a personal access token for that user by going to fly.io/user/personal_access_tokens and selecting Create Access Token.

That user doesn’t have access to your Fly projects yet though. For that, you’ll need to create a Fly organization. Projects created in an Organization can be worked on by all the members of the Organization. Create an Organization by going to fly.io/organizations and invite your new dedicated CD user to the organization. To complete the process, you’ll need to log in as the CD user and accept that invite. You can now configure your CD processes using that user to deploy to Fly.

Q: We run a monorepo which means we have a lot of Fly configuration files and Dockerfiles associated with projects. We’ve found the --config flag which lets us select different fly configuration files but flyctl always seems to build with the file called Dockerfile. What can we do? - (via various support requests)

A: You can update your flyctl and make use of one of a range of new options we’ve been building for people with more sophisticated build configurations. We developed flyctl for the path of least resistance and that meant assuming that Dockerfile would be the build file for most users. You folks are great at pushing us to make things better, so we now have a new option --dockerfile for the deploy command. That lets you say which Dockerfile should be used in the build process. We’ll have a new article on flyctl deploy options soon which will give you the power to bend Fly deployment to your will.