Table of Contents |
---|
About cPanel
cPanel/WHM is a popular and widely used web hosting control panel. Learn more about cPanel/WHM on their website at http://www.cpanel.net/.
Supported Features
Create | Cancel | Suspend | Unsuspend | Management | Config Options |
---|---|---|---|---|---|
YES | YES | YES | YES | YES | YES |
Management Features
This module supports the following management features within the client area:
- Change cPanel Password
- View Disk and Bandwidth usage
Installing cPanel
To install the cPanel module, visit [Settings] > [Company] > [Modules] > Available, and click the "Install" button for cPanel.
A message will be displayed, indicating that the module was successfully installed. Then click the "Add Server" button.
Enter the details for your cPanel/WHM server.
Field Name | Description |
---|---|
Server Label | Enter a label for this cPanel/WHM server, it can be anything you like. |
Hostname | Enter the FQDN hostname for your cPanel/WHM server, ie "server1.domain.com". |
User Name | Enter your WHM username. This is the username you would log into WHM with. |
Token (or Remote Key) | Enter your WHM server API token, found under "Manage API Tokens". You can also use a remote key found under "Setup Remote Access Key", but this is a deprecated authentication method. If using a token, you must select "Everything" if offering reseller accounts. |
Use SSL when connecting to the API | Check this option to use SSL for all API requests to your WHM server. This is highly recommended. |
Account Limit | Enter the maximum number of accounts that should be added to this cPanel/WHM server. |
Name Servers | Enter the name servers that should be used for this server. These will be available to the package welcome email to the client. |
Notes | Enter any notes that pertain to this server for future reference. |
After filling out these options, click "Add Server" to add your cPanel/WHM server.
Server Groups
Server groups are useful for categorizing cPanel servers. When creating a Package, a specific server, or a server group may be selected for provisioning. Blesta will automatically select a cPanel server to provision with when a server group is chosen.
To add a server group, from the cPanel overview at [Settings] > [Company] > [Modules] > cPanel, click "Add Server Group", then enter the details.
Option | Details |
---|---|
Group Name | Enter the name for this server group. |
Add Order | Choose how servers in this group will be selected for provisioning. Currently, first non-full server is the only add order. |
Assigned Servers | Select servers under "Available Servers" and click to move them to the left column to add them to the group. |
Configurable Options Overview
This module supports configurable options which may server settings in cPanel.
Option Name | Possible Values | Recommended Field Type | Description |
---|---|---|---|
dedicated_ip | [0, 1] | Checkbox | Whether to assign a dedicated IP to the server. |
Creating Configurable Options
The following steps describe how to create configurable options. This section describes the following:
- Creating a Configurable Option Group
- Creating Configurable Options, and assigning them to the Group (repeat this step as necessary to create all Configurable Options required)
Creating an Option Group
To create a Configurable Option Group, visit [Packages] > Options, and click the "Create Group" button.
Field Name | Description |
---|---|
Name | Enter a name for this group. |
Description | Enter a description for this group (optional). |
Package Membership | Leave this section blank, we will add the options to the group when creating the options instead. If you have already created the options, you may add them to the group on this step. |
After filling out these options, click the "Create Group" button to create the Option Group.
Creating a Configurable Option
To create a Configurable Option, visit [Packages] > Options, and click the "Create Option" button.
Field Name | Description |
---|---|
Label | Enter a label, which will appear above or next to this form field. |
Name | Enter a name, which is the form field name. (Important! This should match an Option Name described above. The module requires specific naming.) |
Type | Select the field type from "Checkbox", "Radio", "Drop-down", and "Quantity". |
Options Section | Set pricing information within the Options section. The fields required here may vary depending on the "Type" selected above. |
Group Membership Section | Add this Configurable Option to the previously created Option Group by moving the Group from the right to the left in the multi-select box. |
After filling out these options, click the "Create Package Option" button to create the Option. Repeat as necessary to create all of the configurable options you wish to make available to the client during checkout.
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:
Basic
The Basic section consists of the following options:
Field Name | Description |
---|---|
Package Name | Enter the name of this Package, it will be visible wherever services are listed and on any order forms. |
Status | "Active" is the default, "Inactive", and "Restricted" are also available. |
Quantity Available | If this Package has a limited quantity available, enter the quantity, or leave it as "Unlimited". |
Description | Enter a Description for this Package. HTML is allowed, and descriptions appear on order forms. |
Configurable Options | A Configurable Option Group may be selected if previously created, but this module does not support configurable options during provisioning. |
Module | Select "cPanel" for the module. |
Module Options
The Module Options section consists of the following options, which are specific to cPanel:
Field Name | Description |
---|---|
Server Group | Select "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. |
Server | If "Any" is selected above, select the server this package will use to provision accounts. |
cPanel Package | Select the cPanel Package to use when configuring accounts. These values are pulled from "Packages" created in WHM and specify resources for the plan. |
Account Type | Select "Standard" if this is a standard cPanel account, or "Reseller" if it's a reseller account. If selecting Reseller, you'll be asked also to select an ACL as configured in WHM. As of Blesta 4.8, you may also set an "Account Limit", allowing the reseller to create up to this number of cPanel accounts. |
Enable Selling Sub-Domains | As of Blesta version 4.8, it's possible to sell sub-domains under a predefined list of domains. Select "Enable" to enable selling of sub-domains, or "Disable" to allow the client to use their own domain. |
Available Domains List | If "Enable" is selected for the option above, an input field will appear where a comma separate list of domains can be entered, from which the client will be able to choose from. e.g. domain1.com,domain2.com,domain3.com |
Dedicated IP | As of Blesta 4.8, it's possible to include a dedicated IP address for accounts created with this package. Select "Yes" to include a dedicated IP. |
Pricing
Field Name | Description |
---|---|
Term | Enter the term for the desired pricing option. For example, if you wish to create a 3 month pricing option, enter 3 here. |
Period | Select 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. |
Currency | Select the currency this pricing option is available for. |
Price | Enter the price for this pricing option. |
Setup Fee | If there is a setup fee, enter it here. |
Cancellation Fee | If 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 cPanel account is now active, details below: Domain: {service.cpanel_domain} Username: {service.cpanel_username} Password: {service.cpanel_password} To log into cPanel please visit https://{module.host_name}:2083. 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:
Tags | Description | Notes |
---|---|---|
{module.host_name} | The host name of the server that the service was provisioned on | e.g. "domain.com" |
{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 type | e.g. "standard", "user", "reseller", etc. |
{package.package} | The package meta package name | e.g. "Bronze" |
{package.acl} | The package meta access control list | |
{service.cpanel_username} | The service field for the cPanel account username | |
{service.cpanel_password} | The service field for the cPanel account password | |
{service.cpanel_domain} | The service field for the cPanel domain | e.g. "domain.com" |
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 "ns1.domain.com" and "ns2.domain.com". 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: ns1.domain.com Name server: ns2.domain.com
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 cPanel servers. See Creating an Order Form for more details.
Moving cPanel Accounts
If you need to move one or more cPanel accounts to a new or different server, follow these steps:
- Use the copy account feature in WHM to move the account to the new server.
- Make sure the new server has been added to the module under Settings > Company > Modules > cPanel and that the new server and the old server are in the same server group.
- Update your packages so that they are using this server group if they are not already.
- Click to "Manage" each affected service, and an option should appear to change the server to another server in the same server group. This option will only appear if the packages are set up to use a server group rather than a specific server.
- Repeat step 3 until all affected cPanel accounts have been updated to the new server.
- You may remove the old server from the server group, but you should leave it in the module.
- You may update the packages to use the new server specifically, rather than the group if you wish. This will remove the option for changing the server when managing a service, but it will remain attached to the correct server.
Importing cPanel Accounts
It's sometimes necessary to add cPanel accounts to Blesta that were created manually in WHM/cPanel, or in another system. To do so, follow these steps for each account:
- Go to the profile for the client you want to add the cPanel account to [Clients] > [Browse] and click on the client ID, or perform a search.
- Click Add Service under Account Actions on the left, or click the [+] button in the Services widget.
- Select the correct Package for the plan you are adding, and Continue.
- Select the Term, and uncheck the "Send order confirmation" and "Provision using the cPanel module" boxes. You may also wish to select "Do not Invoice" for Invoice method, but this will depend on whether you'd like to create an invoice now or not.
- Enter the domain name and click "Continue".
- The service should be added, now click the Manage icon next to the service on the client's profile page.
- Enter the correct username under the "Username" field, uncheck the "Provision using the cPanel module when activated" option, and save.
- If you need to sync the renew date to a specific day, click on the Manage link for the service again, and select "Change Renew Date" under the Actions drop down. Set the nex renew date, uncheck the "Prorate" option, and Save.
- Repeat for each account.
Common Problems
- When I create or edit a Package using the cPanel module, the cPanel Package dropdown is blank. I have confirmed that my credentials are correct, and the module log under Tools > Logs > Module shows the following response from my WHM/cPanel server: {"package":[]}
- There is reportedly an issue when using a reseller user that will cause the listpkg API call to return an empty set of cPanel Packages if they would cause the reseller account to exceed resource quotas. For example, the number of cPanel accounts, the amount of disk, etc. Ensure that you have not reached any resource limits in WHM/cPanel.