Menu

cPanel / WHM.

the tab nobody admits to having open

Two of my thirty projects needed this, and it is the rarest thing I do. Automating cPanel and WHM means writing code against an authority you do not control, for weeks, to deliver something no customer will ever consciously notice. The alternative is cheap and obvious: someone on your team opens the registrar portal in another tab and does it by hand. That tab is where a platform's promise quietly breaks — the signup that said your site is live in minutes now depends on somebody being awake.

Projects
2 of 30
Role in my stack
Provisioning layer
Best for
Hosting & multi-tenant platforms
Form to live site
~30 minutes
Where it shines

Accounts that create themselves

On a Finnish hosting platform I automated cPanel account creation, storage and usage management, and DNS updates. No console, no checklist, no member of staff — the platform provisions its own customers.

The full .fi domain lifecycle

Availability, purchase, renewal, nameservers, transfer keys, contacts — all of it through the Traficom registry API. Nobody logs into a registrar portal. That one sentence took weeks of work, and it is the entire point.

Isolation that is real

On a multi-tenant association platform, every tenant gets its own cPanel account, its own database, and its own file storage. Separation at the account level, not a tenant_id column and a hope.

Form submission to live site in ~30 minutes

Fully automated, master data seeded, ready to use. That half hour is machines waiting on other machines — provisioning, DNS, propagation — not a person working through a runbook.

Ecosystem & tools I use with it
cPanelWHMWHM APIcPanel UAPITraficom registry APIDNS / nameserversLaravelMySQLQueuesCron
When I reach for it
01
A hosting platform with real customers

If your product sells hosting, provisioning is the product. It cannot depend on someone being at a keyboard.

02
Domains as part of signup

Registry APIs are unglamorous, strict, and unforgiving. Done properly, the customer types a domain name and it works.

03
Multi-tenancy that must actually be isolated

Separate cPanel account, separate database, separate storage — for when a shared row is not an acceptable answer to your customers or your regulator.

04
Removing the manual step nobody admits to

Most platforms have one: a portal, a tab, a person who knows the process. It works until volume, holidays, or staff turnover finds it.

How it fits together

Laravel does the thinking; cPanel and WHM do the hosting. The application decides what a customer should have, then drives the WHM and registry APIs until that is true — accounts, databases, storage, DNS, domains. The failure cases matter more than the happy path: a registry call that timed out has still possibly succeeded, and the platform has to work that out for itself.

Provisioning runs on queued jobs, so a slow registry call never blocks a signup form.
Each tenant gets an isolated cPanel account, database, and file storage.
The registry is the source of truth for domains; my database reconciles against it rather than assuming.
Straight answers what clients actually ask
"We are on Docker and Kubernetes. Should we use cPanel?"

No. If you are on modern container infrastructure, cPanel is the wrong world — you already have the primitives to provision, isolate, and deploy, and cPanel would fight all of them. This work is for platforms that sell cPanel hosting, or that need per-tenant isolation on it.

"Why would this take weeks?"

Because a registry is an authority, not a library. It has its own rules, its own timings, and its own idea of what a valid contact is, and it does not care about your deadline. Most of the work is handling failure in a system you cannot debug and cannot change.

"Can we not just do this part by hand?"

You can, and most teams do. It works at low volume, in office hours, while the person who knows the process is still employed. It stops working at roughly the moment growth makes it expensive to fix.

Work built with cPanel / WHM
Automated hosting, domain and WordPress platform with registry integration a Finnish hosting provider Multi-tenant association platform with per-tenant cPanel and database isolation a Finnish association management vendor
Official cpanel.net ↗ Documentation ↗

In my work

Two projects, and the reason this page exists: a Finnish hosting platform running the full .fi domain lifecycle through the Traficom registry, and a multi-tenant association platform where every tenant gets an isolated cPanel account, database, and storage — form submission to live site in about thirty minutes, with nobody logging into anything.

Discuss a project ↗
More from the stack
Laravel ↗MySQL ↗