Skip to content

Feat/concurrent deployments in memory queue - #4645

Merged
Siumauricio merged 5 commits into
canaryfrom
feat/concurrent-deployments-in-memory-queue
Jun 17, 2026
Merged

Siumauricio merged 5 commits into
canaryfrom
feat/concurrent-deployments-in-memory-queue

Conversation

@Siumauricio

@Siumauricio Siumauricio commented Jun 16, 2026 •

Copy link
Copy Markdown
Contributor

What is this PR about?

Please describe in a short paragraph what this PR is about.

Checklist

Before submitting this PR, please make sure that:

Issues related (if applicable)

closes

Screenshots (if applicable)

- Introduced a new `BuildsConcurrency` component to manage the number of concurrent builds for both local and remote servers, gated by license validity.
- Implemented backend logic to resolve effective builds concurrency based on server settings and organization licenses.
- Added unit tests for concurrency resolution logic to ensure correct behavior under various licensing scenarios.
- Updated database schema to include `buildsConcurrency` field for servers and web server settings.
- Refactored deployment queue to support in-memory job processing with configurable concurrency limits.

This feature enhances deployment flexibility and control for enterprise users.
…build isolation

- Reintroduced the `initCancelDeployments` function in the server initialization sequence to ensure deployments can be canceled effectively.
- Updated the Railpack build command to use a unique builder name for each build, preventing conflicts during concurrent deployments.
- Enhanced the cancellation logic to reset application and compose statuses to "idle" after canceling running deployments, improving system reliability.
@dosubot dosubot Bot added size:XL This PR changes 500-999 lines, ignoring generated files. enhancement New feature or request labels Jun 16, 2026
- Introduced a new `buildsConcurrency` property in the server configuration tests to ensure proper handling of concurrent builds in deployment scenarios.
- Added `assertBuildsConcurrencyAllowed` function to validate concurrency settings based on license status.
- Updated `resolveBuildsConcurrency` to reflect new concurrency limits for free and enterprise tiers.
- Enhanced `BuildsConcurrency` component to manage concurrent builds for servers, with UI adjustments for better user experience.
- Introduced a new settings page for managing concurrent builds across servers, ensuring proper handling of deployments.
- Updated database schema to support increased maximum concurrency values for servers and web server settings.
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:XL This PR changes 500-999 lines, ignoring generated files. labels Jun 17, 2026
@Siumauricio
Siumauricio merged commit 24b02f5 into canary Jun 17, 2026
4 checks passed
@Siumauricio
Siumauricio deleted the feat/concurrent-deployments-in-memory-queue branch June 17, 2026 05:15
masonjames added a commit to masonjames/dokploy that referenced this pull request Jul 3, 2026
Resolves conflicts with 16 upstream commits, notably:
- Renumber caddy migration 0172_parched_ares -> 0173_cool_vargas
  (upstream 0172_quick_the_professor from concurrent deployments Dokploy#4645
  is canonical); regenerated snapshot on top of upstream's, restored
  idempotent DDL so hosts that applied the old identity no-op cleanly
- Adopt dynamic traefik container resolution in access-log cleanup
  (Dokploy#4646) within the provider-aware handler
- Accept admin-tools refactor (Dokploy#4625): traefik file-system modal is
  deleted; /dashboard/traefik page with ServerFilter is now the entry
  point and is cloud-enabled, ShowTraefikSystem stays provider-aware
  with a provider-aware empty state path
- Fold buildsConcurrency (server + webServerSettings) alongside caddy
  provider columns in db schema
- Tailwind v4 class renames (shadow-xs, h-140) applied to our
  provider-aware components, keeping caddy language switch and
  pointer-events-none read-only overlay fix

Co-Authored-By: Claude Fable 5 <[email protected]>
masonjames added a commit to masonjames/dokploy that referenced this pull request Jul 3, 2026
Upstream's concurrent deployments (Dokploy#4645) allow builds to finish
simultaneously. The active caddy.json is compiled from the fragments
directory, so an unsynchronized read-compile-write could publish a
config missing a concurrently written fragment, and the rm-rf-based
restoreCaddyRouteFragments rollback could delete another deployment's
fragment outright. Add a per-server promise-chain lock; the public
compile+reload entry takes it, and the fragment read-modify-write flows
(application domains, compose domains, dashboard route) hold it across
their full capture-mutate-compile-rollback sequences.

Co-Authored-By: Claude Fable 5 <[email protected]>
AminDhouib added a commit to ajnart/dokploy-ce that referenced this pull request Jul 15, 2026
…oncurrency impl, keep network management)

Sync fork to Dokploy v0.29.11 (tag 1c44141). Conflict policy:
- Upstream wins by default on all overlapping code.
- DROP the fork's concurrent-deployments implementation (superseded by
  upstream Dokploy#4645 + v0.29.11 OSS concurrent builds): took upstream's
  deployments-queue.ts, queueSetup.ts, server.ts, routers, schema, and
  UI; deleted queue-routing.ts / job-context.ts / concurrency modals /
  concurrency tests; reverted execAsync.ts and pages/api/deploy/*.ts.
- KEEP the fork's Docker network-management feature (no upstream
  equivalent), re-integrated onto upstream's Tailwind-v4-refactored
  files: network router registration, nav entry, per-service network
  cards, schema relations/exports, and per-resource attach hooks.
- Fork-owned files kept ours: README.md, CNAME, install.sh,
  .github/workflows/dokploy.yml, services/settings.ts fork sources.
- Version set to v0.29.11-devino.1.

Drizzle network migration regeneration + sync playbook + .gitattributes
merge=ours drivers follow in subsequent commits.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013BDnry4m2EoRRM1LdvEmqV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant