We have a new documentation site for cPanel & WHM! You can find our new documentation site at docs.cpanel.net.

We will continue to maintain our API documentation on this server.

Child pages
  • The servicedomains Script
For cPanel & WHM version 76

Skip to end of metadata
Go to start of metadata


The /usr/local/cpanel/scripts/servicedomains script allows you to create service subdomain Domain Name System (DNS) records for a cPanel, WHM, or Webmail account from the command line.


  • In cPanel & WHM version 76, we renamed proxy subdomains to service subdomains. This name more clearly describes the subdomains’ purpose rather than a specific implementation.
  • You can still run the /usr/local/cpanel/scripts/proxydomains script.

This script adds the required DNS records for the subdomains to the main domain's records, but it does not create a VirtualHost entry in the /usr/local/apache/conf/httpd.conf file.


This script only adds or removes the DNS entries for service subdomains.

  • By default, WHM automatically creates service subdomains for new users. To prevent this, you must disable the Service subdomain creation setting in the Domains section of WHM's Tweak Settings interface (WHM >> Home >> Server Configuration >> Tweak Settings).
  • To disable service subdomains that already exist, you must override the current service subdomain. For example, redirect the cpanel.example.com subdomain to the example.com domain.


You cannot add the cpanel, whm, or webmail service subdomains for addon or parked domains (aliases). You can only add cpcontacts, cpcalendar, and webdisk service subomains to addon and parked domains (aliases).

Run the /scripts/servicedomains script

To run the /usr/local/cpanel/scripts/servicedomains script from the command line as the root user, use the following format:

/usr/local/cpanel/scripts/servicedomains [action] [options]


You can use either of the following actions:

addCreate a service subdomain.

Remove a service subdomain.



  • If you do not specify a user, this script attempts to configure the DNS records for every service subdomain on every cPanel account on the server.
  • If you specify a user but you do not specify a domain, this script attempts to configure the DNS records for every service subdomain on the user's account.

The following table lists the options that you can pass with this script:


The account for which to configure the user's domains.


The domains to configure.


The service subdomain that you wish to configure.


If you do not specify a subdomain, the script adds or removes DNS records for the following subdomains:

  • cpanel.example.com
  • whm.example.com
  • webmail.example.com
  • cpcalendars.example.com
  • cpcontacts.example.com
  • webdisk.example.com


Whether to allow the replacement of existing records.


  • Always pass 0 as this option's value.
  • Only use this option to change Autodiscover hosts.


The Autodiscover host that you previously configured.

Whether the script should function as though you enabled Autodiscover support, even if you disabled it.


  • Always pass 1 as the value for this option.
  • Only use this option to remove the domain's Autodiscovery service subdomains after you disable its support.


Only perform the operation if service subdomains are enabled.



For example, to add the service subdomain webdisk.example.com for the cPanel user john, run the following command:

/usr/local/cpanel/scripts/servicedomains add --user=john --subdomain=webdisk --no_replace=0 --force_autodiscover_support=1 --ifenabled

The output resembles the following example:

Adding service subdomains for user john.


The options that you pass to the command determine its output.

Additional records

The /usr/local/cpanel/scripts/servicedomains script adds additional entries to the DNS records if you enable the Thunderbird and Outlook autodiscover and autoconfig support (enables service subdomain and SRV record creation) setting to in the Domains section of WHM's Tweak Settings interface (WHM >> Home >> Server Configuration >> Tweak Settings). When you enable this setting, this script also adds the following entries:

Record typeEntry
A records
  • autoconfig
  • autodiscover
SRV and TXT records
  • _caldav._tcp
  • _caldavs._tcp
  • _carddav._tcp
  • _carddavs._tcp
SRV records


Additional documentation

There is no content with the specified labels

Error rendering macro 'contentbylabel'

parameters should not be empty

There is no content with the specified labels