- Created by Dev, last modified on Feb 06, 2021
This document outline the basic installation, configuration and the basic usage of the WHMCS DNS Provider Module
Requirements
In order to use the module's functionality, you will need the following
- DirectAdmin hosting account with ability to create addon domains
- PHP INTL module enabled on your WHMCS server
The DirectAdmin hosting account should not be on the same hosting server you serve your regular hosting with.
Your WHMCS server must have outgoing port to the DirectAdmin account's server (default is 2222) open in order to connect to the DirectAdmin server.
Installation
Upload all the files in the modules folder to your WHMCS /modules/addons and the /modules/server directory.
Language Uploads
The module includes English as the base language. If you wish to translate it to your enabled language in WHMCS. Make a copy of the english.php in /modules/addons/dnsprovideradmin/lang/ to your associated language. For example, french.php. The filename must match to the ones in the WHMCS/lang/french.php
Configuration
Module Activation
Log into your WHMCS admin backend and enable the module by going to Setup → Addon Modules → DNS Provider Admin→ Activate
Once activated, click on Configure and fill in the license key and make any settings adjustment.
Module Options
Option | Description |
---|---|
Verification Mode | Check for domain ownership when a customer add a domain into the database |
Verification Interval | The interval (in minutes) when a domain under verification is checked again during a cronrun |
Allow Manual Domain Verification | Allow for the customer to manually trigger a verification in the client area |
Re-verify Period | Trigger for a re-verification to see if the domain is still set to the allocated nameservers. Set 0 to disable |
Disable Re-Verify Suspension | Enable this to disable the module to NOT suspend the domain on the DirectAdmin server if it fails re-verification |
Disable Suspension Renaming | Enable this to disable the module from suspending the domains on the DirectAdmin server if the customer's service under WHMCS is being suspended |
Unverified Termination Period | The allowable period a domain can go unverified before it is removed from the customer's service. Set 0 to disable. |
Re-verification Termination Period | The allowable period a domain can be unverified (after it enters Re-verify period) before it is removed from the customer's service. Set 0 to disable. |
Migration Task Retry Limit | The amount of retries for a migration task before the task is removed from the queue. |
Migration Task Retry Interval | The interval (in minutes) before re-running a migration task. |
Enable email notification | Allow customer to receive email notification on DNS, Email forwarding, Catch-all changes. |
Email Verify Template | The email template of (Email Destination Verification) |
Notification Email Template | The email template to send for notification |
Re-Verification Template | The email template to send to the client to notify their domain failed re-verification |
Large DB exclusion | When this option is enabled, the Admin panel will no longer load the list of Active domains in the Drop Down search. You will have to fill in the domain manually. This is useful if you have a large domain database |
Fetch from NS on load | When enabled Clients will load records from the DA Server regardless of the local cache |
Fetch from NS on load (Admin) | When enabled Admin will load records from the DA Server regardless of the local cache |
TTL on zone refresh | The order in the Domains menu for the DNS Manager link to appear |
Default TTL | The amount of time (in seconds) before the local cache expires |
Display under Service menu | When enabled it will display the DNS Hosting link under the WHMCS Navigation menu's Services Tab |
Menu Showing Order | The order in the Service menu for the DNS Hosting link to appear |
Search Integration | This option will integrate the domain search into WHMCS intelligent search |
Systemwide Dynamic DNS API | Enable systemwide Dynamic DNS support |
Enable API Force Detection | Enabling this will block an IP if it is exceeding the per hour API limit |
Bruteforce Timer | The amount of seconds to check in the bruteforce log before denying |
Bruteforce Ban Timer | The amount of seconds to ban the IP address from accessing the API |
Enable Web Template | This to be used with domain parking and masked redirection. |
Masked Redirect Hash | The secret hash key you will need to set with the connector_settings.php |
Wanring
Before continuing, make sure the License is filled in properly. Otherwise, it will not function properly.
Adding a Server
Similar to other WHMCS hosting provisioning modules, you will need to add a Server under WHMCS. To do this, go to WHMCS Setup → Products/Services → Servers.
Now create a new server and under Module. Fill in the IP of your DirectAdmin server, select DNS Provisioning Module, fill in the DirectAdmin username/password.
Info
The DirectAdmin username just need to be a regular account with Addon domains capability. It does not need to be have Admin or Reseller privilege.
Nameservers Setup
For the Nameservers, you will need to fill in the nameservers that will be handling the DNS records for this particular DirectAdmin server. See the Advance DNS Cluster guide if you are using DirectAdmin Multi-Server function.
Setting up DNS Hosting Product
Once you have at least one server setup, you may proceed to create a DNS Hosting product. Head to Setup → Products/Services → Products/Services.
Proceed to create a new Product as you would normally, select DNS Provisioning Module
Now proceed with the Module Settings, this is where you would configure this plan's parameters.
Don't forget to set the Welcome Email, Pricing for this plan. Once ready, save it and you are ready to sell your first DNS Hosting.
Cronjob Setup
In order for the module to execute verification and migration functions, the cronjob must be setup to run the cron file.
Setup the following command,
/usr/bin/wget -O /dev/null https://yourWHMCSURL/modules/servers/dnsprovider/dnsprovider_cron.php >/dev/null 2>&1
Change the yourWHMCSURL to your WHMCS URL. Set the cronjob to run every 5 minutes.
If you have a tons of domains using the module, it is advisable to change it to every 15 minutes or longer.
Security Tip
You may want to setup a .htaccess file to block off unwanted IP address from hitting that dnsprovider_cron.php file.
2nd Level TLDs
For some domains such as domain.co.uk, it may be seen as a subdomain by the module. In order to combat this, we have introduced a whitelist file. The file is located in servers\dnsprovider\include.
Open tlddomains.php and you will be able to add your custom 2nd level TLD onto the array.
- No labels