Version 1.673
Released: 2025-01-25
Added max_file_uploads option in php settings list new
Added option to set the maximum number of files allowed to be uploaded simultaneously in PHP.
Different theme colors for different access levels evolution new
Evolution skin now supports using different theme colors for different access levels (normal user or admin/reseller). This provides additional visual hints when access level is changed.
In the color customization section, each layout could have a custom color for admin or reseller level.
An example of how it looks in the Icons Grid layout, configured to use red color for the admin access level and default blue for the user access level:

This feature can be useful for users who used the no longer supported Hybrid layout just to get visual hints on access level change.
Installer flag to skip trying to acquire automatic TLS certificate new
The installer script has a new flag DA_SKIP_AUTO_TLS_CERT. If this environment variable is set to non-empty value, the installer script setup.sh will not try to automatically get a TLS certificate for the server host name as part of the install procedure.
Impersonation feature (login as) header evolution improved
The design of the black header used by the impersonation (login as) feature is updated. It has better integration with all the layouts and now is visible in FileManager as well.

Layout header update, unified domain selector evolution improved
The header part of all layouts received an update. Key changes:
- The language selector in classic layouts (Standard, Sidebar, and Icons Grid) is moved from the bottom of the page to the header.
- In the Sidebar layout, breadcrumbs are added to all the pages. Breadcrumbs are links above the page header showing the page location and parent pages.
- The domain selector in classic layouts is placed in the same place as in the Refreshed layout, in the same line as page breadcrumbs.
Standard layout:

Sidebar layout:

Icons Grid layout:
![]()
Refreshed layout:

Easier color copying in Color Customization page evolution improved
The Evolution skin color customization page uses new color input elements. New input elements make it easier to copy and paste color codes without opening the browser color picker. The color picker can be opened by clicking on the color button.

The Refreshed theme shows unread messages number evolution improved
The Refreshed layout will show the number of unread messages under the link to the messages page.

Simpler language selector in Refreshed layout evolution improved
The language selector in the Refreshed layout no longer needs extra action after a language change to show the menu again.
In the previous releases, the language selector used the menu area to show the language list. This required an extra action after the language was changed to bring back menu in the sidebar area.
In this release, the language selector is closed immediately after a new language is selected.

Updated E-mail Accounts page evolution improved
The look of the "E-mail Accounts" page (located under user level -> E-mail Manager) has been updated. The functionality is the same as before but the page itself should now be faster as a whole.
Updated IP management details tab evolution improved
The details tab (found in admin level -> Server Manager -> IP Management -> click any IP address within table) has been visually updated.
Updated Redis page evolution improved
Redis page (found in user level -> Advanced Features -> Redis) has been visually updated.
Faster phpMyAdmin SSO access improved
Action to create a temporary database user account (it is used in phpMyAdmin SSO implementation) is optimized to work faster for users with a high number of databases.
Clean-up old MySQL and MariaDB installations custombuild improved
The CustomBuild script is updated to automatically remove old (no longer used) installations of MySQL or MariaDB on the Debian and RHEL 9 systems.
Disable PHP OPcache API access by default custombuild improved
The default PHP OPcache configuration (in custombuild/configure/opcache/opcache.ini) is updated to prevent PHP scripts from using OPcache API functions.
OPcache API is not normally used by the applications. It is desirable to restrict this API access to prevent access to opcache_get_status(), which can leak the filenames of cached PHP scripts on the system.
Updated ModSecurity v2 install script custombuild improved
The CustomBuild script to install or upgrade ModSecurity v2 (used with the Apache web server) is updated. Notable changes:
- Sources will be downloaded directly from GitHub.
- Source packages will be cached and reused between builds.
Software version changes custombuild improved
apache2.4updated from2.4.62to2.4.63composerupdated from2.8.3to2.8.5dovecot-fts-xapianupdated from1.8to1.8.6imagemagickupdated from7.1.1-41to7.1.1-43litespeedupdated from6.3.1-6to6.3.1-8modsecurity_owasp_rulesupdated from4.9.0to4.10.0modsecurityupdated from2.9.7to2.9.8MySQL 8.0updated from8.0.40to8.0.41MySQL 8.4updated from8.4.3to8.4.4openlitespeedupdated from1.8.2to1.8.2.1PHP 8.2updated from8.2.26to8.2.27PHP 8.3updated from8.3.14to8.3.16PHP 8.4updated from8.4.1to8.4.3phpmyadminupdated from5.2.1to5.2.2proftpdupdated from1.3.8bto1.3.8cunitupdated from1.33.0to1.34.1modsecurity3_apacheremoved
Calls to dnssec-signdomain are now single threaded fixed
The tool dnssec-signzone by default uses a threads count depending on the amount of cpu on the server.
This was an issue with systems that have unusually high cpu count (>100).
During our tests:
- The more threads were used - the slower the signing was observed
- Despite having more threads - it never used more than 1 cpu
- Older named versions even had timeout and oom kills
The dnssec-signzone tool is now called using one thread.
Relaxed user suspension details validation fixed
User suspension details can now contain special characters like newlines and spaces.
Passing custom hook variables to session_create_pre.sh hook fixed
Custom hook variables in the legacy /CMD_LOGIN endpoint were not being passed to the session_create_pre.sh hook. The issue is fixed in this release.
Proper parent child page structure evolution fixed
Fixed an issue where when a menu entry was disabled, its child pages were still accessible via the url.
As a result of the change, other less notable changes include:
- there were previously a few pages that had displayed breadcrumbs incorrectly which is now fixed.
- some pages had their url changed to represent the parent child relationship between the current and previous pages
- child pages that had an incorrect parent child relation now show up in the results when searching for that page.
Allow setting daily send limit for email accounts without a limit evolution fixed
Under certain conditions it was impossible to set the "Daily Send Limit" for a mailbox int the "E-mail accounts" page (located in user level -> E-mail Manager -> E-mail Accounts -> and opening up the "Change Limits" dialog).
Accessing E-mail Accounts page through search evolution fixed
When accessing the E-mail Accounts page via backend search results, the table contents are now narrowed down to a single table item (the one that was displayed in search results). Where as before, the page took a long time to load and displayed all table items.
File Manager create new folder with Enter key evolution fixed
The File Manager's "Create Folder" dialog has been refactored. The previous error that prevented creating a new folder by pressing Enter, even when the folder name did not already exist, has now been resolved.
New Design for File Manager's File Edit Modal evolution fixed
The File Manager's file edit modal has been redesigned. While maintaining the original layout structure, the new design significantly improves responsiveness. This update resolves previous user experience issues encountered when editing files on mobile devices.
Incorrect required field error for system message options evolution fixed
The "E-mail a copy of all messages" text input no longer shows a "Required Field" input error when it shouldn't.
Missing translations ids in dictionary evolution fixed
There were a few strings not getting extracted to dictionary, which made it impossible to translate them. This has been fixed.
Removed scripts/base64_encode.php script removed
The script scripts/base64_encode.php used to be called to perform base64 encoding when:
- Exporting user or reseller packages.
- Using UTF-8 encoding in email headers (RFC2047).
The internal base64 encoding function is now used instead of calling an external script. This makes the encoding operation faster and avoids problems when PHP is not installed on the system or is installed but non functional.
The script scripts/base64_encode.php is removed.
Removed obsolete configuration options from directadmin.conf removed
The following directadmin.conf options are no longer used:
database_extended_user_privileges- extended user privileges are always supported.db_grant_escape_db- the new database management engine auto-detects the correct GRANT statement escape rules.handshake_timeoutandrequest_timeout- no longer configurable, a 30 second timeout is used.check_task_queue- no longer needed, periodic tasks are executed by the maindirectadminservice.passwd- no longer used,directadminservice will search forpasswdtool in the directories listed in thePATHenvironment variable.internal_lang- no longer used, because the legacy translation system is not supported anymore.
Removed support for installing Netdata service custombuild removed
CustomBuild no longer supports installing the Netdata service. The motivation for discontinued Netdata support:
- It started as a simple stand-alone metrics dashboard but ended up being a cloud SaaS product.
- It puts heavy strain on the server. There are reports that Netdata causes significant load increase on the server just to collect metrics.
- The installer script is outdated, and the CustomBuild installer no longer works on all supported distros.
Nothing changes for existing Netdata users. This service can still be installed and used manually. The CustomBuild will no longer support installing it.
Removed CMD_JSON_LANG endpoint removed
The internal API endpoint CMD_JSON_LANG is removed. This endpoint was designed for the Evolution skin to load translations and over time was extended to include other information.
Evolution is not using this endpoint. The same information can be retrieved from the new API endpoints:
GET /api/skin-legacy-translationGET /api/sessionGET /api/message