Install
$ agentstack add skill-rahmanef63-si-coder-agent-sc-dokploy ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
/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/id_n8n rahman@srv614914with 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/.yml(orphan Traefik routers)- container exec / kill / log tail beyond the dashboard
For those, SSH in directly. Useful one-liners:
ssh -i ~/.ssh/id_n8n rahman@srv614914 'sudo -n docker service ls'
ssh -i ~/.ssh/id_n8n rahman@srv614914 'sudo -n ls /etc/dokploy/traefik/dynamic/'
ssh -i ~/.ssh/id_n8n rahman@srv614914 'sudo -n docker service rm '
ssh -i ~/.ssh/id_n8n rahman@srv614914 'sudo -n rm /etc/dokploy/traefik/dynamic/.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
- Idempotency:
domain.createmay 4xx on duplicate; treat that as a no-op, not an error. - Don't delete domains blindly: only delete domains via
audit.js'sselectDomainsToDelete— keep the desired canonical host, drop*.traefik.meand duplicates. - Never rename the Dokploy control host: whatever hostname is in
DOKPLOY_API_URLis the control plane. Never rewrite it inside scripts — read it from env. x-api-keyheader, not Bearer: Dokploy usesx-api-key, NOTAuthorization: Bearer.
Scripts
projects.js — Project CRUD
node scripts/projects.js list
node scripts/projects.js create
node scripts/projects.js show
apps.js — Application CRUD
node scripts/apps.js list --project
node scripts/apps.js show --project --app
node scripts/apps.js deploy --project --app
compose.js — Compose service CRUD
node scripts/compose.js list --project
node scripts/compose.js show --compose
node scripts/compose.js env --compose
node scripts/compose.js deploy --compose
domains.js — Domain CRUD
node scripts/domains.js list-app --app-id
node scripts/domains.js list-compose --compose-id
node scripts/domains.js create-app --app-id --host [--port N] [--service NAME]
node scripts/domains.js delete --domain-id
audit.js — Sweep
Reports across all projects:
*.traefik.meplaceholder 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 --app
node scripts/debug.js status --compose
node scripts/debug.js deployments --app-id
API endpoint reference (Dokploy)
| Action | Endpoint | Method | |---|---|---| | List projects | /project.all | GET | | Create project | /project.create | POST { name } | | Get application | /application.one?applicationId= | GET | | Update application | /application.update | POST | | Deploy application | /application.deploy | POST { applicationId } | | Get compose | /compose.one?composeId= | GET | | Update compose | /compose.update | POST | | Deploy compose | /compose.deploy | POST { composeId } | | Deploy compose template | /compose.deployTemplate | POST { environmentId, id } | | Create domain | /domain.create | POST | | Delete domain | /domain.delete | POST { domainId } | | List GitHub providers | /github.githubProviders | GET | | Save app GH provider | /application.saveGithubProvider | POST |
Auth: x-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: → project → service → Deployments
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: rahmanef63
- Source: rahmanef63/si-coder-agent
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.