Where are the Lifetime licenses option?

From July the 1st, 2019 we've been forced to drop our loss-leader "Lifetime Licenses" earlier than planned. These licenses were not sustainable to begin with, but with an community-minded & non-abusive customer base like ours, we've managed to offer them for almost 15 years.

Most importantly, we are not taking away anyone's lifetime license, and we are not going to start charging for updates. A promise is a promise. This announcement only relates to the sale of new licenses.

More info and discussion: [https://forum.directadmin.com/showthread.php?t=58091]

What is a Limited license?

A limited license is the same as any other DirectAdmin license type, except that it causes DirectAdmin to have a reduced maximum number of items. You can see your limits, if any are set, at your Admin Level -> Licenses/Updates page.

For the "Lite" and "Personal" license types, the limits are the number of accounts and the number of domains allowed on a server.

Account Limit

The account limit is the total sum of all DirectAdmin accounts on the system. This includes all Users, Resellers and Admin accounts. With the default install, the presence of the 1st Admin account constitutes a total of 1 account on the system. Creating a User below that would then be 2 accounts, etc.

Domain Limits

The number of domains DirectAdmin will count refers to the number of actively used domains on the system for all services. This refers to any Domain or Domain Pointer under at any account's User Level. This does not include stand-alone DNS zones, which have no limit (can be used for DNS clustering, without limits, regardless of the domain limit).

Exceeding your limits

If you've either downgraded your license or somehow ended up with more items than your limit allows, DirectAdmin will go into an over-limit mode, where many core feature are disabled until your remove items to lower your limit.

Disabled features in this 'over-limit' mode GUI:

  • User Level
    • Domain Creation
    • Account Creation
    • Subdomain Creation
    • Modify Domain
    • User Dns Control
    • MX Records
    • DNSSEC Control
    • E-Mail actions
    • DKIM Controls
    • Setting Catch-All
    • Forwarder actions
    • Vacation actions
    • Autoresponder actions
    • Mailing List action
    • User Databases
    • FTP account actions
    • SSL Certificate actions
    • Create Ticket
    • View Ticket
    • close/read Ticket
    • FileManager: various actions
    • actions on Protected Directories
    • Create/Edit Crons
    • Site Redirection
    • Restore Site Backup
    • Rename Domain
    • SSH Keys
    • SpamAssassin
  • Reseller Level
    • IP Manager actions
    • Name Servers
    • Skins page actions
    • Reseller Backup Crons
    • Reseller Backup Restore
  • Admin Level
    • Create DNS Zone
    • Add DNS data
    • IP Manager: Add IP
    • Admin Backup Crons
    • Admin Backup Restore
    • Custom HTTPD actions/view domains
    • Plugin Manager actions
    • Multi-Server Setup actions
    • Move Users between creators
  • Background Tasks
    • All Tally types
    • Cluster Syncs
    • Backup Crons
    • Restore any Backup
    • All LetsEncrypt tasks

Note that the list of features that are disabled when in 'over-limit mode' can change at any time.
The ability to reduce the number of items in the limit will never be disabled, as you're intended to use it to have DirectAdmin return into the normal state.
For most disabled areas, you can usually still delete items. Feature 'actions' refers to a state-change item, often related to a POST.
As you can see, the functionality drops significantly, and we'll likely be adding even more blocks, with the exception of Backup creation scheduled for "Now", Account Deletion, and Domain/Pointer Deletion. Everything else is fair game.

What is a Portioned license?

A Portioned License is one that has a long-term expiry set in the licensing system, but who's actual downloaded license.key file will have a short term expiry. When the short term expiry runs out, DirectAdmin will automatically download a new license for the next time period. This process will repeat until the true expiry, but usually only applies to Lifetime Licenses. Nothing else changes (e.g., payments). A purchased Lifetime License will still be valid forever, it simply requires automated monthly license downloads.

The short term expiry will be 31 days after the moment the license.key is downloaded. If you download a new key 2 days later, the expiry is 31 days after that (always 31 from the moment it's downloaded). For example, if you download the key on day 1, then on day 31, it will be updated. If you download a new key on day 4, then day 34, it will be updated. The short term expiry time is not stored anywhere in our system, it's just a reference from the current time + 31 days.

IP Changes

From April 23, 2019, we now have a new policy where if you change the IP in your license, any updates of the license, within 5 days from changing it, will be portioned to 5 days. DirectAdmin will automatically update itself once or twice until it gets the full 30 portions, as before.

License Expired

If you're seeing "License Expired" when logging into DirectAdmin, this guide offers some tips on how to debug the issue.

  1. Check if the license is actually expired. The simplest way to check is to grab a fresh license.key, as it will not download if not allowed due to license expiration.
    Please enter your License Key (LK):

Then run the following commands:

cd /usr/local/directadmin/scripts
./getLicense.sh "Provided license key should go here"
service directadmin restart

See below for more information regarding the download of licenses.

If the file is 1559 bytes or around ~2k, the file should be correct. The getLicense.sh should throw an error if there is some issue.
If the getLicense.sh script throws an error, or the license.key is not valid, login to your Client Account Areaopen in new window area to ensure the license is active.

  1. Confirm the downloaded license.key has a valid expiry with:
/usr/local/directadmin/directadmin l | grep ^expiry_string=
  1. Check the systemd logs in case there are any issues either connecting to the sessions system, a wrong IP, or invalid license response:
journalctl -u directadmin

Where you'll want to see info licence refreshed successfully every ~4 hours for a working license. (the check interval can change from our end without notice)

  1. If the license.key is correct, try restarting DirectAdmin with a bit of extra force:
cd /usr/local/directadmin
service directadmin stop
killall -9 directadmin
killall -9 directadmin
service directadmin start

The 2x killall commands will ensure it's fully stopped. This is to rule out any PID sync issues (rare, but possible).
Once restarted, try your browser to see if you can login.

  1. Last thing to check would be your system clock. Type

to ensure you're in a valid window of time and not off by days. If you need to reset your system clock, use this guide.

Updating your DirectAdmin license manually

If there are errors extracting the update.tar.gz file, then run head -n 1 /usr/local/directadmin/conf/license.key to search for an error.

If you get errors during the restart, e.g.,

Stopping DirectAdmin: [ FAILED ]
Starting DirectAdmin: [ OK ]

your PID file may be out of sync. In this case, restart directadmin forcefully:

killall -9 directadmin
service directadmin start

Retry the restart command, and ensure that both the "Stopping" and "Starting" sections are "[ OK ]".

Related error message

*** An error has occurred while trying to update the license file ***

My old server does not support new SSL Protocols, but I need to update my license

Older OSs like CentOS 4 do not support TLSv1.2, so will not be able to use https connections for most websites (you should update your OS).

Unable to connect to secure socket
Unable to connect to
Unable to connect to secure socket
Unable to connect to any site for a license update
New License is invalid: Unable to read the contents of the license


You can still get a new license if you do so with http on port 80.

  1. Run the following to create a file to tell the scripts what to do:
echo 1 > /root/.insecure_download
  1. test your getLicense.sh script manually to get a new License by running:
/usr/local/directadmin/scripts/getLicense.sh auto

to ensure it's working correctly.

NOTE: Depending on the age of your script, it might not support the "auto" function or .insecure_download option, so you'd need a newer getLicense.sh script:

wget -O /usr/local/directadmin/scripts/getLicense.sh http://files.directadmin.com/services/all/getLicense.sh
  1. Set up a monthly cron to make this call by editing /etc/cron.d/directadmin_cron file and at the bottom of the file, add the following:
30 8 1 * * root /usr/local/directadmin/scripts/getLicense.sh auto; /etc/init.d/directadmin restart

which should run at 8:30am, on the 1st of each month to get a new license.key file. Restart crond after editing the file:

/etc/init.d/crond restart

Troubleshooting broken license

Because all licenses are portioned, monthly license updates are going to be required to keep DirectAdmin running.

If this process isn't working, we can manually run the update to see why it's not working.

  1. If the cron is running (update is being attempted), but is failing, you should be getting a notice in the Message System with this subject:
An error has occurred while trying to update the license file

If you are not getting such a notice every day, then it's possible that the DA crontab is not working. Use this guide to debug it:

If you are getting the message, there should be an error to go with it.

  1. You can manually test the function used for the automated update of the license. To do this, run:
cd /usr/local/directadmin
echo 'action=update&value=license' >> data/task.queue; ./dataskq d2000

This should attempt the download, and also give you a notice, similar to step #1, above. Check the log for any errors that might not have been given to you in the Message System:

tail /var/log/directadmin/errortaskq.log
  1. If you're running on a LAN, you'll need to ensure you've set the lan_ip option in your directadmin.conf. For example, if your LAN IP is which is used to make outbound connections for your external/license IP, then you would set:
/usr/local/directadmin/directadmin set lan_ip "" restart

in your /usr/local/directadmin/conf/directadmin.conf, and try #2 again.

  1. If you get the message, The IP of this machine does not match the IP in the license file, then the ethernet_dev setting in your directadmin.conf file isn't set up correctly. Type ip a to see which device name your IP is on. Common devices names/formats are: eth0, eth0:1, eth1, venet0:0, etc.. Note that you can specify the sub-device name to get different IPs. Once you know the device name, edit /usr/local/directadmin/conf/directadmin.conf and change (or add) the setting:

where you'd replace eth0 with the name of the ethernet device you should be using.

  1. If it's all still failing, try testing with wget to see if it's perhaps an issue with the DA binaries themselves, or some other setting. Update license manually

Try specifying various local IPs from the /sbin/ifconfig output, and also skipping the 3rd option of getLicense.sh (leave out the IP).

  1. Also manually test these various local IPs with the myip.directadmin.com response to make sure the IP you're binding to actually connects to the correct outbound IP.

  2. At this point, if it's still not figured out, you can contact DirectAdmin Support for assistance. It's very rare that it cannot be figured out, but if not, the last resort is set up another cronjob for monthly calls to getLicense.sh, which you're welcome to do if the getLicense.sh works.

Last Updated: 1/3/2022, 10:09:13 AM