Blog Move from Replit to Fly.io
Yesterday, I moved my blog from Replit to fly.io. Replit was nice because it allowed me to quickly and easily get my blog out into the world. I had been wanting to create my own blog from scratch for a while, and I have been enjoying tweaking it however I like. Unfortunately, Replit doesn't have an API or any facility to create CI/CD pipelines. I listen to the Changelog podcast regularly, and they are always advertising that they use fly.io, so I looked into it and found that it was super easy to get going. This will be my notes on the process.
To get started, at least on a Mac, I followed the quickstart:
brew install flyctl
# or login if you have an account already
fly auth signup
# configures and tries to launch your app
fly launch
The problem that I immediately ran into was that it misidentified my application as NodeJS because I have a node_modules
directory. The tech stack for my blog is Python, FastAPI, HTMX, and Tailspin. The workaround for this problem was to create my own Dockerfile. I'm using uv
, and they had instructions for creating a Dockerfile, so I used that. Then it was just a matter of pointing the launch command at the Dockerfile:
fly deploy --dockerfile Dockerfile