Coolify Auto-Deploy Setup
How to configure Coolify webhook auto-deploy so new Docker images trigger automatic redeployment.Prerequisites
- Coolify instance with crocbot application configured
- GitHub repository with
docker-release.ymlworkflow - Repository admin access (for adding variables)
Step 1: Get Webhook URL from Coolify
- Open your Coolify dashboard
- Navigate to your crocbot application
- Go to Settings > Webhooks
- Copy the Deploy Webhook URL
- Format:
https://your-coolify-instance.com/api/v1/deploy?uuid=APP_UUID&force=false
- Format:
Step 2: Add Webhook URL to GitHub
- Go to your GitHub repository Settings
- Navigate to Secrets and variables > Actions > Variables tab
- Click New repository variable
- Set:
- Name:
COOLIFY_WEBHOOK_URL - Value: The webhook URL from Step 1
- Name:
Using a repository variable (not secret) because the Coolify deploy webhook URL contains a UUID that acts as the authentication token. The URL itself is the credential. If your Coolify instance requires a separate Bearer token, store that as a secret named COOLIFY_WEBHOOK_TOKEN and update the workflow accordingly.
Step 3: Verify
After the next push tomain:
- Check the Docker Release workflow in GitHub Actions
- The
deployjob should appear aftercreate-manifest - Verify it reports:
Coolify deploy triggered successfully (HTTP 2xx) - Confirm in Coolify dashboard that a new deployment was triggered
How It Works
Thedeploy job in .github/workflows/docker-release.yml:
- Runs only on pushes to
main(not tags) - Runs only if
COOLIFY_WEBHOOK_URLvariable is set - Sends a GET request to the Coolify webhook
- Reports success (2xx) or warns on failure (non-2xx)
- Does not block the workflow on webhook failure (warning only)
Skipping Auto-Deploy
To temporarily disable auto-deploy without removing the webhook:- Delete or empty the
COOLIFY_WEBHOOK_URLrepository variable - The
deployjob will be skipped (theifcondition checks for non-empty value)
Troubleshooting
Deploy job skipped
- Verify
COOLIFY_WEBHOOK_URLis set as a repository variable (not secret) - Verify the push was to
mainbranch (tags skip the deploy job)
Webhook returns non-2xx
- Verify the Coolify instance is reachable from GitHub Actions runners
- Check that the UUID in the webhook URL is still valid
- Review Coolify application logs for errors
Coolify deploys but container unhealthy
- Check the
/healthendpoint:curl -f https://your-domain.com/health - Review container logs in Coolify dashboard
- See Health Checks runbook
Related Documentation
- Docker Operations - Container management
- Health Checks - Health monitoring
- Backup and Restore - Data protection
