Loading...
Loading...
Expert Coolify management skill for self-hosted infrastructure. Deploy, manage, provision, and debug services, handle environment variables, and automate workflows with or without MCP.
npx skill4agent add fatih-developer/fth-skills coolify-orchestratorMCP_AVAILABLE = Can coolify-mcp MCP tools be called?
Yes → MCP mode: use tools directly (references/api.md is unnecessary)
No → API mode: use Coolify REST API via curl/bash (read references/api.md)COOLIFY_BASE_URLhttps://coolify.example.comCOOLIFY_ACCESS_TOKENIs it about "deploy" or "build"?
+ Turborepo / monorepo / package error → [TURBO-DEPLOY]
+ Normal app deploy → [DEPLOY-VERIFY]
Is it about "down" / "unhealthy" / "error"?
+ Container/file issue (htaccess, config, .env) → [CONTAINER-EXEC]
+ API/service issue → [DEPLOY-VERIFY] (diagnose flow)
Is it about "new" / "provisioning" / "tenant"?
→ [PROVISIONING]
Is it about "env var" / "environment" / "secret"?
→ [MULTI-TENANT-ENV]
Is SSH / container terminal / exec requested?
→ [CONTAINER-EXEC]Detail:references/turborepo-deploy.md
Cannot find module '@myapp/shared'tsconfig.jsonCOPYturbo.json# API mode — fetch build logs
curl -s -H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
"$COOLIFY_BASE_URL/api/v1/applications/{uuid}/logs" | tail -100application_logs(uuid)deployment(action: list_for_app)references/turborepo-deploy.mdDetail:references/deploy-verify.md
1. Trigger deploy
MCP: deploy(uuid, force_rebuild?)
API: POST /api/v1/applications/{uuid}/start
2. Monitor deploy status (max 3 minutes, 10s intervals)
MCP: deployment(action: get, uuid: deploy_uuid)
API: GET /api/v1/deployments/{uuid}
Expected: "finished" — if "failed", fetch logs
3. Application health check
MCP: diagnose_app(uuid or domain)
API: GET /api/v1/applications/{uuid} → status: "running:healthy"?
4. HTTP probe (For Hono/Next.js)
curl -sf https://{domain}/health || curl -sf https://{domain}/api/health
Successful if it returns 200.
5. If failed → analyze logs and find the root causeGET /health → { status: "ok", uptime: X }
GET /api/health → 200 OKfor i in $(seq 1 18); do
STATUS=$(curl -s -H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
"$COOLIFY_BASE_URL/api/v1/deployments/$DEPLOY_UUID" | jq -r '.status')
echo "[$i] $STATUS"
[ "$STATUS" = "finished" ] && break
[ "$STATUS" = "failed" ] && echo "ERROR: Deploy failed" && break
sleep 10
doneDetail:references/provisioning.md
1. Create project (or find existing project)
2. Create environment (staging / production)
3. Create database and obtain connection credentials
4. Create application (source: Docker image / GitHub repo)
5. Set env vars (including DB_URL)
6. Deploy
7. Run [DEPLOY-VERIFY] loop| Stack | Template |
|---|---|
| Bun + Hono + PostgreSQL | |
| Next.js + PostgreSQL + Redis | |
| PostgreSQL only | |
Detail:references/multi-tenant-env.md
# List
curl -s -H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
"$COOLIFY_BASE_URL/api/v1/applications/$APP_UUID/envs"
# Add/update
curl -s -X POST -H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key":"DATABASE_URL","value":"...","is_multiline":false}' \
"$COOLIFY_BASE_URL/api/v1/applications/$APP_UUID/envs"env_vars(resource: application, action: create|update, uuid, key, value)bulk_env_update(app_uuids: [...], key, value)references/multi-tenant-env.md#bulk-scriptDATABASE_URLDetail:references/container-exec.md
.env1. Coolify Dashboard → Service → Terminal (web UI) — easiest
2. SSH → server → docker exec — if shell access is available
3. Coolify API exec endpoint (if available) — programmatic# Connect to server
ssh user@coolify-server
# Find container name
docker ps | grep <service-name>
# Enter container
docker exec -it <container-name> sh
# or if bash exists:
docker exec -it <container-name> bash| Service | File path |
|---|---|
| Bun/Node app | |
| Next.js | |
| PostgreSQL data | |
# API mode
curl -X POST -H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
"$COOLIFY_BASE_URL/api/v1/applications/$APP_UUID/restart"references/DATABASE_URL=postgres://***curl -s \
-H "Authorization: Bearer $COOLIFY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"$COOLIFY_BASE_URL/api/v1/{endpoint}"| File | When |
|---|---|
| Turborepo/monorepo build issues |
| Deploy loop details, Bun/Hono/Next.js health check patterns |
| New service provisioning templates |
| Bulk env update, isolation verification |
| SSH patterns, file editing, container debug |
| All Coolify REST API endpoints (if MCP unavailable) |