Version 1.650
Released: 2023-05-31
Dark mode background image for login page evolution new
It is now possible to customize login page background image for light and dark mode separately.
Instead of using color overlay Evolution uses separate images for light and dark modes. This should make customizing login page easier.

CustomBuild reports system package upgrades custombuild new
In the available software updates list CustomBuild will start showing if system package updates are available.
A new command for upgrading system packages is introduced:
da build update_system

Note: Updating all software components with command ./build update_versions or da build update_versions will not upgrade system packages to stay compatible with the old CustomBuild behaviour. This also means clicking Update All button in GUI will update all components except system packages, which needs to be perfomed by clicking Update button for this specific action.
DirectAdmin missing license mode new
DirectAdmin used to fail to startup if license file was missing or was malformed in any way on the system. This change allows DirectAdmin to successfully startup with a missing license in a missing license mode, where explicit license error is shown to the end user with instructions on how to change the license for system administrators.

Old licenses format migration new
On startup, if DirectAdmin detects a license file using old format, license file gets migrated to the recent license format.
Maintenance task for migrating old Evolution customizations to new format new
Older Evolution versions used to store all customizations in a single config.json file. Starting DirectAdmin 1.640 Evolutions would split out customizations into multiple JSON files.
Migration from a single file to multiple files are performed automatically when Admin or Reseller user signs in into evolution.
However if Admin or Reseller accounts with legacy customizations are never used they might still have customizations in old format.
Starting this release Evolution will not perform automatic conversion on user log-in. Instead there is a new maintenance task that finds all such users on the system and performs conversion for everyone in one go.
One-Time-Login URLs update
Login URLs are upgraded to be shorter and use API endpoint while retaining same security guarantees.
Login URLs created before this change are still valid but it is a good idea to not have long-living unused Login URLs laying around.
Future updates may require for all Login URLs to be re-created.
CustomBuild updates API returns all software components update
API endpoint /api/custombuild/updates that returns available software components for update is changed to always return all software components not just components that can be updated.
This makes this API endpoint suitable as a replacement for old CustomBuild command ./build versions_json.
Since the results now include all software components the response object now have extra field available which indicates if this component can be updated or not.
Scheduled backups handling update
Scheduled backups crontab used to work in an "insert/delete" mode where entries were added to or removed from crontab one by one. This allowed for system admins to add their own entries to diradmin user's crontab but also made scheduled backups handling error prone to updates, leading to possible discrepancies between data/admin/backup_crons.list config file and actual crontab which gets executed.
This change makes diradmin user's crontab fully managed by DirectAdmin, fully regenerating it each time backups schedule gets edited.
While this change disables possibility for system admins to add their own entries to diradmin user's crontab, this change brings much better guarantees of seamless DirectAdmin work.
# crontab -lu diradmin
# Auto generated by DirectAdmin v1.650.
# Any changes made here will be overwritten.
0 3 1 * * umask 0077; echo "action=backup&id=1" >> '/usr/local/directadmin/data/task.queue.da'
0 4 1 * * umask 0077; echo "action=backup&id=2" >> '/usr/local/directadmin/data/task.queue.da'
Git feature errors update
Git API is updated to report all git command related errors to the user instead of logging them only for admins to see.
This change should clear out the guess work why some git actions might have failed.
Maintenance tasks' details update
Maintenance tasks got updated to use a more unified and user friendly formatting across currently existing tasks.

Menu customizations entries deletion evolution update
Removing menu entries in Evolution due to backwards compatibility was not supported. We improved the menu customization components to support deletion of entries and categories. Now, instead of controlling the appearance of entries with Enabled property, users could delete categories / entries completely and restore them later if needed.
Network error banner evolution update
Improved the design of network error state. Instead of covering application with an overlay it would show nice bottom banner with info and block interaction with app while DirectAdmin service is unreachable.
Also, network error state now would be triggered not only by failed requests, but by system level offline network connection state as well.

Backend reload banner evolution update
Improved the way Evolution handles backend reload. Instead of failing into network error state due to failed requests it would wait for server to be back online with proper message to the user.
Option to migrate domain to private_html symlink evolution update
Version 1.649 completely removed the switch between private_html symlink mode and separate directory mode. This caused inconvenience for user wanting to migrate to the symlink mode.
In this version same option is introduced but only available for domains which are still using the private_html directory mode. And allows only migrating to symlink mode. It is not possible to migrate back.

Note: Migration to symlink mode completely removes all the files in the private_html directory!
CustomBuild logs shows executed command arguments evolution update
Checking CustomBuild logs in Evolution skin now shows what command was executed.

Updated modsecurity3 install script custombuild update
Install script for installing modsecurity3 (with NGINX) is updated:
- It ensures
modsecuritywill have support forlibgeoiporlibmaxminddb. - Caches
modsecuritysources to make reinstalls faster. - Downloads
modsecuritydirectly from github, rather than CustomBuild mirror servers.
Without this change on systems without libgeoip or libmaxminddb using default CWAF modsecurity rules might lead to nginx start failure:
nginx: [emerg] "modsecurity_rules_file" directive Rules error. File: /etc/modsecurity.d/REQUEST-910-IP-REPUTATION.conf. Line: 77. Column: 22. This version of ModSecurity was not compiled with GeoIP or MaxMind support. in /etc/nginx/nginx-modsecurity-enable.conf:2
Software version updates custombuild update
MariaDB 10.4updated from10.4.28to10.4.29MariaDB 10.5updated from10.5.19to10.5.20MariaDB 10.6updated from10.6.12to10.6.13MariaDB 10.3updated from10.3.38to10.3.39modsecurity3updated from3.0.8to3.0.9
Jailshell environment in PHP fastcgi mode custombuild fix
PHP in FastCGI mode had a separate script that takes care to create a jailed user environment when jailshell script is being used.
Over-time jailed environment for PHP and jailed user login shell have diverged. With this release jailed users will use same jailshell script that is used for jailed users login shell environment. It also ensures any further changes to jailshell script will be automatically applied to PHP in fastcgi mode.
This change also fixes email sending from PHP fastcgi mode for RHEL 9 systems.
Update notification for ionCube PHP extension custombuild fix
Using default PHP version which does not support ionCube extension would always incorrectly show that ionCube update is available.
In this release PHP extension ionCube install script was updated to work with each supported PHP version separately. When ionCube update is available it will be shown as separate updates for each PHP version.
Silent backup failures when user home directory has too many files fix
Creating a backup for user account which has too many files in the home dir would create a backup without user files and would not report any errors.
Issue is fixed and backup operation will terminate if backup must include user home directory files, but there was error creating files archive.
Feature set email_only gets access to vacation message fix
The built-in feature set email_only gets access to the vacation message management page. In previous versions versions access to vacation message management would not be allowed.
Bind service restart on Debian 10 systems fix
Restarting bind service on Debian 10 systems (where main service file has name bind9.service) via GUI used to fail while restarting via dataksq used to work fine. This release fixes the issue for service restarts using GUI.
The problem and fix affects only Debian 10 systems (or systems where named_service_override config option was used).
Login keys not sending messages fix
In the new Login keys management API, creation and update actions did not account for login_keys_notify_on_creation in directadmin.conf, and system messages were not being sent.
New Login keys API is fixed to send system messages according to this value.
User level login history order fix
Depending on the login method, user level login history would get appended to the top or the bottom of the list, leading to inconsistent log.
Issue is fixed so login history is always appended and trimmed correctly based on login time.
Modsecurity comments fix
Current method of DirectAdmin saving comments ƒor modsecurity rules didn't work well with all versions and all web servers.
Issue is fixed by changing comment location from being on the same line to being one line above the rule.
Before:
SecRuleRemoveById 942100 # comment
After:
# comment
SecRuleRemoveById 942100
Auto-patch CSF bug that leads to licensing errors on server reboot fix
Full server reboot on systems with functional IPv6 stack could lead to licensing error on start. This issue is caused by CSF freezing already opened IPv6 connections at the time CSF starts.
DirectAdmin service restart fixes the issue since all connections opened after CSF is fully loaded works fine.
This issue does not affect IPv4 connections. With this release DA installer and updater will auto-patch CSF to work correctly with IPv6 as well (same as IPv4).
More details about the issue available on the CSF forums.
Fixed page buttons layout in mobile view evolution fix
Page action buttons in mobile mode was arranged horizontally and was cutted by the viewport. The fix changes the way page links and buttons shown to match the viewport and always being shown correctly.
RTL Design fixes evolution fix
Fixed various style issues in Refreshed layout: in right to left languges some elements were incorrectly placed.
Refresh timer dropdown evolution fix
Fixed refresh timer dropdown in tables; in case another dropdown was open when refresh timer dropdown was active, first dropdown was never removed from dom.
Removed option default_private_html_link from directadmin.conf removal
Options default_private_html_link is removed, starting this release private_html will always be created as symlink to public_html.