Deploying Rails apps with Kamal 2

Just finished migrating our deployment from Capistrano to Kamal 2 and wanted to share my experience.

The good:
- Zero-downtime deploys out of the box
- Docker-based, so your dev and prod environments match
- Thruster handles SSL and asset caching beautifully

The tricky parts:
- Getting environment variables right took some fiddling
- Health check configuration needs attention for apps with slow boot times

Overall, I'm very happy with the switch. Anyone else using Kamal?

Comments (4)

Been considering the switch from Heroku. How long did the migration take you overall?

bob_smith

About a week of evenings to get it fully working, including setting up the VPS. Once it's configured, deploys are a single command. Totally worth it.

dan_codes

I've been using Kamal since 1.0 and the 2.0 upgrade was smooth. The proxy replacement for Traefik is much simpler to configure.

hank_the_tank

Thanks for the writeup! Would you mind sharing your deploy.yml (sanitized of course)? I'm about to set this up for a new project.