Agent skill

kamal-deploy

Deploy Docker applications using Kamal 2 with zero-downtime and automatic SSL. Use this skill when (1) setting up new Kamal deployments, (2) generating deploy.yml configuration, (3) deploying apps that lack health endpoints (using Caddy workaround).

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/devops/kamal-deploy-jalen0x-substore-kamal-0c70778c

SKILL.md

Kamal 2 Deployment

Workflow

Ask user for:

  1. Domain — e.g., app.example.com (service name: app_example_com)
  2. Server IP(s)
  3. Health endpoint — Does app return 200 on /up without auth?

Generate config/deploy.yml

yaml
service: {{DOMAIN_UNDERSCORED}}
image: jalen0x/{{DOMAIN_UNDERSCORED}}

servers:
  web:
    hosts:
      - {{SERVER_IP}}

proxy:
  ssl: true
  host: {{DOMAIN}}

registry:
  username: jalen0x
  password:
    - KAMAL_REGISTRY_PASSWORD

ssh:
  user: ubuntu

builder:
  arch: amd64

Health Endpoint

App must respond 200 on /up at port 80 (default).

Custom path: Add healthcheck.path to proxy config.

No health endpoint: Use Caddy. Copy templates from assets/ and customize:

  • assets/Caddyfile → project Caddyfile
  • assets/start.sh → project start.sh

Generate Dockerfile:

dockerfile
FROM {{BASE_IMAGE}}
RUN apk add --no-cache caddy
COPY Caddyfile /Caddyfile
COPY start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["/bin/sh", "/start.sh"]

Commands

bash
kamal setup   # First-time
kamal deploy  # Deploy

Didn't find tool you were looking for?

Be as detailed as possible for better results