How to Start a Web Hosting Business in 2026 with WHMCS and DirectAdmin

A practical build order for a small hosting brand: reseller plan, private nameservers, DirectAdmin packages, WHMCS products, mail records and a test order.

Published
Reading time
6 min

The business side of starting a host (who to sell to, what to promise, the legal basics) is in our earlier guide on how to start a web hosting business. This post is the build: the exact pieces of a WHMCS and DirectAdmin stack, the order to set them up in, the fields that matter, and the checks to run before a paying customer touches any of it.

The stack and who does what

A small hosting brand in 2026 is four parts, and only the first is someone else's to run.

Part What it does Who runs it
Servers, network, backups, CloudLinux Keeps sites online and isolated Your provider
DirectAdmin, Reseller Level Creates and limits customer accounts You, in a browser
WHMCS Orders, invoices, payments, automatic setup and suspension, tickets You
Brand domain, nameservers, mail What the customer sees You

DirectAdmin has three levels: Admin (the server owner), Reseller (you) and User (your customer). A reseller plan gives you the middle level. WHMCS logs in to DirectAdmin with your reseller credentials and does what you would otherwise do by hand: create the user when an invoice is paid, suspend it when one is overdue, terminate it when the service is cancelled.

What it costs to start

Using our own reseller plans as the worked example (US dollars, VAT included):

Item Monthly What you get
Partner Start $15.99 10 customer accounts, 15 GB SSD, 300 GB traffic
WHMCS Starter licence add-on $13.90 Billing for up to 250 clients
Fixed cost $29.89

Divide by ten accounts and each one costs you $2.99 a month with billing included. At a selling price of $8 a month you cover the fixed cost with four customers (4 × $8 = $32).

The other sensible entry point is Partner Pro paid annually: $449.90 a year, which is $37.49 a month, for 50 accounts with the WHMCS licence included rather than added. That is $0.75 per account at full occupancy. Start small if you have no customers yet; go straight to the annual plan if you are moving an existing portfolio.

Step 1: brand domain and private nameservers

Register the brand domain first, because everything else hangs off it. Then create nameserver names on it so customer domains point at ns1.yourbrand.com and not at your provider's names.

In DirectAdmin: Reseller Level → Account Manager → Name Servers. Enter the two names and use the IP addresses your provider gives you for the purpose. The resulting records in your brand zone look like this:

ns1.yourbrand.com.   3600  IN  A   203.0.113.10
ns2.yourbrand.com.   3600  IN  A   203.0.113.11

Then log in at the registrar of yourbrand.com and register the same two names as host records (also called glue records or child nameservers) with the same IPs.

Check from outside:

bash
dig +short NS yourbrand.com
dig +short A ns1.yourbrand.com
dig +short A ns2.yourbrand.com
dig SOA yourbrand.com @ns1.yourbrand.com +norecurse

The last command should return an answer with the aa flag set. If it times out, the glue or the A records are wrong.

Tip: do this on day one. Changing them for 30 live domains later is 30 emails and several domains that nobody updates.

Step 2: packages in DirectAdmin

A package is a set of limits you attach to a user. Create them under Reseller Level → Account Manager → Manage User Packages → Add Package. Three is enough:

Package name Disk Traffic Domains Mailboxes
starter 1 GB 20 GB 1 5
business 3 GB 50 GB 3 20
plus 5 GB 100 GB 5 50

Keep the names lowercase, short and free of spaces. WHMCS matches a product to a package by name, exactly, and a package called Business Plan with a trailing space is a failed provisioning waiting to happen. The full form is in creating packages and user accounts in DirectAdmin.

Two limits are not yours to set freely. The plan's storage and traffic are a pool across all your users, and the daily outgoing mail limit (500 a day on Partner Start) is also shared across every account you create. You cannot give a package a higher mail ceiling than the plan has.

Step 3: connect WHMCS to DirectAdmin

Install WHMCS on a subdomain of the brand, for example billing.yourbrand.com, with HTTPS in place before you log in for the first time. WHMCS needs the ionCube Loader and a PHP version its release supports; check the WHMCS system requirements and pick that version for the domain in DirectAdmin. We supply the licence, not the installation, so plan an hour for this yourself.

Add the cron job straight away. Without it nothing is invoiced, suspended or reminded:

*/5 * * * * php -q /home/USERNAME/domains/yourbrand.com/public_html/billing/crons/cron.php

Adjust the path to where your crons directory actually lives. If invoices do not appear the next morning, start with WHMCS cron not running.

Now the server. In System Settings → Servers → Add New Server:

Field Value
Module DirectAdmin
Hostname The panel hostname from your welcome email
Username / Password Your reseller login
Secure Ticked (HTTPS)
Port 2222 unless told otherwise
Nameservers ns1.yourbrand.com, ns2.yourbrand.com

Press Test Connection before saving. Then create a product under System Settings → Products/Services: type Shared Hosting, your price on the Pricing tab, and on the Module Settings tab choose the DirectAdmin module, the server, and the package name exactly as it is spelled in DirectAdmin. Select the option to set the product up automatically when the first payment is received. Pricing cycles and options are covered in WHMCS products, pricing and configurable options.

Tip: the nameserver fields on the server record feed the welcome email. Leave them blank and your first customer receives an email with empty nameserver lines.

Step 4: mail records for the brand

Invoices and welcome emails come from your brand domain, and an invoice in the spam folder is an unpaid invoice. DirectAdmin creates SPF and DKIM records when DNS for the domain is hosted on the server; confirm they exist and add DMARC:

yourbrand.com.               IN  TXT  "v=spf1 a mx ip4:203.0.113.10 ~all"
x._domainkey.yourbrand.com.  IN  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBg..."
_dmarc.yourbrand.com.        IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@yourbrand.com"
bash
dig +short TXT yourbrand.com
dig +short TXT x._domainkey.yourbrand.com
dig +short TXT _dmarc.yourbrand.com

Send a WHMCS test invoice to a Gmail address and read the original message: SPF, DKIM and DMARC should each say pass. What the three records do is in SPF, DKIM and DMARC explained.

Step 5: place a test order

Before telling anyone the shop is open, be your own first customer.

  • Order the cheapest product as a new client with a domain you control.
  • Pay the invoice with the real gateway, not a manual "mark paid".
  • Confirm the user appears in DirectAdmin under List Users with the right package.
  • Read the welcome email as a customer would: panel address, username, nameservers.
  • Log in to the panel with those details and install WordPress.
  • In WHMCS, run Suspend on the service, check the site shows the suspended page, then Unsuspend.
  • Refund yourself and run Terminate. Confirm the user is gone.

Tip: the suspend test is the one people skip. Automatic suspension is how you get paid without chasing anyone, and it is better to find out that it fails on your own account.

What to leave for later

Domain registration through WHMCS, configurable options, affiliate schemes and a custom client area theme can all wait. None is needed for the first ten orders. Get one product provisioning cleanly, then add the second.

#business#reseller-hosting#whmcs#directadmin#white-label

Keep reading

More from Hosting Business

All guides

Hosting Business

How to Start a Web Hosting Business in 2026 (Step by Step)

What a hosting business really is, the reseller route that needs no servers, the numbers behind a viable plan, the legal basics and the first 90 days.

4 min read →

DirectAdmin

How to Create Packages and User Accounts in DirectAdmin

Reseller and user packages in DirectAdmin, the limits inside them, creating a reseller and a user, shared versus owned IPs, and suspending or deleting accounts.

4 min read →

DirectAdmin

How to Change the PHP Version and Settings in DirectAdmin

Install several PHP versions with CustomBuild, pick one per domain in DirectAdmin, raise memory_limit and upload sizes, and check what is actually in effect.

5 min read →