# Using Kamal 2.0 in Production

DevFeed: [Using Kamal 2.0 in Production](<https://devfeed.tech/articles/using-kamal-2-0-in-production-1700.md>)

Original publisher: [Read original article](<https://fly.io/blog/kamal-in-production/>)

Published: 2025-05-29T00:00:00Z

Content type: opinion

Language: en

Sources: [The Fly Blog](<https://devfeed.tech/sources/the-fly-blog.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Database](<https://devfeed.tech/topics/database.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [cdn](<https://devfeed.tech/tags/cdn.md>), [close-to-users](<https://devfeed.tech/tags/close-to-users.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [database](<https://devfeed.tech/tags/database.md>), [deploy-app-servers](<https://devfeed.tech/tags/deploy-app-servers.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [elixir](<https://devfeed.tech/tags/elixir.md>), [fly](<https://devfeed.tech/tags/fly.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [github](<https://devfeed.tech/tags/github.md>), [github-copilot](<https://devfeed.tech/tags/github-copilot.md>), [heroku-alternative](<https://devfeed.tech/tags/heroku-alternative.md>), [heroku-competitor](<https://devfeed.tech/tags/heroku-competitor.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [i](<https://devfeed.tech/tags/i.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [networking](<https://devfeed.tech/tags/networking.md>), [postgresql-clusters](<https://devfeed.tech/tags/postgresql-clusters.md>), [servers](<https://devfeed.tech/tags/servers.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

## AI overview

An opinionated guide to using Kamal 2.0 in production, covering the surrounding Docker ecosystem, container repositories, secrets, load balancing, managed databases, backups, searchable logs, monitoring, security, SSH keys, and hosting choices. The author explains that GitHub Copilot helped convert XML notes to Markdown and proofread the resulting online publication.

## Source excerpt

Agile Web Development with Rails 8 is off to production, where they do things like editing, indexing, pagination, and printing. In researching the chapter on Deployment and Production, I became very dissatisfied with the content available on Kamal. I ended up writing my own, and it went well beyond the scope of the book. I then extracted what I needed from the result and put it in the book. Now that I have some spare time, I took a look at the greater work. It was more than a chapter and less than a book, so I decided to publish it online. This took me only a matter of hours. I had my notes in the XML grammar that Pragmatic Programming uses for books. I asked GitHub Copilot to convert them to Markdown. It did the job without my having to explain the grammar. It made intelligent guesses as to how to handle footnotes and got a number of these wrong, but that was easy to fix. On a lark, I asked it to proofread the content, and it did that too. Don't get me wrong, Kamal is great. There are plenty of videos on how to get toy projects online, and the documentation will tell you what each field in the configuration file does. But none pull together everything you need to deploy a real project. For example, there are seven things you need to get started. Some are optional, some you may already have, and all can be gathered quickly if you have a list. Kamal is just one piece of the puzzle. To deploy your software using Kamal, you need to be aware of the vast Docker ecosystem. You will want to set up a builder, sign up for a container repository, and lock down your secrets. And as you grow, you will want a load balancer and a managed database. And production is much more than copying files and starting a process. It is ensuring that your database is backed up, that your logs are searchable, and that your application is being monitored. It is also about ensuring that your application is secure. My list is opinionated. Each choice has a lot of options. For SSH keys, there are a