Child pages
  • Quickstart Development Guide - cPanel
Skip to end of metadata
Go to start of metadata

Introduction

Custom cPanel applications can automate and customize website management functions.

 Third-party developers can create cPanel applications for distribution to their customers in the hosting community. Server owners may want to create private applications in order to offer special functionality for their customers or integrate business functions into the cPanel interface.


Note:

You can also customize cPanel's default interfaces. For more information about custom styles, branding, UI includes, and other customizations, read our Guide to cPanel Interface Customization and Branding documentation. 

 

Get started developing for cPanel 


 

Get a development license.

If you do not already have access to a cPanel & WHM server, get a development license and install cPanel & WHM.

Some cPanel developers will require root-level access to the server in order to troubleshoot their custom code.

 


 

Get to know the cPanel APIs.

Almost all cPanel development projects require the use of one of our cPanel APIs. The cPanel APIs contain functions that access all of the functionality that users can find in the cPanel interface.


Warning:

Do not attempt to use cPanel or WHM interface URLs to perform actions in custom code. You must call the appropriate API functions in order to perform the actions of cPanel & WHM's interfaces.

For example, do not pass values to .html pages, as in the following example:

http://example.com:2082/frontend/x3/mail/doaddpop.html/email=name&domain=user.com

While this unsupported method sometimes worked in previous versions of cPanel & WHM, we strongly discourage its use and do not guarantee that it will work in the future. Instead, the correct method to perform this action is to call the appropriate API function.

  • We encourage all developers to use our newest cPanel API, UAPI
  • If you cannot find the desired function in UAPI, look for it in cPanel API 2. (cPanel API 1 is deprecated.)
  • You can call cPanel's APIs through your web browser in a cPanel or Webmail session, through custom scripts or modules, or cPanel's API Shell interface (cPanel >> Home >> Advanced >> API Shell).

Ready to get started?

Read our Guide to UAPI documentation.

 


 

Try out the Standardized Hooks system.

Many cPanel development projects use the Standardized Hooks system's Cpanel functions. You can create Standardized Hooks for any cPanel API 2 or UAPI functions and cause them to trigger your own custom code in order to customize cPanel's functionality.

  • You can write Standardized Hooks as custom Perl modules, or as Perl or PHP scripts.
  • Standardized Hooks can trigger before or after cPanel API functions or cPanel interface actions.

Ready to get started?

Read our Guide to Standardized Hooks documentation.

 


 

Write your application's backend code.

After you become familiar with cPanel's APIs and Standardized Hooks, you can write your application.

  • Most developers write cPanel & WHM applications in PHP or Perl. 
  • If you develop in Perl, read our Guide to Perl in cPanel & WHM documentation.
  • Applications that integrate with cPanel must authenticate as a cPanel user, or must authenticate as a WHM user and specify a cPanel user to run as, if you call a cPanel function via the WHM API. For more information, read our Guide to API Authentication documentation.

 


 

Add interfaces to cPanel.

Developers can add interfaces to cPanel, and add their icons to cPanel's Home interface.

  • We recommend that you write cPanel interfaces in Template Toolkit templates.
  • cPanel & WHM's locale system can localize interfaces as well as command line output, which allows you to make your application usable globally.

You can also customize cPanel's default interfaces. For more information about custom styles, branding, UI includes, and other customizations, read our Guide to cPanel Interface Customization and Branding documentation.

Ready to get started?

Read our Guide to cPanel Plugins documentation.

 


 

Register your application.

Many scripts and some applications do not need to register if they run only in the background or from the command line. You only need to register your application if it includes a custom interface.

When your application is ready, if you need to register it in the cPanel interface, use the install.json file method to register it.

 


 

Test your code.

Warning:

cPanel Technical Support cannot always assist third-party developers with problems that relate to custom code. For this reason, always test your projects thoroughly before you attempt to use them on production servers. 

You can avoid many common issues when you test your code regularly throughout the development process. Make certain that you evaluate the testing requirements of your own code, and allow its functionality to determine the appropriate steps.

For suggested testing steps, read our Guide to Testing Custom Code documentation.

 


 

Need more help?

Several options are available if you need help with a development project:

If you think that you found a bug in an API or another cPanel development tool, contact cPanel Technical Support with your issue.