ClawSkills logoClawSkills

Dokploy

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

Introduction

# 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:

```bash # 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 ```bash dokploy-project list ```

### Get project details ```bash dokploy-project get <project-id> ```

### Create a new project ```bash dokploy-project create --name "My Project" --description "Description here" ```

### Update a project ```bash dokploy-project update <project-id> --name "New Name" --description "Updated" ```

### Delete a project ```bash dokploy-project delete <project-id> ```

## Applications

### List applications in a project ```bash dokploy-app list --project <project-id> ```

### Get application details ```bash dokploy-app get <application-id> ```

### Create an application ```bash dokploy-app create \ --project <project-id> \ --name "my-app" \ --type "docker" \ --image "nginx:latest" ```

**Application types:** `docker`, `git`, `compose`

### Trigger deployment ```bash dokploy-app deploy <application-id> ```

### Get deployment logs ```bash dokploy-app logs <application-id> --deployment <deployment-id> ```

### List deployments ```bash dokploy-app deployments <application-id> ```

### Update application ```bash dokploy-app update <application-id> --name "new-name" --env "KEY=VALUE" ```

### Delete an application ```bash dokploy-app delete <application-id> ```

## Domains

### List domains for an application ```bash dokploy-domain list --application <application-id> ```

### Get domain details ```bash dokploy-domain get <domain-id> ```

### Add a domain to an application ```bash dokploy-domain create \ --application <application-id> \ --domain "app.example.com" \ --path "/" \ --port 80 ```

### Update a domain ```bash dokploy-domain update <domain-id> --domain "new.example.com" ```

### Delete a domain ```bash dokploy-domain delete <domain-id> ```

## Environment Variables

### List environment variables for an application ```bash dokploy-app env list <application-id> ```

### Set environment variable ```bash dokploy-app env set <application-id> --key "DATABASE_URL" --value "postgres://..." ```

### Delete environment variable ```bash dokploy-app env delete <application-id> --key "DATABASE_URL" ```

## Utility Commands

### Check API connection ```bash dokploy-status ```

### View current config ```bash dokploy-config show ```

## API Reference

Base URL: `$DOKPLOY_API_URL/api`

| Endpoint | Method | Description | |----------|--------|-------------| | `/project.all` | GET | List all projects | | `/project.create` | POST | Create project | | `/project.byId` | GET | Get project by ID | | `/project.update` | PATCH | Update project | | `/project.delete` | DELETE | Delete project | | `/application.all` | GET | List applications | | `/application.create` | POST | Create application | | `/application.byId` | GET | Get application by ID | | `/application.update` | PATCH | Update application | | `/application.delete` | DELETE | Delete application | | `/application.deploy` | POST | Trigger deployment | | `/deployment.all` | GET | List deployments | | `/deployment.byId` | GET | Get deployment by ID | | `/deployment.logs` | GET | Get deployment logs | | `/domain.all` | GET | List domains | | `/domain.create` | POST | Create domain | | `/domain.update` | PATCH | Update domain | | `/domain.delete` | DELETE | Delete 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

More Products