Version 1.651

Released: 2023-07-12

Server Certificate Manager: paste server cert to all services new

New endpoint for CMD_ADMIN_SSL allowing the ability to paste the server certificate to all service areas at the same time. At the time of this writing, the interface is currently only available for the Enhanced Skin (navigate to CMD_ADMIN_SSL), Evolution to follow. It will also allow to duplicate it to other services if it's already set correctly in one location. This is mainly useful for purchased certifiates, eg: wildcards for the hostname, where LetsEncrypt is not being used.

View Service Certificates

Enchanced html with tables: CMD_ADMIN_SSL?action=view_server_certs

JSON: CMD_ADMIN_SSL?action=view_server_certs&json=yes

Will show all services, including the data, md5, and filename of the given file type: cert, key, ca, combined. The cert and combined types will also include sub-arrays of certificate_domains and certificate_info.

View one raw certificate file

View a file for the given type/service:

CMD_ADMIN_SSL
method: GET
action=view_cert
type=key|cert|ca|combined
service=directadmin|httpd|nginx|exim|etc.

Always returns text/plain, unless error in which case you'll get error=1 or json{error:1} output if json=yes in the request.

Paste a key/certificate/cacert to one/all services

CMD_ADMIN_SSL
method: POST
action=save_server_certs
key=
certificate=
cacert=
service=all|httpd|exim|directadmin|etc.

where the available list can be taken from the "services", plus "all".

Copy an existing cert from one service to another/all

Takes the existing cert/key/ca and applies it to the desired service. Note: Cannot take it from exim as there is no single cert and combined is not parsed.

CMD_ADMIN_SSL
method: POST
action=copy
select0=<from service name> eg: httpd
service=<to service name | all>

Migration to Vue.js v3 evolution improved

This release has a lot of infrastructure changes in Evolution skin, preparing it for major Vue.js framework upgrade from v2 to v3.

Vue.js v2 will reach its EOL time on December 31st, 2023

New framework version will provide better performance and new features.

Plugin entries in menu evolution improved

Plugins now able to add additional menu entries in plugins mounting category ("Extra Features" by default) next to the main plugin entry. This could be done by adding an object with "type": "plugin-entry" into menu output.

Example menu json file with plugin entry

[
    {
        "type": "plugin-entry",
        "name": "New Plugin Entry",
        "icon": "https://example.com/icon.png";
        "link": "/user/plugins/testplugin?path=test.html";
        "newTab": false,
        "updates": 0,
    }
];

PHP Version selection in PHP Settings evolution improved

PHP version now could be set not only on domain edit page ("User > Account Manager > Domain Setup > Edit Domain"), but on "User > Account Manager > PHP Settings" as well. This should make it easier to find where to change the php version for new users.

User mode sync evolution improved

User Mode (user/reseller/admin), was not being preserved between sessions, which lead to user being assigned default one each time Evolution is loaded.

Starting this release, Evolution saves user mode on backend, preserving it between sessions and multiple devices.

User confirmation dialog evolution improved

User confirmation dialog is reworked to be more accessible and have cleaner look with consistent styling across different contexts.

Mobile mode improvements evolution improved

When using a small screen device, input fields would often go outside of viewport, making it hard to interact with. In addition to that, multiple tables could not display data properly on smaller screens.

For such scenarios, UI is improved to be more mobile friendly by proportionally resizing the content where possible and making big elements scrollable.

Unit Proxy to use 127.0.0.1 improved

The local address to connect to Unit Proxy will now be 127.0.0.1 for all webserver types. Nginx used to use localhost, and Apache used to use domain.com. All are local, so will now use 127.0.0.1 to remove any dns lookups and prevent and confusion with regards to where they might resolve to, eg: domain.com might resolve to an external IP address which wouldn't work within a LAN. The ProxyPreserveHost On and RequestHeader set Host "domain.com" options were included in the change for the Apache templates to ensure that Unit receives the correct host header, matching to the correct Unit Route.

OpenLiteSpeed for ARM custombuild improved

Starting this release OpenLiteSpeed 1.7.17 can be used on ARM servers.

Software version updates custombuild improved

  • PHP 8.1 updated from 8.1.19 to 8.1.21
  • PHP 8.0 updated from 8.0.28 to 8.0.29
  • PHP 8.2 updated from 8.2.6 to 8.2.8
  • MariaDB 10.4 updated from 10.4.29 to 10.4.30
  • MariaDB 10.5 updated from 10.5.20 to 10.5.21
  • MariaDB 10.6 updated from 10.6.13 to 10.6.14
  • openlitespeed updated from 1.7.16 to 1.7.17
  • phalcon5 updated from 5.2.1 to 5.2.2
  • Roundcubemail updated from 1.6.1 to 1.6.2
  • composer updated from 2.5.7 to 2.5.8
  • nginx updated from 1.25.0 to 1.25.1
  • mod_lsapi updated from 1.1-67 to 1.1-68
  • redis updated from 7.0.11 to 7.0.12
  • imagemagick updated from 7.1.1-11 to 7.1.1-12

Updated PHP htscanner extension build script custombuild improved

PHP extension htscanner can now be built separately for each PHP version.

Its build script is updated to avoid build failures when building it for multiple PHP versions at once.

Sources of htscanner will be cached and not downloaded again on rebuild.

Reload loop for IP restricted login URLs fixed

Accessing login URL which is IP restricted from a non valid IP, used to consume login URL and create infinite Evolution reload loop. This issue is fixed, login URLs from not allowed IPs are redirected to login page, and URL can still be used from valid IP.

Fix protectable paths permission error fixed

DirectAdmin support for protecting overridden subdomain document roots used to perform checks with insufficient permissions which caused for errors and some missing data. This has been fixed by performing checks required as diradmin user.

Add New button in Email Accounts widget evolution fixed

Fixed the broken path for Add New button in Email Accounts widget. Previously it was pointing to non-existent page.

Nginx Unit apps list Associated Directory column fix evolution fixed

Previously, the Associated Directory column in the Nginx Unit Applications list for Python applications was sometimes shown as an empty field even when a path or paths were provided. This was fixed, and now it shows the correct paths for the Associated Directory column.

SpamAssassin blacklist/whitelist validation evolution fixed

Previosly, validation for new items in blacklist/whitelist was too strict, rejecting possible wildcard entries. The check was loosen up to allow pattern matching.

Evolution plugins and widgets working in vue mode removed

Older DirectAdmin versions supported plugins to inject JS code into Evolution. This was controlled by vue=1 flag in the plugin.conf file.

With this version vue plugin mode is ignored and all plugins will work in the same way for Evolution as they work for legacy skins.

Vue mode required deep knowledge on the internal Evolution application structure, and were extremely fragile. Any bigger change in Evolution JS code base would break all plugins working in vue mode. Removal of plugins in vue mode allows Evolution skin to be upgraded from Vue.js v2 to Vue.js v3.

With this change vue based widget support is also removed. It used to work by creating {level}/widgets/{name}/main.js file. Starting this release main.js files are ignored.

Legacy DB suspension migration task suspendedmysql removed

On each DA upgrade an automatic migration from old DB user suspension mechanism to the new suspension mechanism was performed. Old mechanism is not used for more than 10 years now. This migration is no longer needed.

Migration code used to be triggered by dataskq action action=convert&value=suspendedmysql. This action is removed.

Last Updated: