Narciso E. Núñez Arias
cec5b65cd6
Merge pull request #5482 from qirh/add-perplexity-attribution
2026-09-29 15:01:14 -04:00
Narciso E. Núñez Arias
52f61adfe8
Merge pull request #5022 from Souvik-Cyclic/fix/secure-session-cookie-https-4709
...
fix: mark session cookie as Secure when served over HTTPS
2026-09-29 13:04:42 -04:00
Narciso E. Núñez Arias
169bac2ef8
Merge pull request #5529 from Souvik-Cyclic/fix/deployment-log-tail-leak-5518
...
fix: kill deployment log tail when the client disconnects early
2026-09-29 13:04:25 -04:00
Narciso E. Núñez Arias
916bb50e73
fix: redact S3 credentials in backup logs regardless of shell quoting ( #5527 )
2026-09-29 13:03:59 -04:00
Souvik Kumar
0d3a3966b0
fix: count only physical disks in host Block I/O stats ( #5540 )
...
* fix: count only physical disks in host Block I/O stats and skip partitioned md arrays and test the Block I/O sum
2026-09-29 11:47:05 -04:00
Roshan Singh
560e790e73
fix: preserve compose status when saving provider settings ( #5544 )
...
* fix: preserve compose status when saving provider settings
2026-09-29 10:58:59 -04:00
Narciso E. Núñez Arias
ff2e454dca
Merge pull request #5543 from Souvik-Cyclic/fix/webhook-body-size-5537
...
fix: accept deploy webhook payloads up to 25 MB
2026-09-29 10:37:49 -04:00
Souvik Kumar
82545bf500
revert: go back to a literal 25mb body limit for deploy webhooks
2026-09-29 20:00:05 +05:30
Narciso E. Núñez Arias
302754bd3b
Merge pull request #5535 from y4aniv/fix/tab-headers-consistency
...
fix(ui): unify tab header styles across backups, schedules, volume backups and patches
2026-09-29 10:26:12 -04:00
Narciso E. Núñez Arias
6e7934fc55
Merge pull request #5429 from imrja8/fix/deployments-filter-bar-inline-layout
...
feat(ui): enhance deployments layout and fix visual jumping
2026-09-29 10:14:34 -04:00
Yash Kumar
c18609a127
refactor(ui): remove redundant responsive layout comment
2026-09-29 19:24:03 +05:30
Narciso E. Núñez Arias
618a7df25c
Merge pull request #5455 from roshanasingh4/codex/preserve-app-status-on-provider-save
...
fix: preserve application status when saving provider settings
2026-09-29 09:51:29 -04:00
Souvik Kumar
1c6d333739
fix: parse deploy webhook bodies in the handler so the size limit can be configured
2026-09-29 19:20:41 +05:30
Narciso E. Núñez Arias
72f2c4d5d1
Merge pull request #5498 from imrja8/fix/add-invitation-form-reset
...
fix: prevent add-invitation form from resetting on submission error
2026-09-29 09:44:47 -04:00
Souvik Kumar
e8be2693e0
refactor: make deploy webhook body limit configurable via DEPLOY_WEBHOOK_MAX_BODY_SIZE
2026-09-29 19:06:44 +05:30
Souvik Kumar
4396451095
fix: accept deploy webhook payloads up to 25 MB
2026-09-29 18:37:57 +05:30
Yash Kumar
7dc066a7bd
Merge branch 'Dokploy:canary' into fix/deployments-filter-bar-inline-layout
2026-09-29 18:08:41 +05:30
Yash Kumar
a0b6f233cb
Merge branch 'Dokploy:canary' into fix/add-invitation-form-reset
2026-09-29 18:08:30 +05:30
Mauricio Siu
d0ec74fbb8
Merge pull request #5538 from Dokploy/fix/hubspot-chat-widget
...
fix(cloud): load HubSpot chat widget for startup plan users
2026-09-29 02:05:21 -06:00
Mauricio Siu
382fdfc478
fix(cloud): remove HubSpot chat widget when dashboard unmounts
...
Logout navigates client-side to the sign-in page, so the widget (mounted
outside React) stayed visible after a startup user logged out.
2026-09-29 01:59:29 -06:00
Mauricio Siu
c231c2979b
fix(cloud): load HubSpot chat widget for startup plan users
...
The HubSpot script is loaded app-wide with loadImmediately: false, but
useHubSpotChat was never called, so widget.load() never ran. The old
HubSpotWidget shared the hs-script-loader id and was deduped by next/script.
2026-09-29 01:54:04 -06:00
Yaniv Douieb
3951247ebd
fix(ui): unify tab header styles across backups, schedules, volume backups and patches
2026-09-28 17:48:20 +02:00
Souvik Kumar
7b89d1f948
fix: kill deployment log tail when the client disconnects early
2026-09-27 15:27:14 +05:30
Souvik Kumar
6215c7f159
fix: redact S3 credentials in backup logs regardless of shell quoting
2026-09-27 00:23:23 +05:30
Yash Kumar
52ea2ce071
Merge branch 'Dokploy:canary' into fix/deployments-filter-bar-inline-layout
2026-09-26 09:28:03 +05:30
Yash Kumar
a0f1a5119c
Merge branch 'Dokploy:canary' into fix/add-invitation-form-reset
2026-09-26 09:27:54 +05:30
Mauricio Siu
a0e0574bcd
Merge pull request #5515 from Dokploy/fix/trial-billing-interval-switch
...
fix(billing): allow switching billing interval during trial
2026-09-23 15:09:24 -06:00
Mauricio Siu
c453ac3a2f
fix(billing): allow switching billing interval during trial
...
Switching plan mid-trial always forced the monthly price and there was no
way to move to annual. Preserve trial_end on the Stripe update so changing
the interval does not reset the billing cycle and end the trial early.
2026-09-23 15:06:54 -06:00
Yash Kumar
143dfcafe3
fix: correct add-invitation form reset logic and select state
2026-09-21 16:01:50 +05:30
Yash Kumar
3563f585f9
Merge branch 'Dokploy:canary' into fix/deployments-filter-bar-inline-layout
2026-09-20 12:39:36 +05:30
Saleh Alghusson
f2ba262499
feat(ai): add Perplexity integration attribution
2026-09-18 13:26:27 -05:00
Dokploy Bot
f397c1a862
chore: sync hotfix from main into canary [skip ci]
2026-09-18 09:04:20 +00:00
Mauricio Siu
16ac4633f3
Merge pull request #5477 from Dokploy/feat/trial-expiration-emails
...
fix(billing): pick a plan for the trial and warn before it expires
(cherry picked from commit d7d75f7c5c )
[skip ci]
2026-09-18 09:04:19 +00:00
Mauricio Siu
d7d75f7c5c
Merge pull request #5477 from Dokploy/feat/trial-expiration-emails
...
fix(billing): pick a plan for the trial and warn before it expires
2026-09-18 03:04:07 -06:00
Mauricio Siu
a0e1001808
feat(trial-notifications): add email notification for expiring trials and integrate with webhook
2026-09-18 03:03:51 -06:00
Mauricio Siu
8236c31fcd
Revert "fix(billing): one reminder at 1 day, guarded by an advisory lock"
...
Revert "fix(billing): stop the reminder claim from rewriting stale metadata"
This reverts commits 037230496 and 14e059784 .
2026-09-18 02:49:18 -06:00
Mauricio Siu
037230496c
fix(billing): one reminder at 1 day, guarded by an advisory lock
...
Cloud runs two frontend replicas and node-schedule fires on each, so both
would read the same unset marker and every trial user would get the email
twice. A Postgres advisory lock lets one replica run and the other skip;
it lives in the connection rather than the schema, so no migration.
Drops the 3-day reminder, leaving the single notice before billing starts.
2026-09-18 02:45:46 -06:00
Mauricio Siu
14e059784c
fix(billing): stop the reminder claim from rewriting stale metadata
...
Stripe merges metadata on update, so spreading the snapshot read during
the list call re-asserted stale values over anything written since. Send
only the key being claimed.
The claim is not exclusive and the comment no longer says it is: two
replicas can still read the same unset marker. Marking before the send
only keeps a crash mid-send from resending on the next run.
2026-09-18 02:41:28 -06:00
Mauricio Siu
f34151bc12
refactor(billing): drop the runTrialExpirationJob endpoint
...
Removes the manual trigger and the root guard it needed. The cron job is
the only caller now, so processTrialExpirations goes back to module private.
2026-09-18 02:39:33 -06:00
Mauricio Siu
d00ae31920
refactor(billing): drop the sendTestTrialEmail endpoint
...
The scan endpoint already covers manual runs, so the one-off sender was
redundant. sendTrialExpiringEmail goes back to being module private.
2026-09-18 02:38:02 -06:00
Mauricio Siu
95b2712c26
fix(billing): pick a plan for the trial and warn before it expires
...
Trials were always Hobby, so a trial user who wanted Startup had to go
through Checkout, which created a second subscription on the same
customer. Seven days later Stripe cancelled the trial sub and the webhook,
matching only on customer id, zeroed serversQuantity and deactivated the
servers of someone who was already paying.
The trial now starts on the plan the user chooses and switching plans
mutates that same subscription, so a customer never holds two.
- startFreeTrial takes a tier; TRIAL_SERVER_LIMIT becomes TRIAL_SERVER_LIMITS
(Hobby 1 server, Startup 3)
- onboarding offers both plans with a trial and a subscribe button
- billing exposes Switch to Startup/Hobby during the trial and hides the
checkout CTAs and server steppers that would create a second subscription
- upgradeSubscription caps the server count to the plan's included servers
while trialing and skips proration, which emitted an orphan invoice
- webhook treats trialing as active instead of disabling servers, and
guards invoices that carry no subscription
- getBillingStatus reports hasPaymentMethod, so the banners stop asking for
a card once one is on file
- new cloud-only daily job emails trial users without a payment method at 3
and 1 days left, deduped through subscription metadata claimed before the
send so concurrent replicas cannot double-send
2026-09-18 02:35:27 -06:00
Roshan Singh
e120340e77
test: cover status preservation for every provider save
2026-09-13 22:28:06 +05:30
Roshan Singh
0d6e984b54
fix: preserve application status when saving provider settings
2026-09-13 22:22:36 +05:30
Yash Kumar
1e9873b3e4
fix(ui): change filter layout breakpoint to lg to prevent overflow on tablets
2026-09-12 15:59:18 +05:30
Yash Kumar
26317e9126
feat(ui): inline deployments filter bar and fix layout jumping
2026-09-12 15:50:08 +05:30
Mauricio Siu
853ca33659
Merge pull request #5416 from Dokploy/fix/critical-next-rce-16.3.4
...
fix(deps): bump next to 16.3.4 to patch critical RCE advisories
2026-09-11 02:20:20 -06:00
Mauricio Siu
a90c2a662f
Merge pull request #5418 from EgerDev/feat/compose-models
...
feat(compose): support models in Compose specification
2026-09-11 02:20:07 -06:00
EgerDev
45dcdfc5be
test(compose): tighten models types and regression tests
2026-09-11 00:11:40 -07:00
EgerDev
29cdc815db
feat(compose): support AI models in Compose specification
2026-09-10 20:28:28 -07:00
Narciso E. Núñez Arias
9fa98de9c1
Merge pull request #5350 from RezaRahemtola/fix/ntfy-database-backup-newline
...
fix(notifications): add missing newline to ntfy database backup message
2026-09-10 19:00:08 -04:00