Dokploy can already point an application at a build server and a registry. Dokploy Community Edition adds an organization-wide build policy on top: one setting that makes Dokploy the only builder for your applications sourced from github.com. The build runs on your build server, the image is pushed to your registry, and the swarm service is updated by digest, so CI can wait for that exact image instead of building a second copy. Upstream Dokploy v0.30.8 has no build policy. The fork adds it, and it is off by default.
See also the home page, the FAQ and the related deploy queue controls.
With enforcement on:
<repository>:<sha>.The other parts of the policy are separate, opt-in controls:
You need a server of type build, a registry, and an admin account.
Read the next section before step 5.
[skip deploy], [deploy skip] or [no deploy] marker in a commit message is honored on push-triggered deploys (not on tag pushes or previews).The push gate (watch paths, skip markers and coalescing) covers every unit in an organization that enforces, whatever its source and including Compose. Moving the build to the build server and deploying by digest apply only to units sourced from github.com.
With enforcement off, none of this applies and deploys behave as in upstream Dokploy.
An admin can exclude an application from enforcement under Settings, Server (Build Policy Exclusions), with an optional reason. Compose builds are never moved to the build server by this policy, so exclusions apply to applications only.
For a one-off local build, the admin-only buildPolicy-allowLocalBuildOnce API and MCP tool records a grant with a required reason. The next deploy of that application consumes the grant, and both events are written to the audit trail.
Required checks need Enforce Remote Builds on, and a unit sourced from github.com that is connected through a GitHub App provider (a plain git remote has no App installation to read checks with). On an application, the Required Checks card on the Advanced tab takes the names of checks that must pass on the commit before the build starts. A Compose service takes the same list through the requiredChecks field of the Compose update API. Names are matched against both GitHub check runs and legacy commit statuses. If a check fails or the timeout passes, the deploy fails and says which.
Limit: the wait occupies a deployment slot. A self-hosted instance has the builds concurrency setting of them (default 1), so one unit waiting on a check that never arrives queues every other deploy behind it. Raise the build concurrency before raising the timeout.
The admin-only buildPolicy-rollbackToDigest takes the id of a past application deployment and redeploys the image that deployment stored, with a pull and a service update and no build. Compose deployments are not covered. It does not re-run required checks. A deployment from before enforcement has no stored digest and is refused.
Admins can read the policy audit trail, which records settings changes, exclusions, break-glass grants and use, enforced builds, skipped and coalesced deploys, failed or timed-out checks, and deploys by digest.
dokploy:admin scope, so a default OAuth grant cannot call them.