To those of you who are building apps that you want others to deploy into their own fly.io account, and to those of you writing guides on how to deploy popular software, we’ve got a new feature for you. We’re making it easier to distribute pre-configured apps given an existing fly.toml. With the latest flyctl release (v0.2.28), you can now run:
fly launch --from https://github.com/org/repo.git
and it will automatically clone the repo and launch it into a new fly app.
If you’ve ever thought “I want to add a Deploy to Fly.io button to my repo”, this is for you. Once you configure and successfully deploy your desired app, push the fly.toml and Dockerfile to your repo and instruct your users to run fly launch --from <url>.
Here are some good examples to try out at home:
Uptime Kuma: a self-hosted monitoring tool fly launch --from https://github.com/lubien/fly-uptime-kuma
Foocus: run your own stable diffusion-like model fly launch --from https://github.com/fly-apps/fooocus-demo
Ollama + Open WebUI: self-host your own ChatGPT clone fly launch --from https://github.com/fly-apps/ollama-open-webui
Warning: the Foocus and Ollama examples run GPU machines, which can be expensive if left running for a long time
Let us know how it goes! This is brand new, and we have ideas about extra features to add here, but we’d like to hear from you first.
I guess this requires the repo to be public? How would it work for private repos?
Also, is it possible to disable the the cli from collecting info about the git commit changes when it’s deployed? I don’t want to have my commit history on the dashboard (at least for some apps). Right now there’s no way to disable it
I haven’t tried it yet, but I love the concept! I’m very interested in the idea of creating apps that a non-developer can launch on Fly. With that in mind, here’s additional features that would help:
Being able to run the launch command without installing anything on your local machine. For example, being able to launch from the Fly dashboard web UI.
Being able to keep the app updated – for example, having a button in the Fly dashboard to initiate a redeploy, or better yet a way to tell Fly to automatically do that every day (or whatever reasonable frequency). That way, when the app (or the base Docker layer) releases a security patch, those security fixes make their way into all the apps that launched from that initial repo.
If the launch is based on the GitHub repo’s fly.toml, then for fly.toml to be able to specify the other Fly resources that it needs, such as a Tigris bucket, a Supabase db, etc., and have those auto-created, like how fly.toml can currently do that for Volumes.