- Host bare Git repositories on your server. Useful as a private origin you can push to from anywhere.
- Clone existing repositories from GitHub, GitLab, Bitbucket, or self-hosted Git into your account, with optional auto-pull deployment to a public folder.


Create a repository
Click Create
From the Git landing page, click Create. You’ll be asked whether to clone an existing remote or start fresh.
Pick the source
- Clone a Repository. Paste an HTTPS or SSH URL like
git@github.com:you/your-repo.git. For private SSH repos, you’ll need an SSH key set up first (see below). - New Repository. No remote, just an empty repo on the server you can push to from your laptop.


Set the path
The Repository Path is where the repo lives on disk. A sensible default is
repositories/<repo-name>. For an auto-deploy setup, point it at the public folder (public_html/<repo-name>).SSH keys for private repos
If you’re cloning a private GitHub or GitLab repo over SSH, the server needs an SSH key the remote provider trusts. SSH keys are managed from a separate cPanel page: Security → SSH Access → Manage SSH Keys.Generate a new key
Click Generate a New Key
Pick a key name. Leave the password empty for unattended deploys, or set one if you want extra protection. Pick
ed25519 for the type. Click Generate Key.Authorize the key on your account
Back at Manage SSH Keys, find your new key under Public Keys and click Manage → Authorize. This adds the key to
~/.ssh/authorized_keys so the server itself can use it.Use an existing key
If you already have an SSH key pair on your local machine, paste the public key into Import Key instead of generating a new one. The private key never leaves your machine.Pull updates and deploy
Once a clone is set up, the repo’s Manage page has a Pull or Deploy tab.- Pull from Remote. Runs
git pullwith the configured remote and branch. Use this for manual deploys. .cpanel.ymldeployment. If your repo contains a.cpanel.ymlfile at the root, cPanel runs the tasks defined inside on every pull. Common pattern: copy files from the cloned repo intopublic_html/so the live site updates without serving the.git/directory directly.
.cpanel.yml:
Things to know
- Cloned repos via the New Repository flow are bare. Clones from a remote are working trees.
- Cloning a repo with submodules works via HTTPS or SSH if the right keys are in place.
- Repos placed under
public_html/will have their.git/folder served unless blocked by.htaccess. Either deploy to a separate folder, or block.git/requests in your web server config. - Private repos cloned over HTTPS need credentials cached or a personal access token in the URL. SSH is simpler for unattended deploys.

