Fly.ioAnnouncement
Turbocharge your Heroku Apps with New Turboku
Summary
New Turboku clones a Heroku app on Fly.io without requiring data migration, while the resulting app should be able to use services such as Heroku Postgres or Redis through transferred environment variables. The rebuilt workflow integrates flyctl with Fly.io’s remote builders instead of AWS CodeBuild: it queries Heroku, selects a region, converts config variables to secrets, and generates fly.toml, an ephemeral Dockerfile, and a reconstituted Procfile from the slug and process map. A Phoenix LiveView web launcher wraps the deployment by starting a Fly.io Machine running flyctl, while the CLI is available through flyctl turboku. The launcher also configures webhooks and watches environment-variable changes for automatic updates, whereas the CLI lacks webhook integration; the source reports about one millisecond of added database latency for a US-based app.
Context
The original Turboku used AWS CodeBuild for remote builds, but those builds were slow. Fly.io also lacked storage attached to its VMs at the time, preventing the builds from running on its own hardware. New Turboku was introduced to make Heroku migrations faster while preserving a simple launcher experience.
Approach / What changed
The new workflow uses flyctl and Fly.io remote builders to query Heroku, choose a deployment region, copy Heroku config variables into Fly secrets, and generate a fly.toml file, an ephemeral Dockerfile, and a Procfile from the Heroku slug and process map. A Phoenix LiveView launcher runs flyctl inside a Fly.io Machine and adds webhook-based updates and environment-variable monitoring.
Takeaways
flyctl turboku accepts a Heroku app name and token, uses an explicit --region when provided or otherwise selects the region nearest to the Heroku app, and generates deployment files from the Heroku slug.
The web launcher starts a Fly.io Machine running flyctl instead of duplicating the deployment implementation in Elixir, allowing users to authenticate both services and select a Heroku app through a GUI.
The web launcher supports Heroku webhooks and watches changes to variables such as DATABASE_URL; the CLI lacks webhook integration. The source measured about one millisecond of added database latency for a US-based app.
Source and freshness
- Source
- fly.io
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.