Skip to main content
These tools configure source code providers for applications, enabling automatic deployments from Git repositories.

Overview

Dokploy supports multiple Git providers:
  • GitHub - Popular cloud Git hosting
  • GitLab - Cloud and self-hosted Git platform
  • Bitbucket - Atlassian’s Git solution
  • Gitea - Lightweight self-hosted Git service
  • Custom Git - Any Git server accessible via URL
Each provider tool configures the repository connection, branch tracking, build paths, and deployment triggers.
applicationId
string
required
The ID of the application to configure GitHub for.
owner
string | null
required
The GitHub repository owner (username or organization).
githubId
string | null
required
The GitHub integration ID from Dokploy settings.
enableSubmodules
boolean
required
Whether to clone and update Git submodules during build.
repository
string | null
The GitHub repository name or full path (e.g., “owner/repo”).
branch
string | null
The branch to track for deployments. Defaults to repository’s default branch.
buildPath
string | null
Path within the repository to build from (for monorepos). Defaults to root.
watchPaths
string[] | null
Array of paths to monitor for changes. Only changes in these paths trigger deployments.
triggerType
'push' | 'tag'
default:"push"
Trigger deployments on push events or tag creation.
Annotations: Destructive, Non-idempotent

Example: Basic Configuration

{
  "applicationId": "app_123",
  "owner": "myorg",
  "repository": "myorg/web-app",
  "branch": "main",
  "githubId": "gh_integration_456",
  "enableSubmodules": false,
  "triggerType": "push"
}

Example: Monorepo with Watch Paths

{
  "applicationId": "app_123",
  "owner": "myorg",
  "repository": "myorg/monorepo",
  "branch": "develop",
  "buildPath": "apps/api",
  "watchPaths": ["apps/api/**", "packages/shared/**"],
  "githubId": "gh_integration_456",
  "enableSubmodules": true,
  "triggerType": "push"
}

Response

data
object
Updated application with GitHub provider configuration.
applicationId
string
required
The ID of the application to configure GitLab for.
gitlabBranch
string | null
required
The GitLab branch to track.
gitlabBuildPath
string | null
required
Build path within the repository.
gitlabOwner
string | null
required
The GitLab repository owner or group.
gitlabRepository
string | null
required
The GitLab repository name.
gitlabId
string | null
required
The GitLab integration ID from Dokploy.
gitlabProjectId
number | null
required
The GitLab project ID (numeric ID from GitLab).
gitlabPathNamespace
string | null
required
The GitLab path namespace (e.g., “group/subgroup”).
enableSubmodules
boolean
required
Whether to enable Git submodules.
watchPaths
string[] | null
Paths to watch for triggering deployments.
Annotations: Destructive, Non-idempotent

Example

{
  "applicationId": "app_123",
  "gitlabOwner": "myteam",
  "gitlabRepository": "backend-api",
  "gitlabBranch": "production",
  "gitlabBuildPath": "/",
  "gitlabId": "gitlab_integration_789",
  "gitlabProjectId": 42,
  "gitlabPathNamespace": "myteam/infrastructure",
  "enableSubmodules": false,
  "watchPaths": null
}

Response

data
object
Updated application with GitLab provider configuration.
applicationId
string
required
The ID of the application to configure Bitbucket for.
bitbucketBranch
string | null
required
The Bitbucket branch to track.
bitbucketBuildPath
string | null
required
Build path within the repository.
bitbucketOwner
string | null
required
The Bitbucket workspace or user.
bitbucketRepository
string | null
required
The Bitbucket repository slug.
bitbucketId
string | null
required
The Bitbucket integration ID from Dokploy.
enableSubmodules
boolean
required
Whether to enable Git submodules.
watchPaths
string[] | null
Paths to watch for triggering deployments.
Annotations: Destructive, Non-idempotent

Example

{
  "applicationId": "app_123",
  "bitbucketOwner": "myworkspace",
  "bitbucketRepository": "frontend-app",
  "bitbucketBranch": "master",
  "bitbucketBuildPath": "/",
  "bitbucketId": "bb_integration_101",
  "enableSubmodules": false
}

Response

data
object
Updated application with Bitbucket provider configuration.
applicationId
string
required
The ID of the application to configure Gitea for.
giteaBranch
string | null
required
The Gitea branch to track.
giteaBuildPath
string | null
required
Build path within the repository.
giteaOwner
string | null
required
The Gitea repository owner.
giteaRepository
string | null
required
The Gitea repository name.
giteaId
string | null
required
The Gitea integration ID from Dokploy.
enableSubmodules
boolean
required
Whether to enable Git submodules.
watchPaths
string[] | null
Paths to watch for triggering deployments.
Annotations: Destructive, Non-idempotent

Example

{
  "applicationId": "app_123",
  "giteaOwner": "engineering",
  "giteaRepository": "microservice",
  "giteaBranch": "stable",
  "giteaBuildPath": "/",
  "giteaId": "gitea_integration_202",
  "enableSubmodules": true
}

Response

data
object
Updated application with Gitea provider configuration.
applicationId
string
required
The ID of the application to configure custom Git for.
enableSubmodules
boolean
required
Whether to enable Git submodules.
customGitUrl
string | null
The Git repository URL (HTTPS or SSH).
customGitBranch
string | null
The branch to track.
customGitBuildPath
string | null
Build path within the repository.
customGitSSHKeyId
string | null
SSH key ID for authentication (if using SSH URL).
watchPaths
string[] | null
Paths to watch for triggering deployments.
Annotations: Destructive, Non-idempotentUse this tool for self-hosted Git servers or any Git-compatible repository not covered by the specific provider tools.

Example: SSH Authentication

{
  "applicationId": "app_123",
  "customGitUrl": "[email protected]:team/project.git",
  "customGitBranch": "production",
  "customGitBuildPath": "/",
  "customGitSSHKeyId": "ssh_key_303",
  "enableSubmodules": false
}

Example: HTTPS Authentication

{
  "applicationId": "app_123",
  "customGitUrl": "https://git.internal.com/repos/service.git",
  "customGitBranch": "main",
  "customGitBuildPath": "/",
  "enableSubmodules": true
}
For HTTPS URLs with authentication, credentials should be configured in the Git provider integration settings, not in the URL.

Response

data
object
Updated application with custom Git provider configuration.
applicationId
string
required
The ID of the application to disconnect Git provider from.
Annotations: Destructive, Non-idempotentRemoves all Git provider configuration from the application. The application will no longer automatically deploy from source control.
After disconnecting, you must configure either a different Git provider or switch to Docker image deployment.

Example

{
  "applicationId": "app_123"
}

Response

data
object
Updated application with Git provider fields cleared.

Common Patterns

Switch Git Providers

To switch from one provider to another, disconnect then configure the new provider:
// Step 1: Disconnect current provider
{"tool": "application-disconnectGitProvider", "input": {"applicationId": "app_123"}}

// Step 2: Configure new provider
{"tool": "application-saveGitlabProvider", "input": {...}}

Monorepo Deployment

For monorepo applications, use buildPath and watchPaths:
{
  "applicationId": "app_123",
  "owner": "myorg",
  "repository": "monorepo",
  "branch": "main",
  "buildPath": "services/auth-api",
  "watchPaths": ["services/auth-api/**", "shared/**"],
  "githubId": "gh_integration_456",
  "enableSubmodules": false
}

Tag-based Releases

Deploy only when tags are created:
{
  "applicationId": "app_123",
  "owner": "myorg",
  "repository": "production-app",
  "branch": "main",
  "githubId": "gh_integration_456",
  "enableSubmodules": false,
  "triggerType": "tag"
}

Build docs developers (and LLMs) love