Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nettalco/dokploy/llms.txt

Use this file to discover all available pages before exploring further.

The Settings API is the control plane for your entire Dokploy instance. It covers system health checks, version management, Traefik configuration, Docker maintenance (prune images, volumes, containers), user and permission management, API key lifecycle, cron schedules, container registry integrations, AI provider setup, and backup destinations. Most administrative tasks your team would perform through the dashboard are available here programmatically.

Endpoints

System & Health

MethodEndpointDescription
GET/settings.healthHealth check — returns OK if the API is reachable
GET/settings.getDokployVersionGet the running Dokploy version
GET/settings.getReleaseTagGet the latest available release tag
GET/settings.getIpGet the server’s public IP address
POST/settings.updateServerIpUpdate the stored server IP
GET/settings.getWebServerSettingsGet web server (Traefik) settings
POST/settings.reloadServerReload the Dokploy server process
POST/settings.reloadTraefikReload the Traefik reverse proxy
POST/settings.toggleDashboardEnable or disable the Dokploy dashboard
POST/settings.getUpdateDataCheck for available updates
POST/settings.updateServerTrigger a Dokploy self-update
GET/settings.getOpenApiDocumentDownload the OpenAPI specification
POST/settings.setupGPUConfigure GPU support for containers
GET/settings.checkGPUStatusCheck GPU availability
GET/settings.isCloudWhether this instance is cloud-hosted
GET/settings.isUserSubscribedCheck subscription status

Docker Maintenance

MethodEndpointDescription
POST/settings.cleanUnusedImagesRemove unused Docker images
POST/settings.cleanUnusedVolumesRemove unused Docker volumes
POST/settings.cleanStoppedContainersRemove stopped containers
POST/settings.cleanDockerBuilderClean Docker build cache
POST/settings.cleanDockerPruneRun a full Docker system prune
POST/settings.cleanAllRun all cleanup operations
POST/settings.cleanMonitoringClear monitoring data
POST/settings.updateDockerCleanupConfigure automatic Docker cleanup schedule

Traefik Configuration

MethodEndpointDescription
GET/settings.readTraefikConfigRead the main Traefik configuration
POST/settings.updateTraefikConfigUpdate the main Traefik configuration
GET/settings.readWebServerTraefikConfigRead the web-server Traefik config
POST/settings.updateWebServerTraefikConfigUpdate the web-server Traefik config

Users & Permissions

MethodEndpointDescription
GET/user.allList all users
GET/user.oneFetch a user by ID
GET/user.getGet the current authenticated user
POST/user.updateUpdate a user’s profile
POST/user.removeRemove a user
POST/user.assignPermissionsAssign project permissions to a user
POST/user.sendInvitationSend an email invitation
GET/user.getInvitationsList pending invitations
POST/user.createApiKeyCreate an API key for the authenticated user
POST/user.deleteApiKeyDelete an API key
POST/user.generateTokenGenerate a temporary session token

Schedules

MethodEndpointDescription
POST/schedule.createCreate a cron schedule
POST/schedule.updateUpdate a schedule
POST/schedule.deleteDelete a schedule
GET/schedule.listList all schedules
GET/schedule.oneFetch a schedule by ID
POST/schedule.runManuallyRun a schedule immediately

Registries & AI

MethodEndpointDescription
POST/registry.createRegister a container registry
GET/registry.allList all registries
GET/registry.oneFetch a registry by ID
POST/registry.updateUpdate a registry
POST/registry.removeRemove a registry
POST/registry.testRegistryTest registry connectivity
POST/ai.createCreate an AI provider config
POST/ai.updateUpdate an AI provider
GET/ai.getAllList all AI providers
GET/ai.oneFetch an AI provider by ID
POST/ai.deleteDelete an AI provider
POST/ai.suggestGet an AI-generated Compose suggestion
POST/ai.deployDeploy from an AI suggestion
GET/ai.getModelsList available AI models

Destinations

MethodEndpointDescription
POST/destination.createCreate a backup destination
GET/destination.allList all backup destinations
GET/destination.oneFetch a destination by ID
POST/destination.updateUpdate a destination
POST/destination.removeRemove a destination
POST/destination.testConnectionTest connection to a destination

Key Endpoints

GET /settings.health

Simple health check to verify the API is reachable and authenticated.
curl 'https://your-instance.com/api/settings.health' \
  -H 'x-api-key: YOUR_API_KEY'

POST /settings.cleanAll

Run all Docker cleanup operations in a single call — removes unused images, volumes, stopped containers, and clears the build cache.
This operation removes all unused Docker resources. Ensure no stopped containers hold data you intend to restart before calling this endpoint.
curl -X POST 'https://your-instance.com/api/settings.cleanAll' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'

POST /user.createApiKey

Generate a new API key for the currently authenticated user. The key is returned only once — store it securely.
name
string
required
Descriptive label for the API key (e.g., ci-pipeline).
metadata.organizationId
string
required
The organization the key is scoped to. The authenticated user must be a member.
prefix
string
Optional short string prepended to the key value (e.g., ci_).
expiresIn
number
Time-to-live in seconds. Omit for a non-expiring key.
rateLimitEnabled
boolean
Enable per-key rate limiting.
rateLimitTimeWindow
number
Rate limit window duration in milliseconds.
rateLimitMax
number
Maximum requests allowed within the time window.
remaining
number
Total number of requests allowed before the key is exhausted. Omit for unlimited.
key
string
The generated API key value. Only returned at creation time — store it immediately.
id
string
Unique ID of the API key record. Use this when deleting the key.
name
string
The label assigned to the key.
curl -X POST 'https://your-instance.com/api/user.createApiKey' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "ci-pipeline",
    "metadata": {
      "organizationId": "org_abc123"
    }
  }'

POST /destination.create

Register a new S3-compatible backup destination.
name
string
required
Display name for the destination.
provider
string
required
Storage provider: aws, cloudflare, backblaze, or other.
bucket
string
required
Name of the S3 bucket.
region
string
required
AWS region or provider region (e.g., us-east-1).
accessKeyId
string
required
S3 access key ID.
secretAccessKey
string
required
S3 secret access key.
endpoint
string
Custom endpoint URL for non-AWS providers (e.g., Cloudflare R2, MinIO).
curl -X POST 'https://your-instance.com/api/destination.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Cloudflare R2 Backups",
    "provider": "cloudflare",
    "bucket": "dokploy-backups",
    "region": "auto",
    "accessKeyId": "your-access-key-id",
    "secretAccessKey": "your-secret-access-key",
    "endpoint": "https://ACCOUNT_ID.r2.cloudflarestorage.com"
  }'

POST /schedule.create

Create a cron-based maintenance or task schedule.
name
string
required
Display name for the schedule.
cronExpression
string
required
Standard cron expression (e.g., 0 0 * * * for daily midnight).
type
string
required
Schedule type: docker-cleanup, backup, or command.
command
string
Shell command to run (required when type is command).
curl -X POST 'https://your-instance.com/api/schedule.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "nightly-cleanup",
    "cronExpression": "0 2 * * *",
    "type": "docker-cleanup"
  }'

POST /registry.create

Register a private container registry so Dokploy can pull images during deployment.
name
string
required
Display name for the registry.
registryUrl
string
required
Registry hostname (e.g., registry.example.com or ghcr.io).
username
string
required
Registry username.
password
string
required
Registry password or personal access token.
curl -X POST 'https://your-instance.com/api/registry.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "GHCR",
    "registryUrl": "ghcr.io",
    "username": "myusername",
    "password": "ghp_xxxxxxxxxxxx"
  }'

Notes

Set up a recurring schedule for docker-cleanup to automatically free disk space on your servers. A weekly schedule (e.g., 0 3 * * 0) is a good starting point.
After calling user.createApiKey, copy the returned key value immediately — Dokploy stores only a hashed version and cannot show it again.

Build docs developers (and LLMs) love