Skip to content

v0.29.12-community.2

Choose a tag to compare

@AminDhouib AminDhouib released this 16 Jul 07:41
· 743 commits to canary since this release

Community fork of Dokploy, built on the upstream v0.29.12 base (environment encryption at rest, backup keyring). This release rolls up the full port train that landed since v0.29.12-community.1: 100+ upstream fixes and features ported 1:1, plus fork-side security hardening.

Every ported change credits the original upstream author — their work, ported and re-verified against the fork's divergent networking and branding layer. Thanks to everyone whose PRs and issue reports made this release.


Security hardening

Direct fork commits (this release):

  • Restrict admin invites and validate team ownership in the organization router (1aeafd5aa). moveMemberToTeam is validated member-based — the fork has no team table, so teamId is checked against existing members' teamIds in the caller's organization.
  • Shell-less rclone obscure and validation of SFTP/FTP destination fields (800324fc0).
  • Add a service-permission gate to loadTemplateFromGit in the compose router (7167d3477).
  • Kill the attach PTY on WebSocket disconnect and spawn docker attach without a shell (6cebac837).
  • Validate and escape mount-permission command inputs (7d8d47049).
  • Mock node:fs/promises in the web-server restore test to stabilize the suite (e118489f8).
  • Authorize GitLab MR previews by author, not webhook actor (065233cd4). GitLab merge-request preview deployments now authorize the MR author (object_attributes.author_id) instead of the webhook event actor (body.user), closing a bypass where any Developer+ member labeling or updating an untrusted contributor's MR could trigger a preview deployment of untrusted code.

Ported hardening:

Registries & deployments

Backups & destinations

Domains & networking

Cloudflare integration

  • Native Cloudflare integration — credentials, Tunnel publishing, and Access (zero-trust) — #116 (ports Dokploy#4528, @maxsam4)

Preview deployments

Notifications

Git providers & auth

Database, schedules & mounts

Monitoring

Organizations & teams

Reliability & server ops

UI/UX fixes

Fork infrastructure

  • Sync upstream v0.29.11 into canary + community release rename — #14 (@AminDhouib)
  • Sync upstream v0.29.12 (env encryption at rest, backup keyring) — #133 (@AminDhouib)
  • Fork release links + combined release notes in the update dialog — #134 (@AminDhouib)

Migrations

Schema migrations 0176 → 0188 land in this release:

Slot Tag Notes
0176 smiling_harry_osborn
0177 hot_supreme_intelligence
0178 overjoyed_korvac
0179 overrated_bug
0180 greedy_veda
0181 closed_the_initiative
0182 round_landau
0183 sloppy_franklin_storm
0184 fresh_oracle Cloudflare integration (#116)
0185 minor_harrier Duplicate preview-deployment prevention + existing-row dedupe (#118)
0186 giant_thanos Scheduled-job failure notifications (#117)
0187 amusing_molten_man GitLab MR preview deployments (#121); webhook_secret backfill uses core gen_random_uuid (no pgcrypto required)
0188 steady_scrambler Per-server defaultDomain (#110)

Migrations apply automatically on startup in when-timestamp order.


Install / upgrade

docker service update \
  --image ghcr.io/devinosolutions/dokploy-community:v0.29.12-community.2 \
  --with-registry-auth \
  dokploy

The image is public — no registry login required. See the README for fresh-install and rollback instructions.


Known caveats

  • S3 backup encryption (#109) is unit-tested only. A live rclone + S3 smoke test is still recommended before relying on it. Upstream's crypt connection-string approach had a shell-quoting bug; the fork configures crypt via RCLONE_CRYPT_* environment variables instead (encrypt with obscured passwords; supported on S3 and generic destinations).
  • moveMemberToTeam validation is member-based. The fork has no team table, so teamId is validated against the teamIds of existing members in the caller's organization rather than against a dedicated teams table.