Skip to content
Back to skills

Kamal Deploy

ASecurity

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

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 9, 2026
devopsbashdocker

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill kamal-deploy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kamal Deploy?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Kamal Deploy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-kamal-deploy/badge)](https://www.skillsdirectory.com/skills/majiayu000-kamal-deploy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

```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
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.