kamal-deploy

star 0

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).

jalen0x By jalen0x schedule Updated 1/1/2026

name: kamal-deploy description: 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).

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

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:

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

kamal setup   # First-time
kamal deploy  # Deploy
Install via CLI
npx skills add https://github.com/jalen0x/substore-kamal --skill kamal-deploy
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator