Manual Git webhooks

A manual Git webhook lets GitHub, GitLab, Bitbucket, or Gitea notify Coolify when a repository changes. Use one for an application created from a public repository URL or Private Repository (with deploy key).

Applications connected through an official Git App receive provider events through that integration and do not need a manual Git webhook.

The deploy webhook is different

Deploy webhook URL starts a deployment when an external workflow calls Coolify with an API token. It is not a repository webhook. Follow Automatic deployments and choose External workflow when CI should call Coolify directly.

Choose the repository provider

Each provider uses its own URL and secret from Webhooks > Manual Git Webhooks. Configure only the provider that hosts the repository. New or changed secrets must contain at least 16 characters. Use the generator beside the secret field to create a random value, then save the same value at the Git provider.

For production deployments, select the provider's push event and choose Deploy on push (webhooks) under Advanced > Deployment > Auto deploy. For preview deployments, also select the pull-request or merge-request events shown below.

Enable automatic branch deployments

Open the application, select Advanced > Deployment, then choose Deploy on push (webhooks) in Auto deploy if pushes to the configured branch should deploy automatically.

Auto Deploy enabled in the application advanced settings

Copy the GitHub webhook details

Open Webhooks. Enter a long random value in Webhook secret in the GitHub section, select Save changes, then copy the GitHub URL under Manual Git webhooks.

GitHub manual webhook URL and secret in Coolify

Keep the secret private. GitHub must use the same value when it signs webhook deliveries.

Add the webhook on GitHub

Open the GitHub repository, select Settings > Webhooks > Add webhook, then enter:

  • Payload URL: the GitHub URL copied from Coolify
  • Content type: application/json or application/x-www-form-urlencoded
  • Secret: the value saved in Coolify

Keep Enable SSL verification selected.

Add webhook button in GitHub repository settings

Select the events

Choose Just the push event for automatic deployments from the configured branch.

If the application also uses previews, choose Let me select individual events, then select Pushes and Pull requests. Keep Active selected and select Add webhook.

GitHub webhook event and secret settings

Verify the webhook

Push a commit to the application's configured branch. Open Deployment Logs in Coolify and confirm a webhook deployment appears.

GitHub also shows the webhook and its recent deliveries under Settings > Webhooks.

Configured webhook in GitHub repository settings

Troubleshoot a missing deployment

Open the webhook's recent deliveries in the repository provider, then check:

  1. the provider sent an event supported by Coolify
  2. the delivery received a successful HTTP response
  3. the provider secret exactly matches the saved Coolify secret
  4. the Coolify webhook URL is reachable from the internet
  5. Auto deploy under Advanced > Deployment is set to Deploy on push (webhooks) for a push event
  6. the pushed branch matches the branch configured for the application

A pull-request or merge-request event creates a preview only when Preview Deployments is enabled.

Repeated distinct signature failures are throttled per client address, repository, and branch. Correctly signed deliveries remain accepted. Webhook responses do not reveal matching applications; verify deployment history instead.

On this page