coolify — Claude Code skill: deploy apps via the Coolify API
A skill for driving self-hosted Coolify from your agent: app deploys, webhooks, CI/CD and build-pack troubleshooting.
npx skills add oakoss/agent-skills --skill coolify -a claude-codeWhat coolify does
The skill covers Coolify control from an agent: token auth, listing applications, triggering a deploy, creating and patching apps over the REST API. Build packs get their own section — Nixpacks, Dockerfile and Compose — along with environment variables and Traefik domain routing.
Three reference files ship with it: references/api-patterns.md for endpoints and token scopes, references/deployment-strategies.md for auto-deploy, webhooks and GitHub Actions, references/build-packs.md for build conventions. A mistakes table answers the usual failures: an API call coming back Unauthenticated, auto-deploy staying silent, health checks failing on Compose services.
Token scopes matter here. Without the deploy permission a deploy will not fire, and sensitive fields such as auto-deploy stay unreadable unless the token carries view:sensitive. Installing the Coolify server itself is out of scope — that is the official install script. When the docker, github-actions or ci-cd-architecture skills are present, the author suggests handing the matching parts of the job to them.
What it helps with
- trigger an app deploy through the Coolify REST API
- wire auto-deploy to pushes on a chosen branch
- build a GitHub Actions pipeline that calls a Coolify webhook
- pick a build pack for a project: Nixpacks, Dockerfile or Compose
- find out why a health check keeps failing on Compose services
Example prompts for the agent
- Deploy the app with this uuid in Coolify and show me the build status
- Set up GitHub Actions: build the image, push it to the registry, then hit the Coolify webhook
- Why does the Coolify API return Unauthenticated? Check the headers and token scopes
How to install coolify
1Skills CLI (Vercel)
npx skills add oakoss/agent-skills --skill coolify -a claude-code2Manually: put the files in place
~/.claude/skills/coolify/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/coolify/
1Skills CLI (Vercel)
npx skills add oakoss/agent-skills --skill coolify -a codex2Manually: put the files in place
.agents/skills/coolify/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add oakoss/agent-skills --skill coolify -a cursor2Manually: put the files in place
.cursor/skills/coolify/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install oakoss/agent-skills coolify2Manually: put the files in place
.github/skills/coolify/SKILL.md1Skills CLI (Vercel)
npx skills add oakoss/agent-skills --skill coolify -a gemini-cli2Platform CLI
gemini skills install https://github.com/oakoss/agent-skills --path skills/coolifyManually: put the files in place
.devin/skills/coolify/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add oakoss/agent-skills --skill coolify -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about coolify
How do I install the coolify skill in Claude?
Run npx skills add oakoss/agent-skills --skill coolify -a claude-code. The skill lands in ~/.claude/skills/coolify/SKILL.md.
What does the coolify skill do?
It gives the agent working knowledge of Coolify: REST API auth, deploy triggers, app creation, build packs, environment variables, Traefik and webhook-driven CI/CD.
Why does my API deploy not trigger?
Usually the token lacks the deploy permission, and reading sensitive fields needs the view:sensitive scope. Also send Accept: application/json next to the Bearer token.
Source text
SKILL.md · MIT
---
name: coolify
description: |
Coolify self-hosted PaaS for deploying applications, databases, and services via REST API and Git integration. Covers API authentication, deployment triggers, build packs (Nixpacks, Dockerfile, Compose), CI/CD with GitHub Actions webhooks, environment management, and Traefik proxy configuration.
Use when deploying apps to Coolify, triggering deployments via API, configuring build packs, setting up GitHub Actions CI/CD pipelines, managing environment variables, or troubleshooting deployment failures.
license: MIT
metadata:
author: oakoss
version: '1.0'
source: 'https://coolify.io/docs'
user-invocable: false
---
# Coolify
## Overview
Coolify is a self-hosted PaaS (Vercel/Netlify alternative) that deploys applications, databases, and services on your own infrastructure. It provides a REST API for programmatic control, supports multiple build packs, and uses Traefik for reverse proxy and SSL.
**When to use:** Deploying applications to self-hosted infrastructure, managing databases and services through API, automating deployments via CI/CD, self-hosting without vendor lock-in.
**When NOT to use:** Initial Coolify server installation (use the official install script via browser), managing Coolify's own infrastructure (Postgres, Redis — managed internally), or when a managed platform (Vercel, Railway) meets your needs without self-hosting requirements.
## Quick Reference
| Pattern | Approach | Key Points |
| --------------------- | ------------------------------------------------------- | ------------------------------------------------- |
| API auth | `Authorization: Bearer <token>` header | Token created in dashboard, scoped permissions |
| List applications | `GET /api/v1/applications` | Returns all apps with status and config |
| Trigger deploy | `GET /api/v1/deploy?uuid=<app>&force=true` | Or use per-app webhook URL |
| Create application | `POST /api/v1/applications/public` | Requires project_uuid, server_uuid, env_name |
| Update application | `PATCH /api/v1/applications/<uuid>` | Accepts build, health check, domain, limit fields |
| Auto-deploy | Enable in Advanced > General | Deploys on every push to configured branch |
| Webhook deploy | `curl GET <webhook_url> -H "Authorization: Bearer ..."` | Controlled deploys from CI pipelines |
| GitHub Actions deploy | Build image, push to registry, trigger webhook | Full control over build + test before deploy |
| Nixpacks build | Auto-detected from source code | Zero-config for supported languages |
| Dockerfile build | Set build pack to `dockerfile` | Full control over build process |
| Compose build | `docker-compose.yaml` as source of truth | Multi-service stacks with Coolify labels |
| Environment variables | API or dashboard per-environment | Interpolated in Compose via `${VAR}` syntax |
| Domain routing | `fqdn` field or Traefik labels in Compose | Automatic SSL via Let's Encrypt |
| Health checks | Configurable path, interval, retries via API | Required for `running:healthy` status |
## Common Mistakes
| Mistake | Correct Pattern |
| ----------------------------------------------- | ------------------------------------------------------------------ |
| API returns "Unauthenticated" | Add `Accept: application/json` header alongside Bearer token |
| Can't read sensitive fields (auto-deploy, etc.) | Token needs `view:sensitive` or `*` permission scope |
| Auto-deploy not triggering | Verify GitHub App is connected and auto-deploy enabled in Advanced |
| Using API token without deploy permission | Token needs explicit `deploy` permission to trigger deployments |
| Health check fails on Compose services | Add `exclude_from_hc: true` label for non-HTTP services |
| Webhook deploy without auth header | Always include `Authorization: Bearer <token>` with webhook calls |
| Environment variables not available in build | Use build arguments in Advanced menu, not runtime env vars |
| Compose services can't communicate | Use service names as hostnames within the same stack network |
## Delegation
- **API exploration**: Use `Explore` agent to discover existing Coolify resources
- **Dockerfile optimization**: Use `Task` agent to review Dockerfiles for Coolify deployment
- **CI/CD pipeline design**: Use `Plan` agent for deployment workflow strategy
> If the `docker` skill is available, delegate Dockerfile authoring, multi-stage builds, and image optimization to it.
> If the `github-actions` skill is available, delegate workflow syntax and CI pipeline patterns to it.
> If the `ci-cd-architecture` skill is available, delegate deployment strategy and environment promotion to it.
## References
- [API: authentication, endpoints, common operations, and permission scopes](references/api-patterns.md)
- [Deployment: auto-deploy, webhooks, GitHub Actions, and CI/CD pipelines](references/deployment-strategies.md)
- [Build packs: Nixpacks, Dockerfile, Compose conventions, and configuration](references/build-packs.md)
© oakoss · MIT · oakoss/agent-skills