Repository navigation
[Feature]: Pull-based auto deploy (poll the Git branch) for servers that can't receive webhooks #12250
Khalid1G
started this conversation in
Feature Requests
Replies: 1 comment
|
Some users created a small app that catches the webhook requests on a public server and forwards the requests on a internal connection back to Coolify. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
Automatic deployments in Coolify are push-based: the Git provider (GitHub/GitLab/Gitea/Bitbucket App or a manual webhook) has to send a webhook to the Coolify instance. That only works when the instance is reachable from the provider over the internet.
Many self-hosted instances are not reachable, by design or by circumstance:
These servers can still reach the Git provider (cloning works), but they never receive push events. Today the options are to deploy by hand, run an external CI job that calls the Deploy API (which also needs to reach the instance), or add a tunnel (Cloudflare Tunnel, Tailscale Funnel, ngrok…) whose only purpose is to let webhooks in. A tunnel adds a public endpoint and another service to operate, which is often exactly what these setups are trying to avoid.
Proposal: pull-based auto deploy (branch polling)
An optional, per-application setting next to Auto Deploy:
On each interval Coolify checks the latest commit of the application's branch and, if it differs from the last deployed commit, queues a deployment, exactly as if the push webhook had arrived.
Suggested behaviour:
git ls-remote <repo> refs/heads/<branch>works for every provider, including deploy-key and generic Git sources, and transfers almost nothing.If-None-Match) return304and don't count against the rate limit; withls-remotea check is a few hundred bytes.Why it fits Coolify
Alternatives considered
I'm happy to test a build of this, and to help with the implementation if the maintainers agree on the approach.
All reactions