Awesome-openclaw-skills dokploy

Manage Dokploy deployments, projects, applications, and domains via the Dokploy API.

install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/dokploy" ~/.claude/skills/sundial-org-awesome-openclaw-skills-dokploy && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/dokploy" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-dokploy && rm -rf "$T"
manifest: skills/dokploy/SKILL.md
source content

Dokploy Skill

Interact with Dokploy's API to manage projects, applications, domains, and deployments.

Prerequisites

  1. Dokploy instance running with API access
  2. API Key generated from
    /settings/profile
    → "API/CLI Section"
  3. Set the
    DOKPLOY_API_URL
    environment variable (default:
    http://localhost:3000
    )

Configuration

Set these environment variables or use the config command:

# Dokploy instance URL
export DOKPLOY_API_URL="https://your-dokploy-instance.com"

# Your API token
export DOKPLOY_API_KEY="your-generated-api-key"

# Or run the config command
dokploy-config set --url "https://your-dokploy-instance.com" --key "your-api-key"

Projects

List all projects

dokploy-project list

Get project details

dokploy-project get <project-id>

Create a new project

dokploy-project create --name "My Project" --description "Description here"

Update a project

dokploy-project update <project-id> --name "New Name" --description "Updated"

Delete a project

dokploy-project delete <project-id>

Applications

List applications in a project

dokploy-app list --project <project-id>

Get application details

dokploy-app get <application-id>

Create an application

dokploy-app create \
  --project <project-id> \
  --name "my-app" \
  --type "docker" \
  --image "nginx:latest"

Application types:

docker
,
git
,
compose

Trigger deployment

dokploy-app deploy <application-id>

Get deployment logs

dokploy-app logs <application-id> --deployment <deployment-id>

List deployments

dokploy-app deployments <application-id>

Update application

dokploy-app update <application-id> --name "new-name" --env "KEY=VALUE"

Delete an application

dokploy-app delete <application-id>

Domains

List domains for an application

dokploy-domain list --application <application-id>

Get domain details

dokploy-domain get <domain-id>

Add a domain to an application

dokploy-domain create \
  --application <application-id> \
  --domain "app.example.com" \
  --path "/" \
  --port 80

Update a domain

dokploy-domain update <domain-id> --domain "new.example.com"

Delete a domain

dokploy-domain delete <domain-id>

Environment Variables

List environment variables for an application

dokploy-app env list <application-id>

Set environment variable

dokploy-app env set <application-id> --key "DATABASE_URL" --value "postgres://..."

Delete environment variable

dokploy-app env delete <application-id> --key "DATABASE_URL"

Utility Commands

Check API connection

dokploy-status

View current config

dokploy-config show

API Reference

Base URL:

$DOKPLOY_API_URL/api

EndpointMethodDescription
/project.all
GETList all projects
/project.create
POSTCreate project
/project.byId
GETGet project by ID
/project.update
PATCHUpdate project
/project.delete
DELETEDelete project
/application.all
GETList applications
/application.create
POSTCreate application
/application.byId
GETGet application by ID
/application.update
PATCHUpdate application
/application.delete
DELETEDelete application
/application.deploy
POSTTrigger deployment
/deployment.all
GETList deployments
/deployment.byId
GETGet deployment by ID
/deployment.logs
GETGet deployment logs
/domain.all
GETList domains
/domain.create
POSTCreate domain
/domain.update
PATCHUpdate domain
/domain.delete
DELETEDelete domain

Notes

  • All API calls require the
    x-api-key
    header
  • Use
    jq
    for JSON parsing in scripts
  • Some operations require admin permissions
  • Deployment is asynchronous — use status endpoint to check progress