README

npm install
npm run dev
open http://localhost:3000

Environment Variables

The API server requires the following environment variables for configuration:

Inngest Configuration

Required for the GET /jobs endpoint to list deployment jobs:

Optional configuration for filtering and pagination:

Lemon Squeezy Integration

Docker Configuration

Optional configuration for customizing Docker daemon connections:

These variables allow advanced users to customize how the Dokploy API server connects to Docker, which can be useful for connecting to remote Docker daemons or using specific API versions.

API Endpoints

GET /jobs

Lists deployment jobs (Inngest runs) for a specified server.

Query Parameters:

Response:
Returns an array of deployment job objects with the same shape as BullMQ queue jobs:

[
  {
    "id": "string",
    "name": "string",
    "data": {},
    "timestamp": 0,
    "processedOn": 0,
    "finishedOn": 0,
    "failedReason": "string",
    "state": "string"
  }
]

Error Responses:

This endpoint is used by the UI to display deployment queue information in the dashboard.

Search Endpoints

The following search endpoints provide flexible querying capabilities with pagination support. All search endpoints respect member permissions, returning only resources the user has access to.

application.search

Search applications across name, appName, description, repository, owner, and dockerImage fields.

Query Parameters:

Response:

{
  "items": [
    {
      "applicationId": "string",
      "name": "string",
      "appName": "string",
      "description": "string",
      "environmentId": "string",
      "applicationStatus": "string",
      "sourceType": "string",
      "createdAt": "string"
    }
  ],
  "total": 0
}

compose.search

Search compose services with filtering by name, appName, and description.

Query Parameters:

Response:

{
  "items": [
    {
      "composeId": "string",
      "name": "string",
      "appName": "string",
      "description": "string",
      "environmentId": "string",
      "composeStatus": "string",
      "sourceType": "string",
      "createdAt": "string"
    }
  ],
  "total": 0
}

environment.search

Search environments by name and description.

Query Parameters:

Response:

{
  "items": [
    {
      "environmentId": "string",
      "name": "string",
      "description": "string",
      "createdAt": "string",
      "env": "string",
      "projectId": "string",
      "isDefault": true
    }
  ],
  "total": 0
}

project.search

Search projects by name and description.

Query Parameters:

Response:

{
  "items": [
    {
      "projectId": "string",
      "name": "string",
      "description": "string",
      "createdAt": "string",
      "organizationId": "string",
      "env": "string"
    }
  ],
  "total": 0
}

Database Service Search Endpoints

The following database services all share the same search interface:

Query Parameters:

Response:

{
  "items": [
    {
      "postgresId": "string",
      "name": "string",
      "appName": "string",
      "description": "string",
      "environmentId": "string",
      "applicationStatus": "string",
      "createdAt": "string"
    }
  ],
  "total": 0
}

Note: The response shape is similar across all database services, with the ID field varying (e.g., mysqlId, mariadbId, mongoId, redisId).

Search Behavior:

Database Service Update Endpoints

All database services support update operations with flexible configuration options. The following database services share a common update interface:

Common Parameters:

All database update endpoints accept their respective ID field (e.g., postgresId, mysqlId, mariadbId, mongoId, redisId) as a required parameter, along with optional configuration fields.

Optional Configuration:

Additional service-specific parameters are available depending on the database type. The dockerImage field provides enhanced configuration flexibility for advanced use cases such as version pinning or using specialized database distributions.

Whitelabeling Endpoints

The whitelabeling endpoints allow enterprise/self-hosted Dokploy instances to customize branding, logos, colors, and UI appearance. These endpoints are only available in self-hosted mode (not cloud).

whitelabeling.get

Get the current whitelabeling configuration.

Requirements:

Response:
Returns the whitelabeling configuration object or null if not configured.

{
  "appName": "string | null",
  "appDescription": "string | null",
  "logoUrl": "string | null",
  "faviconUrl": "string | null",
  "primaryColor": "string | null",
  "customCss": "string | null",
  "loginLogoUrl": "string | null",
  "supportUrl": "string | null",
  "docsUrl": "string | null",
  "errorPageTitle": "string | null",
  "errorPageDescription": "string | null",
  "metaTitle": "string | null",
  "footerText": "string | null"
}

whitelabeling.update

Update the whitelabeling configuration.

Requirements:

Input:

{
  "whitelabelingConfig": {
    "appName": "string | null",
    "appDescription": "string | null",
    "logoUrl": "string | null",
    "faviconUrl": "string | null",
    "primaryColor": "string | null",
    "customCss": "string | null",
    "loginLogoUrl": "string | null",
    "supportUrl": "string | null",
    "docsUrl": "string | null",
    "errorPageTitle": "string | null",
    "errorPageDescription": "string | null",
    "metaTitle": "string | null",
    "footerText": "string | null"
  }
}

Response:

{
  "success": true
}

whitelabeling.reset

Reset whitelabeling configuration to default values (all fields set to null).

Requirements:

Response:

{
  "success": true
}

whitelabeling.getPublic

Public endpoint to fetch whitelabeling configuration. This endpoint can be accessed without authentication, allowing the whitelabeling settings to be applied globally (including on the login page before auth).

Requirements:

Response:
Returns the whitelabeling configuration object or null if not configured. Response shape is identical to whitelabeling.get.