Search K
Appearance
Appearance
Released: 2026-03-31
Suspension message and welcome message are now consolidated under a single "Message Templates" menu entry, reducing clutter in the navigation.
Domain statistics have been extracted from the User statistics page into a dedicated page. This separates concerns that were previously mixed together — domain stats / logs and user statistics/info.
The template that controls how password-protected directories are configured for the OpenLiteSpeed web server is updated. The old template file openlitespeed_context_protected.conf allowed to configure only the context section of the configuration. The realm section was hard-coded in the main DirectAdmin service.
The old template is replaced with the new template file openlitespeed_protected_directory.conf. The new file configures both context and realm sections. This allows full control of the password-protected directory configuration.
The main OpenLiteSpeed virtual host configuration template openlitespeed_vhost.conf have access to the two new tokens:
|PROTECTED_DIRECTORIES| contains the configuration blob for all protected directories in this virtual host.|CGI_BIN_DIRECTORY| contains the configuration blob for the cgi-bin directory if the user has cgi-bin support enabled.These new tokens replace the legacy |CONTEXTS| and |REALMS| tokens.
‼️ If the openlitespeed_vhost.conf template is customised, please update it accordingly. Replace the |CONTEXTS| with |CGI_BIN_DIRECTORY| token and the |REALMS| with |PROTECTED_DIRECTORIES| token.
For compatibility reasons the old tokens will still be available and contain the same configuration as the new tokens.
numservers_waiting option update The default value for the numservers_waiting option is changed from 10 processes to 2 processes.
This option controls how many idle directadmin processes should be waiting for new connections. As soon as an idle process starts processing a request, a new idle process is started. Lowering this value does not limit how many concurrent requests can be processed.
The following changes were made to CMD_PLUGIN_MANAGER delete action:
uninstall.sh script fails.uninstall.sh script is missing.When password protection from the directory is removed, all the protection-related configuration from the .htaccess file and the whole .htpasswd file will be removed.
This change makes sure that removing password protection restores the directory to the same state it was before protecting it and does not leave any stray files behind.
This change affects only the Enhanced skin and legacy API endpoint. The Evolution skin was always performing a full cleanup. Now both skins will start behaving the same.
2.4.2 to 2.4.36.3.4-11 to 6.3.5-04.24.1 to 4.25.01.29.6 to 1.29.78.6.0 to 8.6.21.6.13 to 1.6.151.4.31 to 2.0.0The system file editor was upgraded and now matches the File Manager editor, including the same design and core functionality.
A filter was added to the system file list, making it easier to find a specific file quickly.
The File Manager editor now supports TAB indentation.
The option in the file editor's footer allows user to change the tab size between 2 or 4 spaces. By default it is set to 4.
To move focus out of the editor, press the Escape key.
Unauthorized and disabled pages now resolve to a 404 instead of rejecting navigation outright. This aligns error handling with the principle of always completing navigation, even when the destination is unavailable.
The 404 page has been restyled with branding colors for visual consistency. Error codes are now included to distinguish between not-found, forbidden, and disabled states.
Reseller and server stats have been refactored to use nested routes, with admin and reseller history moved inside their respective stats sections. Filesystems and network device stats sections have been removed.
Logs can now be reloaded without a full page refresh.
If one of the system services is masked (explicitly disabled by the system administrator), the list of system services would show an error. The service management interface is updated to hide masked services.
When a reseller viewed a user's history, the request was missing the user parameter, causing it to always fetch the reseller's own history instead. The correct user is now passed through.