Skip to content

Conversation

@mrj
Copy link

@mrj mrj commented Apr 29, 2025

The big advantage of Kamal is its dramatic reductions in server preparation and dependency hell through its use of containers, while avoiding the expense of cloud deployment. It is however a steep learning curve for someone coming from uncontainerised deployment. I've had over a week of struggle to get my first Kamal deploy working. This PR is an attempt to make it easier for those who follow to get up to speed by dramatically increasing the documentation in the Kamal deploy.yml file (which eventually gets worked up to a Rails template), and to change its key order to a more logical and less error-prone sequence.

I've also adjusted the spacing before commented-out keys to make it less likely that uncommenting them puts them at the wrong YAML level, which allows one space to cause severe problems.

Because when deploying my app I used the deploy.yml template generated by Rails 8.0.1, the suggested image value was my-image, which confused me because, in every case I've seen, this is of the form a/b. I see that this example has already been changed to my-user/my-app, which I haven't touched but have better documented. But it's still my-image on the website docs.

Although I've learned much over the past week, I'm no Kamal expert, so this PR needs to be reviewed for anything false or unclear. But I'm unapologetic about the amount of comments I've added. Every word would have helped speed my understanding and deployment. It's common for experts to regard as obvious things that naive users need to know.

I know there are many more comments in the configuration docs in the source, but deploy.yml should be all that most users should see and need, plus I've better documented all the basic settings.

A call-out to this blog post for bootstrapping my understanding.

I want to help Kamal reach its potential for extremely rapid, flexible, and cost-effective deployments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant