agentsclimarketplace

Sc dokploy

Skill rahmanef63/si-coder-agent/skills/sc-dokploy

Zero-human full-stack deployment skill bundle for AI agents — GitHub + Dokploy + Convex (self-hosted & Cloud) + Vercel + Hostinger DNS, via modular /sc-* slash commands.

Install
npx -y skills add rahmanef63/si-coder-agent --skill sc-dokploy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Dokploy CRUD, audit, and debug. List/create/update/delete projects, applications, compose services, and domains via REST API. Find stale domains, duplicate hosts, and *.traefik.me leftovers. Inspect status and recent deployments.

SKILL.md

5.0 KB, as published. Nobody here has run it

/sc-dokploy — Dokploy CRUD & Audit

Use this skill when the user wants to inspect, change, or clean up Dokploy state directly (without redeploying code).

Pre-requisites

  • DOKPLOY_API_URL, DOKPLOY_API_KEY — Dokploy admin
  • SSH fallback to the Dokploy host (for orphan swarm services / Traefik file CRUD the REST API does NOT expose): ssh -i ~/.ssh/<your_key> <user>@<your-dokploy-host> with passwordless sudo.

If missing, route to /sc-onboarding.

REST vs SSH

Dokploy REST API covers projects, applications, compose, domains, deploy/start/stop, monitoring read. It does NOT cover:

  • docker service rm (orphan swarm services)
  • rm /etc/dokploy/traefik/dynamic/<file>.yml (orphan Traefik routers)
  • container exec / kill / log tail beyond the dashboard

For those, SSH in directly. Useful one-liners:

ssh -i ~/.ssh/<your_key> <user>@<your-dokploy-host> 'sudo -n docker service ls'
ssh -i ~/.ssh/<your_key> <user>@<your-dokploy-host> 'sudo -n ls /etc/dokploy/traefik/dynamic/'
ssh -i ~/.ssh/<your_key> <user>@<your-dokploy-host> 'sudo -n docker service rm <name>'
ssh -i ~/.ssh/<your_key> <user>@<your-dokploy-host> 'sudo -n rm /etc/dokploy/traefik/dynamic/<name>.yml'  # Traefik file watcher reloads in ~5-10s

Orphan-service pattern: when a Dokploy app is recreated, the old swarm service and its Traefik dynamic config can survive deletion. Both compete for the same Host(...) rule. Symptom: prod serves an old image even after a fresh deploy. Diagnosis: docker service ls shows two services for the same project, and two .yml files in traefik/dynamic/ bind the same domain. Fix: remove the orphan file + service.

CORE RULES

  1. Idempotency: domain.create may 4xx on duplicate; treat that as a no-op, not an error.
  2. Don't delete domains blindly: only delete domains via audit.js's selectDomainsToDelete — keep the desired canonical host, drop *.traefik.me and duplicates.
  3. Never rename the Dokploy control host: whatever hostname is in DOKPLOY_API_URL is the control plane. Never rewrite it inside scripts — read it from env.
  4. x-api-key header, not Bearer: Dokploy uses x-api-key, NOT Authorization: Bearer.

Scripts

projects.js — Project CRUD

node scripts/projects.js list
node scripts/projects.js create <name>
node scripts/projects.js show <name>

apps.js — Application CRUD

node scripts/apps.js list --project <name>
node scripts/apps.js show --project <name> --app <name>
node scripts/apps.js deploy --project <name> --app <name>

compose.js — Compose service CRUD

node scripts/compose.js list --project <name>
node scripts/compose.js show --compose <composeName>
node scripts/compose.js env --compose <composeName>
node scripts/compose.js deploy --compose <composeName>

domains.js — Domain CRUD

node scripts/domains.js list-app --app-id <id>
node scripts/domains.js list-compose --compose-id <id>
node scripts/domains.js create-app --app-id <id> --host <host> [--port N]
node scripts/domains.js create-compose --compose-id <id> --host <host> --port <n> --service <name>
node scripts/domains.js delete --domain-id <id>

audit.js — Sweep

Reports across all projects:

  • *.traefik.me placeholder hosts that should be removed
  • Duplicate hosts on the same service
  • Applications with no domain configured
  • Compose services missing INSTANCE_SECRET
node scripts/audit.js [--fix]   # --fix removes stale domains

debug.js — Status & recent deployments

node scripts/debug.js status --project <name> --app <name>
node scripts/debug.js status --compose <composeName>
node scripts/debug.js deployments --app-id <id>

API endpoint reference (Dokploy)

ActionEndpointMethod
List projects/project.allGET
Create project/project.createPOST { name }
Get application/application.one?applicationId=GET
Update application/application.updatePOST
Deploy application/application.deployPOST { applicationId }
Get compose/compose.one?composeId=GET
Update compose/compose.updatePOST
Deploy compose/compose.deployPOST { composeId }
Deploy compose template/compose.deployTemplatePOST { environmentId, id }
Create domain/domain.createPOST
Delete domain/domain.deletePOST { domainId }
List GitHub providers/github.githubProvidersGET
Save app GH provider/application.saveGithubProviderPOST

Auth: x-api-key: <DOKPLOY_API_KEY>.

Note on logs

Dokploy build logs are NOT exposed over the REST API (as of this skill's last update). On deployment failure, point the user at the Dokploy dashboard: <DOKPLOY_API_URL without /api> → project → service → Deployments

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.