dokploy-management
SKILL.md
Dokploy Remote Management Skill
Manage a remote Dokploy instance via its REST API (383 endpoints, 40 domains).
Prerequisites
IMPORTANT: Before running any command, check if the venv exists. If it does not, create it and install dependencies:
if [ ! -d "<SKILL_DIR>/.venv" ]; then
cd <SKILL_DIR>
python3 -m venv .venv
.venv/bin/pip install httpx
fi
PYTHON=<SKILL_DIR>/.venv/bin/python3
Environment variables (REQUIRED):
export DOKPLOY_URL="https://your-dokploy-instance.com"
export DOKPLOY_API_KEY="your-api-key-here"
Script Location
<SKILL_DIR>/scripts/dokploy.py
Usage Pattern
$PYTHON scripts/dokploy.py <domain> <action> [--param-name value ...]
Quick Reference
| Domain | Actions | Description |
|---|---|---|
project |
all, create, one, update, remove, duplicate |
Manage projects |
application |
one, create, deploy, redeploy, start, stop, update, delete, ... |
Manage applications (27 actions) |
compose |
one, create, deploy, start, stop, update, delete, ... |
Manage Docker Compose services (26 actions) |
postgres |
one, create, deploy, start, stop, update, remove, ... |
PostgreSQL databases (14 actions) |
mysql |
one, create, deploy, start, stop, update, remove, ... |
MySQL databases (13 actions) |
mariadb |
one, create, deploy, start, stop, update, remove, ... |
MariaDB databases (13 actions) |
mongo |
one, create, deploy, start, stop, update, remove, ... |
MongoDB databases (13 actions) |
redis |
one, create, deploy, start, stop, update, remove, ... |
Redis instances (14 actions) |
docker |
getContainers, getConfig, restartContainer, ... |
Docker operations (7 actions) |
domain |
create, update, delete, one, byApplicationId, ... |
Domain management (9 actions) |
server |
all, one, create, update, remove, setup, ... |
Server management (16 actions) |
settings |
getDokployVersion, getIp, health, cleanAll, ... |
System settings (39 actions) |
backup |
create, update, remove, one, manualBackup*, ... |
Backup management (11 actions) |
notification |
all, create*, update*, test*, remove, ... |
Notifications (26 actions) |
user |
all, get, one, update, remove, createApiKey, ... |
User management (19 actions) |
organization |
all, create, update, delete, one, ... |
Organizations (8 actions) |
deployment |
all, allByCompose, allByServer, allByType, killProcess |
Deployments (5 actions) |
destination |
all, create, update, remove, one, testConnection |
Backup destinations (6 actions) |
certificates |
all, create, one, remove |
SSL certificates (4 actions) |
registry |
all, create, update, remove, one, testRegistry |
Docker registries (6 actions) |
ssh-key |
all, create, update, remove, one, generate |
SSH keys (6 actions) |
github |
githubProviders, one, getGithubBranches, ... |
GitHub integration (6 actions) |
gitlab |
gitlabProviders, one, create, update, ... |
GitLab integration (7 actions) |
gitea |
giteaProviders, one, create, update, ... |
Gitea integration (8 actions) |
bitbucket |
bitbucketProviders, one, create, update, ... |
Bitbucket integration (7 actions) |
git-provider |
getAll, remove |
Git providers (2 actions) |
environment |
byProjectId, create, update, remove, one, duplicate |
Environments (6 actions) |
schedule |
create, update, delete, list, one, runManually |
Scheduled tasks (6 actions) |
security |
create, update, delete, one |
Basic auth security (4 actions) |
port |
create, update, delete, one |
Port mappings (4 actions) |
mounts |
create, update, remove, one, allNamedByApplicationId |
Volume mounts (5 actions) |
redirects |
create, update, delete, one |
URL redirects (4 actions) |
rollback |
delete, rollback |
Rollback management (2 actions) |
cluster |
addManager, addWorker, getNodes, removeWorker |
Swarm cluster (4 actions) |
swarm |
getNodeApps, getNodeInfo, getNodes |
Swarm info (3 actions) |
ai |
create, delete, deploy, get, getAll, update, ... |
AI features (9 actions) |
stripe |
canCreateMoreServers, createCheckoutSession, ... |
Billing (4 actions) |
admin |
setupMonitoring |
Admin (1 action) |
volume-backups |
create, delete, list, one, runManually, update |
Volume backups (6 actions) |
preview-deployment |
all, delete, one |
Preview deployments (3 actions) |
notification |
all, create*, update*, test*, ... |
Notifications (26 actions) |
Common Commands
List all projects
$PYTHON scripts/dokploy.py project all
Get Dokploy version
$PYTHON scripts/dokploy.py settings getDokployVersion
Get system health
$PYTHON scripts/dokploy.py settings health
Get server IP
$PYTHON scripts/dokploy.py settings getIp
List Docker containers
$PYTHON scripts/dokploy.py docker getContainers
Get a specific project
$PYTHON scripts/dokploy.py project one --project-id "abc123"
Create a project
$PYTHON scripts/dokploy.py project create --name "My Project" --description "Description"
Create an application
$PYTHON scripts/dokploy.py application create --name "my-app" --environment-id "env123"
Deploy an application
$PYTHON scripts/dokploy.py application deploy --application-id "app123"
Stop an application
$PYTHON scripts/dokploy.py application stop --application-id "app123"
Create a PostgreSQL database
$PYTHON scripts/dokploy.py postgres create \
--name "my-db" \
--app-name "my-db-app" \
--database-name "mydb" \
--database-user "admin" \
--database-password "secret" \
--environment-id "env123"
List all servers
$PYTHON scripts/dokploy.py server all
List all users
$PYTHON scripts/dokploy.py user all
Get current user
$PYTHON scripts/dokploy.py user get
Create a notification (Discord)
$PYTHON scripts/dokploy.py notification createDiscord \
--name "alerts" \
--webhook-url "https://discord.com/api/webhooks/..." \
--app-build-error true \
--app-deploy true \
--database-backup true \
--dokploy-restart true \
--docker-cleanup true \
--server-threshold true \
--decoration true
Raw output (no wrapper)
$PYTHON scripts/dokploy.py --raw project all
Custom timeout
$PYTHON scripts/dokploy.py --timeout 120 compose deploy --compose-id "comp123"
CLI Flags
Global flags
| Flag | Description | Default |
|---|---|---|
--raw |
Output raw API response (no {"success": true, "data": ...} wrapper) |
false |
--timeout |
Request timeout in seconds | 60 |
Parameter naming
CLI flags use kebab-case, converted from the API's camelCase:
applicationId→--application-idenvironmentId→--environment-idcomposeId→--compose-idserverId→--server-id
Parameter types
| API Type | CLI Input | Example |
|---|---|---|
string |
Plain text | --name "my-app" |
number / integer |
Numeric string | --port 3000 |
boolean |
true/false, yes/no, 1/0, on/off |
--enabled true |
array |
JSON array string | --watch-paths '["src/", "lib/"]' |
object |
JSON object string | --metrics-config '{"cpu": true}' |
Common Workflows
Full project setup
# 1. Create project
$PYTHON scripts/dokploy.py project create --name "production"
# 2. Get environments for the project
$PYTHON scripts/dokploy.py environment byProjectId --project-id "PROJECT_ID"
# 3. Create application in environment
$PYTHON scripts/dokploy.py application create --name "api" --environment-id "ENV_ID"
# 4. Configure and deploy
$PYTHON scripts/dokploy.py application deploy --application-id "APP_ID"
Database management
# Create a PostgreSQL database
$PYTHON scripts/dokploy.py postgres create --name "db" --app-name "db-app" \
--database-name "mydb" --database-user "user" --database-password "pass" \
--environment-id "ENV_ID"
# Start it
$PYTHON scripts/dokploy.py postgres start --postgres-id "PG_ID"
# Create a backup
$PYTHON scripts/dokploy.py backup create --schedule "0 2 * * *" --prefix "daily" \
--destination-id "DEST_ID" --database "mydb" --database-type postgres \
--postgres-id "PG_ID"
Server monitoring
# Check system health
$PYTHON scripts/dokploy.py settings health
# Get version
$PYTHON scripts/dokploy.py settings getDokployVersion
# List containers
$PYTHON scripts/dokploy.py docker getContainers
# Clean unused images
$PYTHON scripts/dokploy.py settings cleanUnusedImages
Output Format
Success:
{
"success": true,
"data": { ... }
}
Error (stderr):
{
"success": false,
"error": "Error message",
"status_code": 401,
"detail": { ... }
}
Exit codes:
| Code | Meaning |
|---|---|
0 |
Success |
1 |
API error or runtime error |
2 |
Usage error (missing domain/action) |
Technical Notes
- All 383 Dokploy API endpoints are supported (40 domains)
- API uses tRPC-over-REST:
GET /api/<router>.<procedure>for queries,POSTfor mutations - Authentication via
x-api-keyheader - Automatic retry on 5xx errors (up to 2 retries with backoff)
- Default timeout: 60 seconds (configurable via
--timeout) - Single dependency:
httpx - Boolean parameters accept:
true/false,yes/no,1/0,on/off(case-insensitive). Invalid values are rejected with an error. - Array/object parameters accept JSON strings
- Error messages redact sensitive data (API keys, tokens) from URLs and response details
Weekly Installs
6
Repository
quantmind-br/skillsGitHub Stars
2
First Seen
14 days ago
Security Audits
Installed on
opencode6
gemini-cli6
amp6
cline6
github-copilot6
codex6