Create packages and cPanel accounts in WHM
A package is a named set of limits that you apply to a client's cPanel account. Build one for each plan you sell, and every new client takes about two minutes. Change a package later and every account on it follows.
Before you start
- Your WHM login from the reseller welcome email.
- Your private nameservers set up, so new accounts carry your brand from the start.
- For each client: the domain name and a contact email address that isn't on that domain.
Plan your WHM hosting packages
A package doesn't hold a price; you bill your clients yourself. It should still mirror the plans on your own price list, because that is how you'll think about clients later. Three tiers cover most agencies:
| WHM setting | Starter | Business | Store |
|---|---|---|---|
| Disk Quota (MB) | 2048 | 5120 | 10240 |
| Max Email Accounts | 5 | 25 | 100 |
| Max Quota per Email Address (MB) | 1024 | 2048 | 2048 |
| Max SQL Databases | 2 | 10 | 25 |
| Max Addon Domains | 0 | 3 | 10 |
| Max Sub Domains | 5 | 20 | 50 |
| Monthly Bandwidth | Set to Unlimited: reseller bandwidth is unmetered under our fair-use policy | ||
Disk quotas come out of your plan's storage pool (50, 120 or 300 GB), so add up what you've promised before you sell another large package.
Name packages after what you sell, not what's in them. WHM saves reseller packages with your username in front, such as yourus3r_business. Call it "business", not "5gb-25mail", and you can raise the limits next year without renaming anything.
Step 1: Make a feature list (optional)
A feature list decides which cPanel icons a package shows. Skip this step if every client should see everything.
-
Open Feature Manager
Go to WHMPackagesFeature Manager, type a name such as
starterunder Add a new feature list and click Add Feature List. -
Untick what this tier shouldn't have
For an entry-level package you might turn off Terminal and SSH Access, then click Save. A feature list can only hide features. It can't give a client anything your reseller account doesn't have.
Step 2: Add a package
-
Open Add a Package and name it
Go to WHMPackagesAdd a Package and enter a Package Name.
-
Fill in Resources
Enter the values from your plan. Every field has an Unlimited option; avoid it for Disk Quota, or one client can fill the storage your whole plan shares.
Add a PackageSaved as yourus3r_businessPackage NamebusinessDisk Quota (MB)5120Max Email Accounts25Max SQL Databases10Feature Listbusiness ▾cPanel Themejupiter ▾Dedicated IPShell AccessDigest AuthenticationAddExample values for a mid-tier package. Your own limits are up to you. -
Choose the settings, then click Add
Pick your Feature List and leave the theme on jupiter. Leave Dedicated IP unticked unless we've added spare IPs to your account, and keep Shell Access off unless a client needs Git or WP-CLI.
Step 3: Create a cPanel account for a client
-
Open Create a New Account
Go to WHMAccount FunctionsCreate a New Account and enter the client's Domain without
www. -
Check the username, set a password and email
WHM suggests a Username from the domain. It can have up to 16 lowercase letters and digits, must start with a letter and can't start with
test. Use the Password Generator, and put the client's own address in Email so cPanel notices reach them. -
Choose the package and DNS options
Select the package under Choose a Package. In Mail Routing Settings, keep Automatically Detect Configuration unless the client's mail stays with Google Workspace or Microsoft 365 (then choose Remote Mail Exchanger). In DNS Settings, leave DKIM and SPF on.
Domainclientdomain.inUsernameclientdo availableEmailowner@clientmail.comChoose a Packageyourus3r_business ▾Enable DKIMEnable SPFAutomatically Detect ConfigurationCreateWHM fills in the username for you; shorten it if you like, within the rules above. -
Click Create and send the client their login
The summary lists the account's IP and nameservers. Once the domain points at your nameservers, the client logs in at
https://clientdomain.in:2083and webmail is at port2096. Send the password separately from the username, and ask the client to change it on first login; they can also change PHP version in cPanel themselves if their site needs a different one.
CPU, memory and process limits
Disk, mailboxes and databases are yours to set in packages. CPU, memory, entry processes and inodes are ceilings for each account, enforced by CloudLinux and fixed by your plan:
| Per cPanel account | RS-25 | RS-60 | RS-150 |
|---|---|---|---|
| CPU | 1 vCPU | 2 vCPU | 2 vCPU |
| RAM | 1 GB | 2 GB | 3 GB |
| Entry processes | 20 | 30 | 40 |
| Inodes (files and folders) | 200,000 | 300,000 | 400,000 |
They are maximums, not reservations, so an idle site uses almost nothing. Clients can see their own usage in cPanelMetricsResource Usage. If one client genuinely needs more, open a ticket and we can raise that account within your plan. Full figures are on the reseller plan limits table.
Upgrade, suspend or remove an account
| To… | Go to WHM › | What happens |
|---|---|---|
| Move a client to another package | Account Functions › Upgrade/Downgrade an Account | New limits apply at once; files and mail are untouched. |
| Change a whole tier | Packages › Edit a Package | Every account on that package gets the new limits. |
| Give one client an exception | Account Functions › Modify an Account | Custom limits for that account only. |
| Pause an unpaid account | Account Functions › Manage Account Suspension | The site shows a suspension page and logins stop. Nothing is deleted. |
| Bring it back | Account Functions › Manage Account Suspension | Click Unsuspend; the site returns immediately. |
| Remove for good | Account Functions › Terminate an Account | Files, databases and mail are deleted. |
Terminating can't be undone from WHM. Download a full backup of the account first (cPanelFilesBackup), or suspend it for a few weeks before you terminate. Download a full account backup shows how.
Bring existing clients across
Do it yourself
Both tools are under WHMTransfers. For a client whose old host gave them a cPanel login, use Copy an Account From Another Server With an Account Password. To pull several accounts from a server you control, use Transfer Tool. Afterwards, check each account's package in Upgrade/Downgrade an Account.
Let us do it
cPanel-to-cPanel migrations onto reseller plans are free, however many accounts you bring. We copy each account in 24–48 hours and test it on a temporary URL before any DNS changes. Start on the free migration page; Migrate your website explains the process.
Troubleshooting
WHM says I can't create any more accounts
You've reached your plan's account count (25, 60 or 150) or allocated its storage pool. Terminate accounts you no longer need, lower oversized quotas, or move up a plan from the client area: RS-25 to RS-60 or RS-150 happens in place, on the same server and IPs, and you pay the difference for the rest of the term.
The username is rejected
It's longer than 16 characters, starts with a digit or with test, contains a capital letter or symbol, or is already taken on the server. Shorten it and try again; the client never needs to type it if they log in through their own domain.
A client's site shows "508 Resource Limit Is Reached"
The account hit its entry-process or CPU ceiling, usually from uncached traffic, a heavy plugin or a runaway cron job. Check cPanelMetricsResource Usage, turn on LiteSpeed Cache for WordPress sites, and open a ticket if it keeps happening.
A new account shows VirtualCloud's nameservers instead of mine
It was created before your private nameservers were saved in WHM. Edit its zone in WHMDNS FunctionsEdit DNS Zone, and follow Set the nameservers in WHM so future accounts get them automatically.
The client can't reach cPanel at their domain
The domain isn't pointing at the server yet, or the account is suspended. Until DNS has switched, the client can log in through the server hostname shown in the account summary, on port 2083.
Was this guide helpful?Your answer stays in this browser; nothing is sent unless you write to us below.
Related guides
All 16 guidesStill stuck? Ask an engineer.
Reseller tickets go to a priority queue, answered 24/7 in English and Hindi. Include the cPanel username and the WHM screen you were on.