Last updated on 27th April 2026

How to set up automatic deployments

DeployHQ supports automatic deployments from a number of repository hosting services, meaning you can run a deployment when code is pushed to your repository without logging into DeployHQ to start it. The currently supported repository hosts are:

You can even start an automatic deployment from your own custom service, by sending a simple JSON payload to your server's webhook endpoint.

Each project has a unique automatic deployment URL, this is a URL that you can add to your repository as a webhook, so DeployHQ is notified when new commits are pushed to your repository. Once you've added the webhook, you can configure individual servers for automatic deployment as required.

Getting the webhook URL for a project

Firstly navigate to the Automatic Deployments page on the left hand side in your project, then copy the URL in the middle of the page.

Enable auto deployments

Just below, you'll see a list of servers and groups in the project, with a toggle on the right hand side to enable automatic deployments on an individual basis.

Specifying a branch to deploy from

The automatic deployment process will check the branch configured for your server (the Branch to deploy from) each time a request is posted to the webhook URL. If the branch is found to match, the deployment will be queued, otherwise it will be ignored. If you wish to change the branch, just navigate to your server settings in DeployHQ, then update the Branch to Deploy from found under Deployment Options.

Advanced server configuration

How automatic deployments are processed

When your repository host sends a webhook to DeployHQ, the following happens:

  1. DeployHQ receives the webhook and responds immediately with a 200 status
  2. The payload is then processed asynchronously -- we check each server's auto-deploy settings
  3. If a server has auto-deploy enabled and the branch matches, a deployment is queued
  4. If no servers match the conditions, the webhook is recorded but no deployment is triggered

You can see the result of each received webhook under Automatic Deployments in your project. Click on any entry in the Received Hooks section to see the processing details, including which servers were checked and why a deployment was or wasn't queued.

Troubleshooting missed automatic deployments

If a push to your repository didn't trigger an automatic deployment, work through these steps:

1. Check the Received Hooks in DeployHQ

Navigate to Automatic Deployments in your project and look at the Received Hooks section. If the webhook is listed there, click on it to see the processing result -- it will tell you exactly why each server was skipped (e.g. auto-deploy disabled, branch not tracked).

If the webhook is not listed, it means DeployHQ never received it, and the issue is on your repository host's side.

2. Check your repository host's delivery log

Most repository hosts provide a webhook delivery log:

  • GitHub: Go to your repository Settings > Webhooks, click the webhook, and check Recent Deliveries
  • GitLab: Go to Settings > Webhooks and click Edit to see recent events
  • Bitbucket: Go to Repository settings > Webhooks and click View requests

If the delivery shows a failure, you can use the Redeliver button to resend the webhook manually.

3. Verify your auto-deploy configuration

If the webhook was received but no deployment was triggered, check:

  • Auto-deploy is enabled for the server(s) you expect to deploy (toggle on the Automatic Deployments page)
  • Branch matches -- the branch pushed must match the server's "Branch to deploy from" setting
  • Deployment restrictions -- if your account has deployment availability restrictions configured, automatic deployments will be blocked during restricted times