Table of Contents

About DirectAdmin

DirectAdmin is a graphical web-based web hosting control panel. Learn more about DirectAdmin on their website at

Supported Features

CreateCancelSuspendUnsuspendManagementConfig Options

Installing DirectAdmin

To install the DirectAdmin module, visit [Settings] > [Company] > [Modules] > Available, and click the "Install" button for DirectAdmin.

A message will be displayed, indicating that the module was successfully installed. Then click the "Add Server" button.

Enter the details for your DirectAdmin server.


Field NameDescription
Server LabelEnter a label for this DirectAdmin server, it can be anything you like.
Host NameEnter the FQDN hostname for your DirectAdmin server, i.e. "".
PortThe port for your DirectAdmin server.  Defaults to 2222.
UsernameEnter your DirectAdmin username. This is the username you would log into DirectAdmin with.
PasswordEnter your DirectAdmin password. This is the password you would log into DirectAdmin with.
Use SSL when connecting to the APICheck this option to use SSL for all API requests to your DirectAdmin server. This is highly recommended.
Account LimitEnter the maximum number of accounts that should be added to this DirectAdmin server.
Name ServersEnter the name servers that should be used for this server. These will be available to the package welcome email to the client.
NotesEnter any notes that pertain to this server for future reference.

After filling out these options, click "Add Server" to add your DirectAdmin server.

Server Groups

Server groups are useful for categorizing DirectAdmin servers. When creating a Package, a specific server, or a server group may be selected for provisioning. Blesta will automatically select a DirectAdmin server to provision with when a server group is chosen.

To add a server group, from the DirectAdmin overview at  [Settings] > [Company] > [Modules] > DirectAdmin, click "Add Server Group", then enter the details.

Group Name

Enter the name for this server group.

Add OrderChoose how servers in this group will be selected for provisioning. Currently, first non-full server is the only add order.
Assigned ServersSelect servers under "Available Servers" and click to move them to the left column to add them to the group.

Creating Packages

Packages define the pricing, welcome email, module and more. Packages can be assigned to Package Groups, and added to Order Forms. To create a Package, visit [Packages] > Browse, and click the "Create Package" button.

Creating a Package consists of several sections:


The Basic section consists of the following options:

Field NameDescription
Package NameEnter the name of this Package, it will be visible wherever services are listed and on any order forms.  A separate name can be defined for each language in the system.
DescriptionEnter a Description for this Package. HTML is allowed, and descriptions appear on order forms.  A separate name can be defined for each language in the system.
Status"Active" is the default, "Inactive", and "Restricted" are also available.
Quantity AvailableIf this Package has a limited quantity available, enter the quantity, or leave it as "Unlimited".
Use renewal prices for package upgradesWhen enabled, upgrading to this package will use renewal prices if they are set. The same will apply to any configurable options that are altered in the upgrade. The regular price that will be used in this setting is disabled.
Configurable OptionsSelect the Configurable Option Group you created previously, to make those options available for this package.
ModuleSelect "DirectAdmin" for the module.

Module Options

The Module Options section consists of the following options, which are specific to DirectAdmin:

Field NameDescription
Server GroupSelect "Any" if you wish to specify a specific server, or select the Server Group to provision from. Selecting a group means that accounts will be provisioned from the group. Selecting a group is recommended.
ServerIf "Any" is selected above, select the server this package will use to provision accounts.
Account TypeSelect the appropriate account type, i.e. "User" for standard hosting accounts.
DirectAdmin PackageSelect the DirectAdmin Package to use when configuring accounts. These values are pulled from "Plans" created in DirectAdmin and specify resources for the plan.
IP AddressSelect the IP Address you would like to create the accounts on.


Field NameDescription
TermEnter the term for the desired pricing option. For example, if you wish to create a 3 month pricing option, enter 3 here.
PeriodSelect the period for this pricing option. "Day", "Week", "Month", "Year", and "One time" are options. The client will be invoiced every "term period", for example every 3 months if 3 is entered for term, and Month is selected for period.
CurrencySelect the currency this pricing option is available for.
PriceEnter the price for this pricing option.
Renewal PriceIf enabled, the renewal price will be used for service renewals and possibly prorated service changes, depending on the setting above.
Setup FeeIf there is a setup fee, enter it here.
Cancellation FeeIf there is a fee to cancel early, enter it here.

Click the "Add Additional Price" to add more pricing options. It's common for people to create 1 Month, 3 Month, 6 Month, and 1 Year price options. There are many possible combinations.

Welcome Email

The "Tags" section describes tags that may be used in the welcome email. The welcome email content is inserted into the "Service Creation" email template under [Settings] > [Company] > [Emails] > Service Creation. Only details unique to this service should be entered into the welcome email section for the package.

Sample Email

This sample email could be used in the Package Welcome Email section to help you get started. Be sure to enter content for your welcome email in both the HTML and Text sections.

Your DirectAdmin account is now active, details below:

Domain: {service.direct_admin_domain}
Username: {service.direct_admin_username}
Password: {service.direct_admin_password}

To log into DirectAdmin please visit https://{module.host_name}:2222
Please update your name servers as soon as possible to the following:

{% for name_server in module.name_servers %}
Name server: {name_server}{% endfor %}

Thank you for your business!

When creating or editing a package that uses this module, the following tags will be available:

{module.host_name}The host name of the server that the service was provisioned one.g. ""
{module.name_servers}An array of available name servers for this module

Array elements must be looped over in the email template. See below for an example.

{package.type}The package meta typee.g. "standard", "user", "reseller", etc.
{package.package}The package meta package namee.g. "Bronze"
{package.ip}The package meta IP address
{service.direct_admin_username}The service field for the DirectAdmin account username
{service.direct_admin_password}The service field for the DirectAdmin account password
{service.direct_admin_domain}The service field for the DirectAdmin domaine.g. ""
{service.direct_admin_ip}The service field for the DirectAdmin IP addresse.g. "shared", "assign", or an IP address
{service.direct_admin_email}The service field for the DirectAdmin email address

Displaying Name Servers in the Welcome Email

The {module.name_servers} tag must be iterated over to display the name servers. Email tag usage is elaborated upon on the Customizing Emails page.

Consider an example where the module has two name servers set, named "" and "". The following can be added to the email template to output the name servers:

{% for name_server in module.name_servers %}
Name server: {name_server}{% endfor %}

The welcome email will display this as:

Name server:
Name server:

Group Membership

If this is the first Package you are creating with this module, select the "Create a New Group" option, and enter a Group name. If you are adding a subsequent Package and wish for it to be part of the same group, select "Select from Available Groups", and move the group from the right to the left of the multi-select box.

When finished, click "Create Package" to create this package.

Final Steps

The only thing left to do is to add this Package Group to an order form so clients may place orders for your DirectAdmin servers. See Creating an Order Form for more details.

Port Change?

If you change the port your DirectAdmin server runs on from 2222 to anything else, you must update the port for the module in /components/modules/direct_admin/apis/direct_admin_api.php Find the following line and update as required:

var $apiUrl='http://directadmin-install:2222';

Also look for and update:

$this->apiUrl = rtrim($url, "/") . ":2222";

Change maximum username length

By default Directadmin usernames must be between 4 and 8 characters in length. You can change this by editing /components/modules/direct_admin/direct_admin.php, and within the method "getServiceRules", look for and update the following code block, changing the "8" to the new desired length limit.

                'length' => [
                    'if_set' => true,
                    'rule' => ['betweenLength', 4, 8],
                    'message' => Language::_('DirectAdmin.!error.direct_admin_username.length', true)

Common Issues

  • "That IP does not exist in your list"
    • This can happen after changing the IP of your DA server. Resave each DA package to resolve.
  • No labels