Kamal — Deploy web apps anywhere — screenshot of kamal-deploy.org

Kamal — Deploy web apps anywhere

Kamal is a Docker-based deploy automation tool from 37signals. I use it to deploy web apps anywhere, from bare metal to cloud VMs, to avoid commercial platform lock-in and simplify production with open-source tooling.

Visit kamal-deploy.org →

Questions & Answers

What is Kamal?
Kamal is an open-source Docker-based deployment automation tool developed by 37signals. It allows for deploying any containerized web application to bare metal servers or cloud VMs with features like zero-downtime deploys and rolling restarts.
Who should use Kamal for deploying web apps?
Kamal is suitable for developers and teams who want to deploy web applications on their own hardware or low-cost cloud options without commercial platform lock-in. It's ideal for those familiar with basic Linux and Docker concepts.
How does Kamal compare to Capistrano, Kubernetes, or Docker Swarm?
Kamal is like Capistrano for containers, automatically provisioning servers with Docker unlike Capistrano's manual prep. It's simpler than Kubernetes, focusing on imperative commands, and offers more portability between cloud and bare metal than managed Kubernetes. Unlike Docker Swarm's declarative model, Kamal uses an imperative approach for deployments.
When is Kamal a good choice for web app deployment?
Kamal is a good choice when you prioritize portability, wish to avoid cloud provider lock-in, or want to deploy applications to your own hardware or unmanaged VMs. It facilitates easily moving between different cloud providers or integrating your own infrastructure with cloud resources for scaling.
What are the server requirements for Kamal?
Servers intended for Kamal deployments require no prior setup beyond an added SSH key. Kamal will auto-provision them with Docker and necessary configurations, making new server integration quick and straightforward.