Skip to main content
These tools manage application build configuration, environment variables, runtime settings, and monitoring.
applicationId
string
required
The ID of the application to configure build type for.
buildType
enum
required
The build type for the application. One of:
  • dockerfile - Build from Dockerfile
  • heroku_buildpacks - Use Heroku buildpacks
  • paketo_buildpacks - Use Paketo buildpacks
  • nixpacks - Use Nixpacks (automatic detection)
  • static - Static site hosting
  • railpack - Ruby on Rails optimized
dockerContextPath
string | null
required
Docker build context path. Use null for repository root.
dockerBuildStage
string | null
required
Target stage for multi-stage Dockerfile builds. Use null for final stage.
dockerfile
string | null
Dockerfile content or path. Optional for dockerfile build type.
herokuVersion
string | null
Heroku stack version for heroku_buildpacks type (e.g., “22”, “20”).
railpackVersion
string | null
Railpack version for railpack build type.
publishDirectory
string | null
Directory containing built static files for static build type (e.g., “dist”, “build”, “public”).
isStaticSpa
boolean | null
Whether static site is a Single Page Application (enables client-side routing).
Annotations: Destructive, Non-idempotent

Example: Dockerfile Build

{
  "applicationId": "app_123",
  "buildType": "dockerfile",
  "dockerContextPath": null,
  "dockerBuildStage": null,
  "dockerfile": "Dockerfile.prod"
}

Example: Multi-stage Dockerfile

{
  "applicationId": "app_123",
  "buildType": "dockerfile",
  "dockerContextPath": "./backend",
  "dockerBuildStage": "production",
  "dockerfile": null
}

Example: Static Site (SPA)

{
  "applicationId": "app_123",
  "buildType": "static",
  "dockerContextPath": null,
  "dockerBuildStage": null,
  "publishDirectory": "dist",
  "isStaticSpa": true
}

Example: Nixpacks (Auto-detect)

{
  "applicationId": "app_123",
  "buildType": "nixpacks",
  "dockerContextPath": null,
  "dockerBuildStage": null
}

Response

data
object
Updated application with build type configuration.
applicationId
string
required
The ID of the application to save environment for.
env
string | null
Environment variables in KEY=VALUE format, separated by newlines.
buildArgs
string | null
Docker build arguments in KEY=VALUE format, separated by newlines.
Annotations: Destructive, Non-idempotentEnvironment variables are injected into the running container. Build arguments are only available during the build process.

Example: Environment Variables

{
  "applicationId": "app_123",
  "env": "NODE_ENV=production\nAPI_URL=https://api.example.com\nDATABASE_URL=postgresql://...",
  "buildArgs": null
}

Example: Build Arguments

{
  "applicationId": "app_123",
  "env": null,
  "buildArgs": "NPM_TOKEN=secret\nBUILD_VERSION=2.1.0"
}

Example: Both

{
  "applicationId": "app_123",
  "env": "NODE_ENV=production\nPORT=3000",
  "buildArgs": "NODE_VERSION=18\nYARN_VERSION=3.6.0"
}
Secrets should be managed through Dokploy’s secret management system, not hardcoded in environment variables.

Response

data
object
Updated application with environment configuration.
applicationId
string
required
The ID of the application to configure Docker provider for.
dockerImage
string | null
required
The Docker image to deploy (e.g., “nginx:latest”, “myregistry.com/myapp:v1.0”).
Annotations: Destructive, Non-idempotentUse this when deploying pre-built Docker images instead of building from source. This is an alternative to Git provider configuration.

Example: Public Docker Hub Image

{
  "applicationId": "app_123",
  "dockerImage": "nginx:1.25-alpine"
}

Example: Private Registry

{
  "applicationId": "app_123",
  "dockerImage": "registry.company.com/team/api:v2.3.1"
}
For private registries, configure registry authentication in the application’s registryUrl, username, and password fields using application-update.

Response

data
object
Updated application with Docker image configuration.
appName
string
required
The app name of the application to get monitoring data for.
Annotations: Read-only, IdempotentRetrieves real-time monitoring metrics for the application including CPU usage, memory consumption, network I/O, and container health.

Example

{
  "appName": "my-api-prod"
}

Response

data
object
Monitoring metrics object containing:
  • CPU usage (percentage and cores)
  • Memory usage (current, limit, percentage)
  • Network I/O (bytes sent/received)
  • Container count and health status
  • Uptime information
applicationId
string
required
The ID of the application to read Traefik configuration for.
Annotations: Read-only, IdempotentRetrieves the current Traefik reverse proxy configuration for the application, including routing rules, middlewares, and SSL settings.

Example

{
  "applicationId": "app_123"
}

Response

data
object
Traefik configuration in YAML or JSON format, including:
  • HTTP routers and services
  • Middleware chains (CORS, auth, rate limiting, etc.)
  • TLS configuration
  • Load balancing settings
applicationId
string
required
The ID of the application to update Traefik configuration for.
traefikConfig
string
required
The new Traefik configuration in YAML format.
Annotations: Destructive, Non-idempotentUpdates the Traefik configuration for advanced routing, middleware, and load balancing customization.

Example: Add CORS Middleware

{
  "applicationId": "app_123",
  "traefikConfig": "http:\n  middlewares:\n    cors:\n      headers:\n        accessControlAllowMethods:\n          - GET\n          - POST\n        accessControlAllowOriginList:\n          - https://example.com\n  routers:\n    app-router:\n      middlewares:\n        - cors"
}

Example: Rate Limiting

{
  "applicationId": "app_123",
  "traefikConfig": "http:\n  middlewares:\n    rate-limit:\n      rateLimit:\n        average: 100\n        burst: 50\n  routers:\n    app-router:\n      middlewares:\n        - rate-limit"
}
Invalid Traefik configuration can break application routing. Always validate YAML syntax and test in a non-production environment first.

Response

data
object
Confirmation of Traefik configuration update.
applicationId
string
required
The ID of the application to refresh token for.
Annotations: Non-destructive, Non-idempotentGenerates a new authentication token for the application. Useful for API access or webhook configurations.

Example

{
  "applicationId": "app_123"
}

Response

data
object
Object containing the new refreshToken.
applicationId
string
required
The ID of the application to clean deployment queues for.
Annotations: Destructive, Non-idempotentClears pending deployment jobs from the queue. Useful when deployments are stuck or you need to cancel multiple queued deployments.

Example

{
  "applicationId": "app_123"
}
This only clears queued deployments, not currently running deployments. Use application-cancelDeployment for active deployments.

Response

data
object
Confirmation of queue cleanup operation.

Configuration Workflows

Complete Build Configuration

// Step 1: Set build type
{"tool": "application-saveBuildType", "input": {
  "applicationId": "app_123",
  "buildType": "dockerfile",
  "dockerContextPath": null,
  "dockerBuildStage": "production"
}}

// Step 2: Configure environment
{"tool": "application-saveEnvironment", "input": {
  "applicationId": "app_123",
  "env": "NODE_ENV=production\nPORT=3000",
  "buildArgs": "NODE_VERSION=18"
}}

// Step 3: Deploy with new configuration
{"tool": "application-deploy", "input": {"applicationId": "app_123"}}

Switch from Git to Docker Image

// Step 1: Disconnect Git provider
{"tool": "application-disconnectGitProvider", "input": {"applicationId": "app_123"}}

// Step 2: Configure Docker image
{"tool": "application-saveDockerProvider", "input": {
  "applicationId": "app_123",
  "dockerImage": "myregistry.com/app:v2.0"
}}

// Step 3: Redeploy
{"tool": "application-redeploy", "input": {"applicationId": "app_123"}}

Monitor and Troubleshoot

// Check monitoring metrics
{"tool": "application-readAppMonitoring", "input": {"appName": "my-api-prod"}}

// Review Traefik routing
{"tool": "application-readTraefikConfig", "input": {"applicationId": "app_123"}}

// Clear stuck deployments
{"tool": "application-cleanQueues", "input": {"applicationId": "app_123"}}

Build docs developers (and LLMs) love