What Dokploy/dokploy shipped
Written by FoxPlug from the repository's own releases; not affiliated with Dokploy. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/Dokploy/dokploy; Dokploy did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Authorization and input checks were tightened across routers, websockets, webhooks, the standalone services and the auth layer to enforce org and role boundaries. Pull request #5899
- Remote servers gained a Security dialog that installs and configures Fail2ban over SSH, with temporary or permanent bans and the ability to list them. Pull request #5866
- HTTP security headers were hardened: X-Powered-By is disabled and Permissions-Policy, X-Permitted-Cross-Domain-Policies, Cross-Origin-Opener-Policy and a stricter CSP base-uri were added. Pull request #5857
- Closing, refreshing or reconnecting a remote terminal now closes the matching SSH session instead of leaving the shell running on the target server. Pull request #5874
- A deploy now fails when Swarm cannot schedule the new task, instead of reporting success while the old version keeps running. Pull request #5846
- Cron jobs are no longer lost on cloud when the queue is large, because cleanup and job initialization are awaited before requests are served. Pull request #5542
- 2FA setup now turns on for users with a leftover setup row who previously saw a success message while 2FA stayed off. Pull request #5871
- Access log cleanup now rewrites access.log in place, so containers that bind-mount the file keep receiving logs. Pull request #5885
- A pasted Phase service account token with the ServiceAccount prefix is stripped, so the authorization header is no longer doubled. Pull request #5512
- Swarm image pulls are now waited on before cleanup, avoiding prunes mid-pull and failed commits on the containerd image store. Pull request #5848
Why it matters
This week brings a broad security pass: stricter authorization boundaries, hardened HTTP headers, and a new security section for remote servers. Deploy and schedule reliability also improved, so failed Swarm scheduling is reported and cron jobs are not lost on cloud. The v0.31.0 release collects these changes for users upgrading.
Changelog entry
- Enforce org and role boundaries across routers, websockets, webhooks and auth. Pull request #5899
- Add a server security section for remote servers with Fail2ban setup over SSH. Pull request #5866
- Harden HTTP security headers and hide X-Powered-By. Pull request #5857
- Close SSH sessions when the terminal websocket closes. Pull request #5874
- Fail the deploy when Swarm cannot schedule the new task. Pull request #5846
- Prevent cron jobs from being lost on cloud. Pull request #5542
- Turn on 2FA for users with a leftover setup row. Pull request #5871
- Rewrite access.log in place on cleanup. Pull request #5885
- Wait for Swarm image pulls before cleanup. Pull request #5848
- Strip pasted auth prefix from Phase service account tokens. Pull request #5512
- Bump bcrypt to 6 to drop vulnerable minimatch 3. Pull request #5845
- Bump follow-redirects, glob and minimatch to patched versions. Pull request #5844
V0.31.0 is out. This week: tighter org and role checks across routers, webhooks and auth, hardened HTTP security headers, and a new Security dialog for remote servers with Fail2ban setup. Also: terminal SSH sessions close properly, deploys fail when Swarm can't schedule, and cron
Dokploy v0.31.0 is out. This week's work focused on security and reliability. Authorization and input checks were tightened across routers, websockets, webhooks and the auth layer, HTTP security headers were hardened, and remote servers gained a Security dialog that installs and configures Fail2ban over SSH. On reliability, closing a remote terminal now closes its SSH session, Swarm deployments fail when the new task cannot be scheduled instead of reporting success, cron jobs are no longer lost on cloud with large queues, and access.log is rewritten in place so bind-mounted log readers keep working. A pasted Phase service account token is also cleaned up, and 2FA setup now completes for users with a leftover setup row.
Week of October 26, 2026
What shipped
- Remote deploys now fail instead of hanging forever when the server freezes or loses power mid-deploy, by adding keepalive to the SSH and Docker connections. Pull request #5803
- Env vars stay readable after moving off the legacy auth secret by keeping the old key derived secret as a decrypt-only fallback. Pull request #5779
- Deployment, volume backup, drawer and container log viewers now share one virtualized list, so logs above 40k lines no longer freeze the tab. Pull request #5802
- Audit logs can now be exported as CSV, TSV or JSON, covering every entry matching the current filters rather than just the visible page. Pull request #5797
- Concurrent domain changes on an app are now serialized so the Traefik config file keeps every domain instead of only the last write. Pull request #5790
- Right-click delete on an individual compose service on the project page now offers the same unticked Delete volumes option as the service page and Bulk Actions. Pull request #5774
- The File Mount editor now shows the file on disk instead of only the database copy, so changes an app writes to its own mounted file appear in the editor. Pull request #5782
- Variable substitution now applies to every key of array-form config.env tables, so values like an admin password are no longer passed through as the literal placeholder. Pull request #5583
- Bitbucket watch paths now diff the whole push instead of only the tip commit, so deleted and renamed-out files match and pushes that should deploy are no longer skipped. Pull request #5818
- Docker cleanup no longer prunes a stopped dokploy-traefik container or its image, so Traefik can simply be restarted after a failed boot. Pull request #5821
Why it matters
This week fixed several ways deploys and tooling could leave people stuck: remote deploys that hung when a server died, services that lost network access when a compose domain was disabled, and Traefik being pruned while stopped. The new audit log export and the virtualized log viewer make large amounts of log and audit data usable. PostHog analytics is added for Dokploy Cloud only, gated so self-hosted instances load and send nothing.
Changelog entry
- Remote deploys fail instead of hanging when the server dies mid-deploy. Pull request #5803
- Env vars stay readable after leaving the legacy auth secret. Pull request #5779
- Log viewers for deployments, volume backups, drawers and containers are virtualized. Pull request #5802
- Audit logs can be exported as CSV, TSV or JSON with the current filters applied. Pull request #5797
- Audit log date filter now includes the whole end day. Pull request #5798
- Concurrent writes to an app's Traefik domain config are serialized. Pull request #5790
- Individual compose service delete on the project page offers a Delete volumes option. Pull request #5774
- File Mount editor shows the file on disk rather than the database copy. Pull request #5782
- Variable substitution applies to every key of array-form config.env tables. Pull request #5583
- Bitbucket webhook watch paths are matched against the whole push. Pull request #5818
- Docker cleanup skips pruning a stopped dokploy-traefik container and image. Pull request #5821
- Disabling a compose domain no longer removes dokploy-network from its service. Pull request #5822
This week: remote deploys now fail fast when a server dies mid-deploy, env vars stay readable after leaving the legacy auth secret, log viewers are virtualized, audit logs export as CSV, TSV or JSON, and domain config writes are serialized.
This week's changes include several fixes to how deploys behave when something goes wrong: remote deploys no longer hang when a server freezes mid-deploy, and Docker cleanup no longer prunes a stopped dokploy-traefik. Env vars remain readable after moving off the legacy auth secret, and concurrent domain writes no longer overwrite an app's Traefik config. Audit logs can now be exported as CSV, TSV or JSON for every entry matching the current filters, and the deployment, volume backup, drawer and container log viewers share one virtualized list so large logs no longer freeze the tab.
Week of October 19, 2026
What shipped
- Bundled fixes for four security issues, including cross-tenant access checks that now require the target service or project to belong to the active organization. Pull request #5752
- Traefik is bumped to v3.7.16 with a version check and safe update so existing installs can move off the unsupported pin. Pull request #5756
- ExecError no longer carries the executed command, so registry passwords and build secrets stop leaking through errors, and the container terminal is now bound to its service. Pull request #5733
- Registry passwords are passed to docker login via stdin instead of appearing in shell process arguments and execution errors. Pull request #5701
- Application deploys now keep service-level labels on the Swarm service instead of removing them on every update. Pull request #5631
- YAML merge keys and anchors are resolved when rewriting compose files, so anchored labels and networks survive a deploy. Pull request #5753
- The swarm provider is disabled in traefik.yml on Swarm worker servers, stopping the endless not a swarm manager retries. Pull request #5764
- Webhook deployment jobs on self-hosted setups now keep the remote serverId, so the job is queued to the right server. Pull request #5732
- Database backups can be downloaded from the panel. Pull request #5260
- Cron jobs are registered on a fresh install before the owner exists, so docker cleanup, log cleanup and backups are scheduled without a restart. Pull request #5763
Why it matters
This week fixes several things that quietly went wrong on real installs: deploys dropping labels and merge-keyed compose settings, webhook jobs landing on the wrong server, and previews building without the configured build server and registry. It also tightens secrets handling so registry passwords stop showing up in errors and commands, and closes cross-tenant access gaps. Alongside that, Traefik moves to a supported release with a safe update path, and backups can now be downloaded.
Changelog entry
- Release v0.30.10. Release
- Release v0.30.9 with Node.js bumped to 24.22.1. Release
- Fix four security issues, including cross-tenant access checks against the active organization. Pull request #5752
- Stop leaking secrets through ExecError and bind the container terminal to its service. Pull request #5733
- Pass registry passwords to docker login via stdin. Pull request #5701
- Add a Traefik version check and safe update, bumping to v3.7.16. Pull request #5756
- Keep service labels on application deploy. Pull request #5631
- Resolve YAML merge keys when rewriting compose files. Pull request #5753
- Disable the Traefik swarm provider on swarm worker servers. Pull request #5764
- Preserve remote serverId in webhook deployment jobs. Pull request #5732
- Allow downloading database backups. Pull request #5260
- Register cron jobs on a fresh install before the owner exists. Pull request #5763
New releases v0.30.9 and v0.30.10. Security fixes for cross-tenant access and secret leaks in errors and docker login. Deploys keep service labels and YAML merge keys. Traefik bumped to v3.7.16 with a safe update. Webhook jobs keep their serverId and backups can be downloaded.
Two releases this week, v0.30.9 and v0.30.10. Security work: access checks now require the target service or project to belong to the active organization, ExecError no longer carries the executed command so registry passwords and build secrets stay out of logs and notifications, and docker login receives registry passwords via stdin. Deploy fixes: service-level labels are kept on application updates, YAML merge keys and anchors are resolved when rewriting compose files, and webhook deployment jobs on self-hosted setups keep the remote serverId. Previews now use the configured build server and registry, and compose delete defaults deleteVolumes to false. Traefik is bumped to v3.7.16 with a version check and safe update, the swarm provider is disabled on worker servers, cron jobs register on
Week of October 12, 2026
What shipped
- Added Logs & Metrics, which ships a server's container logs and metrics to external providers via Vector. Pull request #5624
- GitLab token refresh is now shared between concurrent callers so simultaneous deployments no longer fail when the token expires. Pull request #5655
- Traefik file read and write procedures are now confined to the Traefik config directory instead of accepting any caller-supplied path. Pull request #5070
- Telegram notifications now escape HTML and truncate long messages so build error alerts are no longer silently dropped. Pull request #5694
- Members with service creation permission can now list servers in server pickers instead of being blocked by the server read requirement. Pull request #5613
- Route53 record names now decode octal escapes, so wildcard records no longer come back with escaped characters. Pull request #5553
- The OVH DNS provider gained an optional zone field so a set of credentials can be restricted to a single DNS zone. Pull request #5614
- Enterprise branding now supports separate light and dark theme logos and favicons. Pull request #5649
- Changing the database type in the Compose backup restore form now preserves the selected service name. Pull request #5654
- The Projects summary card on the home dashboard is now clickable and navigates to the projects list. Pull request #5657
Why it matters
This week's changes fix several failures developers hit while deploying: expired GitLab tokens breaking concurrent deployments, dropped Telegram error notifications and members unable to pick a server. It also adds container log and metric shipping to external providers, which makes running services easier to observe from existing tooling.
Changelog entry
- Add Logs & Metrics to ship container logs and metrics to external providers via Vector. Pull request #5624
- Share one GitLab token refresh between concurrent callers to avoid failed deployments. Pull request #5655
- Confine Traefik file read and write to the Traefik config directory. Pull request #5070
- Escape HTML and truncate long messages in Telegram notifications. Pull request #5694
- Let members with service creation permission list servers in server pickers. Pull request #5613
- Decode Route53 octal escapes in record names. Pull request #5553
- Add optional zone to the OVH DNS provider. Pull request #5614
- Add dual-mode branding with separate light and dark theme logos. Pull request #5649
- Preserve service name when changing database type in backup restore. Pull request #5654
- Make the Projects card clickable on the home dashboard. Pull request #5657
- Cap visible template tags so the Create button stays visible. Pull request #5661
- Wrap and clamp service card descriptions on the environment page. Pull request #5656
This week: Logs & Metrics ships container logs and metrics to external providers via Vector. GitLab token refresh is shared across concurrent deployments. Traefik file access is confined to the config directory. Telegram notifications escape HTML and truncate long messages.
This week's changes for Dokploy: Logs & Metrics ships a server's container logs and metrics to external providers via Vector. GitLab token refresh is now shared between concurrent callers, so two deployments finding an expired token at once no longer cause one to fail. Traefik file read and write procedures are confined to the Traefik config directory. Telegram notifications escape HTML and truncate long messages, so build error alerts are delivered instead of dropped. Members with service creation permission can now list servers in server pickers, and the OVH DNS provider accepts an optional zone.
Week of September 28, 2026
What shipped
- Account deletion for Dokploy Cloud lets users self-serve erasure requests with email verification instead of manual handling. Pull request #5463
- Session cookies are now marked Secure when Dokploy is served over HTTPS, preventing replay over plain HTTP. Pull request #5022
- S3 backup credentials are redacted in logs regardless of shell quoting, preventing accidental exposure of real AWS and Backblaze keys. Pull request #5527
- Deployment log websockets now properly close when clients disconnect early, preventing resource leaks. Pull request #5529
- Host Block I/O stats now count only physical disks, eliminating double-counted writes from partitions and stacked devices. Pull request #5540
- Application status is preserved when saving provider settings, so editing Git configuration no longer resets running containers to idle. Pull request #5455
- Deploy webhooks now accept payloads up to 25 MB instead of 1 MB, handling large pushes with hundreds of commits. Pull request #5543
- Deployments overview layout is cleaner and more responsive with inline filters on larger screens and fixed visual jumping. Pull request #5429
- User invitation form no longer resets when submission fails, letting users correct errors without re-entering data. Pull request #5498
- Tab header styles are unified across backups, schedules, volume backups and patches for visual consistency. Pull request #5535
Why it matters
This week includes security fixes for cookies and credential redaction, reliability improvements for webhooks and websockets, and UX polish that prevents data loss. Together they address authentication safety, silent failures in deployment flows, and user friction in common workflows.
Changelog entry
- Feat: account deletion for Dokploy Cloud with GDPR/CCPA compliance Pull request #5463
- Fix: session cookies marked Secure when served over HTTPS Pull request #5022
- Fix: redact S3 credentials in backup logs regardless of shell quoting Pull request #5527
- Fix: kill deployment log tail when client disconnects early Pull request #5529
- Fix: count only physical disks in host Block I/O stats Pull request #5540
- Fix: preserve application status when saving provider settings Pull request #5455
- Fix: accept deploy webhook payloads up to 25 MB Pull request #5543
- Feat(ui): enhance deployments layout and fix visual jumping Pull request #5429
- Fix: prevent add-invitation form from resetting on submission error Pull request #5498
- Fix(ui): unify tab header styles across backups, schedules, volume backups and patches Pull request #5535
- Fix: preserve compose status when saving provider settings Pull request #5544
- Fix(cloud): load HubSpot chat widget for startup plan users Pull request #5538
V0.30.8 shipped: secure session cookies over HTTPS, account deletion for compliance, fixed credential redaction in backups, and deployments that don't reset when you edit Git settings.
Dokploy v0.30.8 is out with security and reliability improvements. Highlights: secure session cookies over HTTPS, self-service account deletion for GDPR/CCPA, S3 credentials properly redacted in logs, webhook payloads up to 25 MB, and application status preserved when updating provider settings. Also fixed deployment log websockets leaking resources and Block I/O stats double-counting partitions.
More from Dokploy/dokploy on GitHub
Merged pull requests
- fix(billing): allow switching billing interval during trial (#5515, merged September 23, 2026 by Siumauricio) (source)
- fix(billing): pick a plan for the trial and warn before it expires (#5477, merged September 18, 2026 by Siumauricio) (source)
- feat(compose): support models in Compose specification (#5418, merged September 11, 2026 by EgerDev) (source)
- fix(notifications): add missing newline to ntfy database backup message (#5350, merged September 10, 2026 by RezaRahemtola) (source)
- feat: added missing Railpack versions (#5358, merged September 10, 2026 by KingIronMan2011) (source)
- chore(ci): update GitHub Actions to latest versions and harden workflows (#5364, merged September 10, 2026 by maks-oleksyuk) (source)
- fix(vault): read Infisical secrets pulled in through an import (#5414, merged September 10, 2026 by aspatari) (source)
- fix(compose): move Fresh Volumes into a Danger Zone with typed confirmation (#5411, merged September 9, 2026 by Siumauricio) (source)
- feat(compose): pull latest images on deploy toggle (#5410, merged September 9, 2026 by Siumauricio) (source)
- feat: transfer services between servers (#5396, merged September 9, 2026 by Siumauricio) (source)
- fix(auth): prefetch SSO state in SSR to prevent layout flash (#5407, merged September 9, 2026 by imrja8) (source)
- fix(ui): standardize settings layout widths to full width (#5406, merged September 9, 2026 by imrja8) (source)