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