Skip to main content
Dokploy supports integration with multiple Git providers, enabling you to deploy applications directly from your repositories with automated webhooks and continuous deployment.

Supported Providers

Dokploy integrates with the following Git providers:

GitHub

Connect via GitHub App for enterprise-grade security and webhook automation

GitLab

OAuth integration with support for self-hosted GitLab instances

Gitea

Lightweight self-hosted Git service with OAuth support

Bitbucket

Connect using App Passwords or API tokens

Key Features

Automatic Deployments

All Git providers support automatic deployments triggered by:
  • Push Events: Deploy when code is pushed to a specific branch
  • Tag Events: Deploy when new tags are created (GitHub)
  • Pull Request Events: Create preview deployments for pull requests (GitHub)

Repository Access

Once connected, you can:
  • Browse all accessible repositories
  • Select specific branches for deployment
  • Clone private repositories securely
  • Enable submodule support

Webhook Configuration

Webhooks enable real-time deployment triggers:
  • Automatic webhook registration (GitHub)
  • Secure payload verification
  • Selective deployment based on watch paths
  • Skip deployment keywords support

Authentication Methods

OAuth 2.0 authentication flow with:
  • Access and refresh tokens
  • Automatic token refresh
  • Scoped repository access
  • Support for self-hosted instances
Direct authentication using:
  • App Passwords
  • Repository Access Tokens (API tokens)
  • Workspace-level access

Common Configuration

All Git provider integrations share these common settings:

Provider Name

A friendly name to identify your Git provider connection in the Dokploy dashboard.

Repository Selection

When deploying an application, you can:
  1. Select a connected Git provider
  2. Choose from available repositories
  3. Select a branch to deploy
  4. Configure deployment triggers

Deployment Triggers

triggerType: push
autoDeploy: true
branch: main
watchPaths:
  - "src/**"
  - "package.json"

Security Features

Token Storage

All credentials are stored securely:
  • Encrypted in the database
  • Never exposed in logs
  • Used only for Git operations
  • Automatically refreshed when needed

Webhook Verification

Incoming webhooks are verified using:
  • GitHub: SHA-256 HMAC signature verification
  • GitLab: Secret token validation (when configured)
  • Gitea: Secret token validation (when configured)
  • Bitbucket: IP allowlisting or secret tokens

Permission Validation

For GitHub preview deployments:
  • Validates PR author has write access
  • Blocks unauthorized deployment attempts
  • Posts security notifications on blocked PRs
  • Configurable per application

Self-Hosted Support

GitLab and Gitea support self-hosted instances with custom URLs.
When configuring self-hosted providers:
  1. External URL: The publicly accessible URL for OAuth redirects
  2. Internal URL (optional): URL for server-to-server communication when on the same network

Example Configuration

gitlabUrl: https://gitlab.example.com
gitlabInternalUrl: http://gitlab.internal:8080
The internal URL is used for:
  • Token exchange during OAuth
  • Token refresh operations
  • Reduces latency on same-network deployments

Watch Paths

Configure selective deployments based on changed files:
{
  "watchPaths": ["api/**", "config/**", "package.json"]
}
Deployments only trigger when commits modify files matching these patterns.

Skip Keywords

Prevent deployments using commit message keywords:
  • [skip ci]
  • [ci skip]
  • [no ci]
  • [skip actions]
  • [actions skip]
These keywords only work with GitHub webhook deployments.

Next Steps

Choose your Git provider to get started:

Setup GitHub

Create and install a GitHub App

Setup GitLab

Configure OAuth application

Setup Gitea

Configure OAuth application

Setup Bitbucket

Create App Password or API token