← ClaudeAtlas

kamallisted

Sets up, runs, and troubleshoots Kamal deployments (v1 and v2) — zero-downtime Docker deploys to VPS or bare-metal servers. Use when the user mentions Kamal, kamal-proxy, or Traefik, edits config/deploy.yml or .kamal/secrets, or asks to deploy an app to their own server, roll back, add accessories like Postgres or Redis, fix a failed deploy or healthcheck, or upgrade from Kamal 1 to 2.
eagerworks/skills · ★ 3 · DevOps & Infrastructure · score 72
Install: claude install-skill eagerworks/skills
# Kamal Deployment Skill Kamal is an open-source tool (by Basecamp/37signals) that deploys any Dockerized app to bare-metal servers or cloud VMs with zero downtime. It builds a Docker image, pushes it to a registry, pulls it on your servers, and hot-swaps traffic via a built-in proxy — no Kubernetes, no complex PaaS needed. ## Version Detection — Do This First Before generating any config or running any command, determine which version is in play: ```bash kamal version # prints e.g. "2.10.1" or "1.9.2" ``` If Kamal isn't installed yet, infer from the repo: - `traefik:` key in `config/deploy.yml` + `.env`/`.env.erb` file → **Kamal 1.x** → read `references/kamal-v1.md` - `proxy:` key in `config/deploy.yml` + `.kamal/secrets` file → **Kamal 2.x** - No existing config → **default to Kamal 2.x** (current; install with `gem install kamal`) **Key v1 → v2 differences at a glance:** | Area | Kamal 1.9.x | Kamal 2.x | |---|---|---| | Proxy | Traefik (`traefik:` block, raw labels/args) | kamal-proxy (`proxy:` block, `host`/`ssl`/`app_port`) | | SSL | Manual Traefik ACME config or Cloudflare | Native Let's Encrypt (`ssl: true`) | | Secrets/env | `.env` / `.env.erb` + `kamal env push` | `.kamal/secrets` + pushed on every deploy | | Apps per host | Single-app oriented | Multiple apps on one server | | Networking | Host network | Isolated custom Docker network | | Default app port | `3000` | `80` | | Hooks | `pre/post-traefik-reboot` | `pre/post-proxy-reboot` + `pre/post-app-boot`