Kamal can deploy prebuilt third-party Docker images without a build step — the image field simply points to an existing registry image and Kamal handles pulling, running, proxying, and rolling back. Using Basecamp's Campfire as a concrete example, the post walks through a minimal deploy.yml configuration covering volumes for persistent data, SSL proxy setup, healthchecks, and secrets. Key gotchas include pinning image tags to avoid unpredictable versions, specifying builder.arch so the correct architecture variant is pulled, verifying the correct healthcheck path per app, and using Kamal accessories for sidecars rather than modifying upstream images. The pattern works for any containerized app regardless of language or framework.
Table of contents
How Kamal Handles Images Without BuildingDeploying Campfire in One Configuration FileThe First Deploy and Subsequent UpdatesThings to Watch Out ForWhy I Use This PatternSort: