Experimental support for MariaDB Connector (C). To use, put libmariadb.dll in hMailServer\Bin. hMailServer will prefer it over libmysql.dll if both exists.
IMAP improvements
Removed the ImapAuthAllowPlainText legacy option
Fixed invalid "Recent" count in IMAP notifications
Fixed FETCH not honoring the start.size partial-fetch clause
DKIM improvements
DKIM signatures for domain aliases
DKIM-sign all email sent from a domain, not just per-account
Fixed signing failure for messages >10MB
DKIM verification when the published DNS record is a CNAME
Signing for NDR/bounce messages
Optional X-Original-Rcpt-To header for incoming mail.
IMAP improvements: RFC 6154 support - LIST extension for Special-Use Mailboxes (\Sent, \Drafts, \Junk, \Trash, etc.), including auto-creation of special-use folders on account creation.
Added configurable alerts when scheduled database backups missed a set number of days. #11433 closed #11425.
Streamed S3-only volume archives directly to S3 so those backups no longer needed temporary local disk space. #11642
Added an instance setting for the CDN URL used to serve stored images such as profile avatars and project icons.
Improvements
Refreshed the UI with WCAG-compliant contrast, a unified surface system, a full-height settings rail, and a rebuilt mobile navigation drawer. #11659 closed #11532.
Preserved in-progress domain edits across refreshes, stacked domain rows on small screens, and moved preview deployment settings onto the Previews page.
Paginated service backup history, showed S3 destination details, disabled Backup Now unless the database was running, added search on server resources, and let operators enable Sentinel from its logs page.
Fixes
Allowed General application settings to be saved when an existing domain used a wildcard. #11683 closed #11641.
Prevented duplicate Coolify Cloud subscription checkouts and recovered subscriptions after missed or out-of-order Stripe webhooks. #11666
Preserved PATH in terminal sessions so SSH proxy commands such as cloudflared worked. #11638 closed #11611.
Stopped the persistent storage PR suffix dropdown from clipping inside the volumes table. #11637 closed #11605.
Returned scheduled task execution duration as a JSON number so the CLI could parse listings. #11636 closed #11616.
Persisted S3 storage settings when creating a new volume backup schedule. #11635 closed #11627.
Cleaned up preview deployments when a pull request closed after its base branch changed. #11634 closed #11609.
Persisted the Make publicly available setting for service databases. #11633 closed #11345.
Restored webhook delivery for always-send notifications, including SSL renewal, API token expiry, server force-enable/disable, and Hetzner deletion failures. #11528 closed #11507.
Raised nginx request header buffers so large Cookie headers no longer returned HTTP 400 before reaching Coolify. #11404 closed #11403.
Kept modal contents intact across Livewire re-renders instead of dropping the body and leaving a click-blocking overlay. #11294
Routed Docker Compose domains using each service's ports, stored explicit ports as overrides through the API, and stopped multi-service Compose domains from inheriting the application port.
Applied the same domain validation rules to the service API as the UI, including wildcards and oversized URLs.
Limited instance public IP DNS hints to the localhost server so remote servers showed their own addresses.
Preserved shell negation in sudo-wrapped commands on servers that use a non-root SSH user.
Deferred inspection of PostgreSQL custom-format backup archives to pg_restore so valid dumps were not rejected.
What's Changed
fix(notifications): add missing toWebhook methods to notifications by @ousamabenyounes in #11528
fix(docker): raise nginx request header buffers above the 8k default by @bosund in #11404
fix(service): persist service database public access by @peaklabs-dev in #11633