Version 1.31.5

Released: 2008-04-14

~username/ as default new

Update: Default changed in DA 1.32.2 back to 1:

changing the default ~username public_html link back to old default

Original info (older):

Although ~username/ will be the new default, for existing systems, if you wish to use the standard ~username method still, you can add:


to your directadmin.conf and the old fashioned way of handing the link is used.

The internal default will be:


which won't be present in the directadmin as it's the internal default.

This change will convert the link:


to a directory, and links for each domain will be placed inside that.

Note that existing users will not be affected until they do something domain related, like add another one, change the name, or change their default domain.

If they don't touch anything then the link will remain untouched.

Inside the new /home/username/public_html directory will be an .htaccess file.

This .htaccess file will be created via a template in:


You can override this with a custom version, but creating:


and putting whatever you want in it.

Anything in the priority userdir directory is fully template/parsed (see the .htacess for an example)


API for apache handlers: CMD_API_HANDLERS

To add a handler:

method: POST

To delete a handler:

method: POST

To delete an extension from a handler:

method: POST

To view domain handlers:

method: GET

To view system handlers:

method: GET



All commands will be exactly the same as for:


As used in:

Reseller Level -> Nameservers

change the default ns1/ns2 a reseller provides when a user is created:

method: GET or POST


create 2 normal nameservers with selected IPs:

method: POST

create=anything (just has to exist)

create 2 virtual nameservers with selected IPs (it will use the IPs that the main server ns1/ns2 in the admin settings use):

method: POST
create=anything (just has to exist)

delete 2 nameservers:

method: POST

delete=anything (just has to exist)

View the nameservers page:

method: GET or POST

don't pass anything (POST has no use in this case)

output:|| (shows all domains for all reseller's users and the reseller's domains) (the value specified by the reseller for new users)

in summary, the output will have domains, NS1, NS2 as standard, then will have a list of IPs. It would likely be easiest to grab all of the output, read and remove domains,NS1,NS2, then it will leave you with the full list of IPs and their related information.

Email count in bandwidth breakdown new

Relates to:




New item called "email_count" to show the number of emails sent per day.

Also has email_count in the total for the total monthly email sends, based on the bandwidth.tally file (stored in the bandwidth.tally.cache)

The count will show 0 until the bandwidth.tally.cache is recreated. and new

custom scripts: and


user=bob and on HTM files new

directadmin.conf option for and to be run with HTM files. It's off by default, so if you want all_pre/ with HTM files, it would first have to be turned on. Option is:


if you want it. It default to 0 internally (the option won't be present by default).

This will all creation of your own HTM pages with your own root run code in the and if you want to create your own applications that need root access. A plugin could find this very handy. The plugin would have to add HTM pages to the skins/skinname/files_custom.conf to be safe from DA updates overwriting them. Each skin would need a files_custom.conf if they are all to have custom HTM pages.

include package details along with package names in the API for the name list new

Relating to:



Simly adding the extra option:



will generate a full double encoded output of all packages, with all package details.

This will greatly speed things up if you're trying to get all packages data for those packages, as it can be done in 1 hit, instead of 1 hit per package.

name value accepted at creation time new

If the "name=Bob" value is passed at creation time, the account's "name" will be set to it. There won't be a form entry in DA, but you can add one if you wish. Also, it will work for API requests that assemble requests on their own.

Added /.Trash folder for the purge_spam_days option new

Appended to the feature to clear out old spam and old trash email if you have dovecot, added the .Trash folder to the list. .INBOX.Trash and .INBOX.spam are already used.

The User History and Reseller History links on the stats pages are often hard to notice. Changed to a button type so people know they exist.

CMD_API_TICKETS were not returning leading 0s fixed

In the full list of tickets in the CMD_API_TICKETS output, the leading zeros were removed. When the number without zeros is used to get a ticket, DA said it was invalid since the 0's were missing. This fix returns the ticket numbers with leading zeros so that ticket requests work.

change ncftpput to use the -f config option for ftp info fixed

in the script:


I've change the way the user login info is passed to ncftpput.

The "-f config" method is now used so as to prevent people seeing the login info from a process list output:

rm -f $CFG
touch $CFG
chmod 600 $CFG
echo "host $ftp_ip" >> $CFG
echo "user $ftp_username" >> $CFG
echo "pass $ftp_password" >> $CFG

$FTPPUT -f $CFG -t 25 -m "$ftp_path" "$ftp_local_file" 2>&1
Last Updated: