White-label runbook · Advanced · 45 minutes of setup
How to deploy a site with git — Deploying Into an Account, Not Onto a Server
You provisioned the cPanel account, you hold the SSH key, and the client wants to know what happens if a release goes wrong.
Straight answer first
Deploy into the client's own cPanel account over SSH rather than treating it as a server you own: one repository per client site, a .gitignore that excludes uploads and environment files, and tagged releases so what is live right now always has an exact answer. Git, SSH and Composer sit on the plans built for developers, so clone-and-pull behaves inside an account you provisioned exactly as it does on a virtual server.
You get the steps in the order a paid job needs them, the snag that quietly eats the margin, and what to record so the account can be handed on. The parts WHM and the panel already handle are marked as handled.
Written by the Hosting Seller staff · Checked 24 August 2026
Advanced
Hand on the keyboard
Quick
Billable time, per account
5
Stages in the runbook
24/7
Cover for you and for them
This runbook assumes you are doing the job on somebody else's site and billing for it. Allow 45 minutes of setup, and read the whole thing once before you open a live client account.
Where a step is safe to template across every account on your list, it says so. Where it changes what the client sees, it says that too.
One repository per account, and why that matters
Client sites are separate businesses, so keep them separate all the way down: one repository, one key, one document root inside the cPanel account you provisioned. A single repository holding several clients' code is convenient right up until one of them asks for theirs.
Separation is also what makes an exit clean. Hand over the repository and the account, remove your key, and nothing is left tangled that needs a conversation.
Secrets are what end client relationships
An environment file that reached a remote repository is compromised by definition, and on a client project the credentials in it are usually not yours to expose. Database passwords, gateway keys and mail credentials all belong outside version control from the very first commit.
Use ignored files or environment variables, and keep the values in the same password manager that holds the account credentials. If a secret does reach a repository, rotate it rather than rewriting history, because history is not the part that matters.
Rollback is the promise you can actually keep
Tag releases rather than deploying from a moving branch. Rollback then becomes a named, deliberate target instead of an archaeology exercise, and you can tell a client that yesterday's version goes back in under a minute and mean it.
Rehearse it once, on a staging copy, with nobody watching. A rollback you have never performed is a claim rather than a capability, and clients can tell the difference at exactly the wrong moment.
What Git does not carry
Git versions code, not data. The client's database follows its own backup and migration path, and their uploads directory syncs separately or simply stays where it is. Code by Git, data by backups, media by sync — three routes, deliberately kept apart.
The daily backup on the account covers the data half, and restores run from the panel in minutes. Between the two you can describe your deployment and recovery story to a client in four sentences, which is usually four more than they have heard before.

The reseller platform this runbook is written on
Every runbook on this shelf is written against the platform we actually run: WHM for you, a cPanel of their own for every client, LiteSpeed cache in front and NVMe underneath. The screens in the instructions are the screens your client will see.
Private nameservers run under your own brand, so nothing in the panel, the account or the login page points a client anywhere except back at you.
- NVMe underneath, LiteSpeed in front
- Account caps of 100, 250 or 500 by tier
- Migration in, done by our staff, free
- Real people answer, round the clock
Why Hosting Seller
On every plan, as standard
Separation all the way down
One repository, one key and one account per client, so an exit is a handover rather than an untangling.
The handover note is part of the job
Each runbook ends with what to write down, because an account you cannot document is an account you cannot hand on or sell.
Five stages, no padding
Every stage is a decision or a command, with the genuinely fiddly parts marked fiddly.
A rollback you have actually performed
The rehearsal is part of the job, because a recovery you have never run is a claim rather than a capability.
Tested on the platform you resell
WHM, cPanel, LiteSpeed, Softaculous: the screens in the runbook are the screens inside the account you sold.
Figures you can safely repeat to a client
Uptime targets, guarantee windows and account limits are stated as they actually are, so nothing you quote comes back at you later.
First Steps
From choosing to live
- 1
One repository per client site, with a real ignore list
Exclude the uploads directory and every environment file before the first commit. Deployment discipline starts as repository discipline, and the first commit is where it is easiest to get right.
- 2
Clone into the account you provisioned
Over SSH, into the document root or a releases directory inside the client's cPanel account. Git, SSH and Composer are on the plans built for developers, so this needs no separate server.
- 3
Deploy with a pull, then automate it
A pull on the server brings the account up to whatever you pushed. A webhook or post-receive hook turns that into push-to-deploy, and the deploy script can run builds while it is in there.
- 4
Tag every release
Version tags rather than a moving branch, so what is live on this client's account has an exact answer and rollback has a named target.
- 5
Rehearse the rollback, then write it into the handover
Check out the previous tag on a staging copy and confirm the site comes back. Then put the one-line rollback procedure in the account note, where whoever is on call can find it.
In the Box
Packed with every plan
- Real people on the counter, for you and for them
- 300 GB, 600 GB or 1.5 TB of bandwidth by tier
- Site migration done for you by our staff, at no charge
- Staging copies, so changes get tested before clients see them
- DDoS filtering handled out at the network edge
- Private nameservers running under your own brand
- Packages you build, name and price yourself
- Daily backups taken across every client account
- Softaculous in every account you create
- Client-account caps of 100, 250 or 500 by tier
Across the Counter
Things people ask us all the time
Does this work on the accounts I sell, or only on a virtual server?
On the accounts. Git, SSH and Composer are on the plans built for developers, so clone-and-pull behaves exactly as it does on a VPS. The hook automation options vary with the environment, but push, pull and roll back are all available.
Where do I keep a client's environment secrets?
Outside the repository, in ignored files or environment variables, with the values in the same password manager that holds the account credentials. If a secret does reach a repository, rotate it — removing the commit does not un-share it.
What happens to the client's uploads and database?
Neither belongs in Git. The database follows the backup and migration path — a backup is taken daily on every plan and restores run from the panel in minutes — and the uploads directory syncs separately or stays on the server.
Should the client be able to deploy to their own account?
Only where they have somebody who should. Give that person their own key and their own named access rather than sharing yours, and agree who is responsible for a release that breaks the site before the first one does.
Read next
Web Hosting
cPanel hosting on NVMe, with SSL, a free move in and year-one domain included.
Laravel Hosting
Composer, SSH and Git deploys on hosting shaped for Laravel apps.
Moving your site to another host? Start with this checklist.
A step-by-step order of work for a move your visitors never spot: which files to copy first, how to carry email across without losing one message, the right moment to repoint DNS, and the two mistakes behind nearly every hour of downtime people ring us about.
Build the packages, set the prices.
NVMe underneath, LiteSpeed in front, and account limits you set rather than discover.
See Web Hosting plans