# Deploying apps from Git: cPanel 138, DirectAdmin and ZoPanel compared

> How cPanel git deploy works in 2026 (Git Version Control, .cpanel.yml, AI App Hosting in version 138), compared with DirectAdmin's Git Manager and ZoPanel.

Source: https://zopanel.net/blog/git-deploy-cpanel-directadmin-zopanel  
Updated: 2026-10-21

## Key takeaways

- cPanel has three Git-related paths - Git Version Control with .cpanel.yml tasks, Application Manager on Passenger, and since version 138 AI App Hosting, which deploys Node.js apps in containers.
- DirectAdmin's Git Manager syncs a repository and checks out a branch on a webhook, without a build step; its app runtimes rely on NGINX Unit (archived in October 2025) or CloudLinux selectors.
- ZoPanel builds from Git in the account's sandbox for seven runtimes and switches traffic only after a health check, with one-click rollback.
- Pick by what you deploy: static and PHP files, Node.js only, or several languages with zero-downtime releases.

**cPanel git deploy works in two ways: Git Version Control, where a push to a cPanel-managed repository runs the shell tasks in your `.cpanel.yml`, and, since cPanel & WHM 138, AI App Hosting, which builds Node.js apps from a Git repository into their own containers.** DirectAdmin's Git Manager clones or syncs a repository and checks out a branch into a folder on a webhook, but has no build step. ZoPanel's Git deploy detects the framework, builds inside the account's resource limits for Node.js, Python, PHP, Go, Ruby, Java and .NET, and switches traffic only after a health check. Which one fits depends on whether you deploy files or run applications.

We make ZoPanel, so we have an interest. cPanel and DirectAdmin details come from their own documentation and release notes **at the time of writing (October 2026)**. This article compares panels; if you want to build a pipeline yourself with GitHub Actions or webhooks, see [auto deploy from GitHub to a VPS](/blog/git-auto-deploy).

## Comparison at a glance

| | cPanel Git Version Control | cPanel AI App Hosting (138) | DirectAdmin Git Manager | ZoPanel Git deploy |
| --- | --- | --- | --- | --- |
| What it deploys | Files, via your shell tasks | Node.js apps | Files (checkout of a branch) | Node.js, Python, PHP, Go, Ruby, Java, .NET, static, Dockerfile |
| Build step | Your `.cpanel.yml` commands | Detected; installs dependencies and builds | None described | Detected install and build commands, editable |
| Deploy on push from GitHub | Push to the cPanel repo; pulling from a remote is a manual step | Not described in the docs | Webhook triggers fetch and deploy | Signed webhook (GitHub, GitLab, Gitea) |
| Process isolation | Not applicable (deploys files) | A container per app | Not applicable (deploys files) | Account's systemd slice with CPU and memory limits |
| Health check before go-live | No | Not described | No | Yes, up to 90 seconds |
| Rollback | Not built in | Redeploy or roll back from Git | Not described | One click, last 5 releases, zero downtime |
| Who enables it | Your host | Host enables the Web Apps feature | Admin, reseller and package | On by default; packages can turn it off |

Sources: [cPanel guide to Git deployment](https://docs.cpanel.net/knowledge-base/web-services/guide-to-git-deployment/), [deploy a website with Node.js](https://docs.cpanel.net/cpanel/meridian/websites/deploy-a-website-with-nodejs/), [AI App Hosting release notes](https://docs.cpanel.net/release-notes/ai-app-hosting-release-notes/), [DirectAdmin Git manager](https://docs.directadmin.com/other-hosting-services/git/general.html) and our [Git deploy docs](/docs/git-deploy).

## cPanel: three paths

### Git Version Control and `.cpanel.yml`

This is cPanel's long-standing Git feature. You create or clone a repository in **Git Version Control**, and cPanel adds a post-receive hook to every repository it manages. According to the [deployment guide](https://docs.cpanel.net/knowledge-base/web-services/guide-to-git-deployment/):

- **Push deployment:** when you `git push` to the cPanel repository, the hook runs the tasks in `.cpanel.yml`.
- **Pull deployment:** you click **Update from Remote**, then **Deploy HEAD Commit**.
- Deployment needs a valid `.cpanel.yml` checked into the top-level directory, at least one branch and a clean working tree.

A minimal file copies the site into place:

```yaml
---
deployment:
  tasks:
    - export DEPLOYPATH=/home/user/public_html/
    - /bin/cp -R public/. $DEPLOYPATH
```

The guide warns against copying everything with a wildcard, because that could deploy the `.git` directory. Builds, dependency installs and restarts are whatever you put in the task list; there is no health check or automatic rollback. It works well for PHP sites and static files on shared hosting.

### Application Manager (Passenger)

For Node.js, Python and Ruby apps, cPanel's [Application Manager](https://docs.cpanel.net/cpanel/software/application-manager/) runs apps under Phusion Passenger. The host must enable it in the Feature Manager and install a Passenger Apache module. Node.js comes from `ea-nodejs16`, `ea-nodejs18`, `ea-nodejs20` or `ea-nodejs22`, and the docs note that installing one of these packages removes the others, so a server runs one Node.js version at a time through this path. Application Manager does not pull from Git itself; you combine it with Git Version Control or upload the code.

### AI App Hosting in cPanel 138

cPanel & WHM 138, first introduced on 27 July 2026 ([webhosting.today](https://webhosting.today/2026/09/25/cpanel-ai-is-generally-available-meridian-is-in-the-license-nova-runs-on-credits-nobody-has-priced/)), shipped a new plugin for Node.js apps alongside the Meridian interface. The [release notes](https://docs.cpanel.net/release-notes/ai-app-hosting-release-notes/) say it lets you "create, deploy, and manage Node.js web applications" and that "each application runs in its own isolated container". From cPanel's [deployment page](https://docs.cpanel.net/cpanel/meridian/websites/deploy-a-website-with-nodejs/) and the release notes:

- **Sources:** a public Git repository over HTTPS, a private one over SSH with a deploy key, a ZIP upload, or the WebPros MCP server, which lets an AI agent such as Claude Code deploy for you.
- **Build:** cPanel detects the package manager and build output directory, installs dependencies, builds and starts the app.
- **Domains:** plugin 1.3.0-1 (10 September 2026) added serving an app on a domain the account already uses; before that, apps could not take over an existing domain.
- **Limits:** you cannot set the `PORT` variable, the host sets a maximum number of apps per account, and the host must give the account the Web Apps feature. Node.js is the only runtime.
- **Recent additions:** CageFS support on CloudLinux (1.3.0-1) and MySQL database creation and linking (1.3.5-1, 13 October 2026).

This is a real step forward for cPanel hosts with Node.js customers, especially for AI-built apps. The documentation we read does not mention deploying automatically on push or a health check before switching traffic.

## DirectAdmin: Git Manager and app runtimes

DirectAdmin added **Git Manager** in version 1.63.2 (25 November 2021) as a Pro Pack feature ([changelog](https://docs.directadmin.com/changelog/version-1.63.2.html)). Since August 2023 every DirectAdmin licence for sale includes all features, so the Pro Pack label no longer applies ([DirectAdmin docs](https://docs.directadmin.com/getting-started/pro-pack/)).

How it works, per the [Git manager docs](https://docs.directadmin.com/other-hosting-services/git/general.html):

- Repositories are bare, stored under `/home/USER/domains/DOMAIN/`, either created empty or cloned from a remote. Private remotes use SSH with a key file in the user's home.
- You set a **deploy branch** and a **deploy directory**; **Deploy** checks out the working tree there.
- A **webhook** runs an automatic fetch and deploy, if the branch and directory are set. Each repository's `post-update` hook runs `git-deploy`. Root execution is not allowed.
- The admin enables Git for resellers and packages, then users.

The docs do not describe a build step, so Git Manager suits PHP and static sites, or apps you build elsewhere.

For running apps, DirectAdmin documents **NGINX Unit** for Python, Java, Ruby, Perl and Node.js. Note that the NGINX Unit project itself says that "as of October 2025, NGINX Unit is archived and unmaintained" ([unit.nginx.org](https://unit.nginx.org/)). The other common route is CloudLinux, whose Node.js, Python and Ruby selectors are available for cPanel and DirectAdmin servers ([CloudLinux docs](https://docs.cloudlinux.com/introduction/cloudlinux-os-editions/)), at CloudLinux's licence price.

## ZoPanel: build, health check, switch

ZoPanel's [Git deploy](/docs/git-deploy) is a website type. You enter the repository URL and branch, and on each deploy ZoPanel:

1. **Detects the framework** from the repository: Next.js, Nuxt, NestJS, Express, Laravel, Symfony, Django, FastAPI, Flask, Rails, Spring Boot, Quarkus, ASP.NET Core, Go, WordPress, static builds or a Dockerfile. You can review and edit the install, build and start commands.
2. **Builds in a new release folder** as the hosting account, through systemd, inside the account's CPU and memory limits.
3. **Starts the new release** in an idle slot on its own port and waits up to 90 seconds for the health check path to answer below status 500.
4. **Switches nginx** with a graceful reload, then stops the old process. If anything fails, the old release keeps running and the owner gets a **Deployment failed** notification.

Pushes trigger deploys through a webhook verified with GitHub's `X-Hub-Signature-256` or GitLab and Gitea's token header; only the configured branch deploys, duplicates are ignored and deploys never overlap. The **Releases** card keeps 5 builds, and rollback uses the same zero-downtime switch. With Pro, you can also trigger a deploy from CI with an API token.

Runtime versions are chosen per app: Node.js 18 to 24 side by side ([Node.js docs](/docs/nodejs)), Python 3.10 to 3.14 through uv, Go by `go.mod`, OpenJDK by `pom.xml` or Gradle, and the .NET 8, 9 or 10 SDK by target framework. Where a runtime does not fit, a Dockerfile or public image can run as a container with user namespaces, dropped capabilities and no access to private networks ([Docker deploy](/docs/docker-deploy)).

Where ZoPanel is weaker:

- It runs only on Ubuntu 22.04/24.04/26.04 and Debian 12/13, so it cannot replace cPanel on AlmaLinux or CloudLinux.
- Ruby uses the system Ruby only; other versions need a Dockerfile.
- Custom containers must first be enabled on the command line by root, and per package, which is safer but one more step.
- There is no MCP-based deployment like cPanel's for AI agents.
- Its ecosystem and community are much younger.

## Which one to choose

| You deploy | Good fit |
| --- | --- |
| PHP or static sites on existing cPanel hosting | cPanel Git Version Control with `.cpanel.yml` |
| Node.js apps (including AI-built ones) on cPanel hosting | cPanel AI App Hosting, if your host enables it |
| PHP or static sites on DirectAdmin | DirectAdmin Git Manager with a webhook |
| Several languages, with builds, health checks and rollback | ZoPanel Git deploy |
| Your own pipeline on a bare VPS | GitHub Actions; see [our guide](/blog/git-auto-deploy) |

For worked examples on ZoPanel, see [deploying a Node.js app to a VPS](/blog/deploy-nodejs-vps) and [deploying Django and Flask to a VPS](/blog/deploy-python-app-vps).

## Conclusion

cPanel 138 closes much of the gap for Node.js with containerised AI App Hosting, and `.cpanel.yml` remains a solid way to push PHP and static sites. DirectAdmin's Git Manager is simple and reliable for checkouts, but leaves builds and app runtimes to other tools. ZoPanel treats Git deploy as a full release pipeline for seven runtimes, with sandboxed builds, health checks and rollback. Try it on your own repository: Git deploy, webhooks and rollback are included in the [Free plan](/pricing), on a fresh Ubuntu or Debian VPS.

## Frequently asked questions

### Can cPanel deploy from GitHub automatically?

With Git Version Control, a push to the cPanel-managed repository runs your `.cpanel.yml` tasks, while pulling from GitHub is a manual **Update from Remote** step in the guide, so many people script it or push to cPanel from CI. AI App Hosting deploys from a GitHub repository, but its docs do not describe automatic deploys on push.

### What is a .cpanel.yml file?

It is a YAML file at the top of your repository listing shell commands under `deployment: tasks:`. cPanel runs them in order on each deployment, usually to copy files into `public_html`.

### Does DirectAdmin support Git deployment?

Yes. Git Manager, added in 1.63.2 and included in all current licences, can clone a remote repository, check out a chosen branch into a folder and deploy on a webhook. It does not run build commands.

### Can I run Node.js on cPanel?

Yes, through Application Manager with Passenger, through CloudLinux's Node.js Selector if your host uses CloudLinux, or through AI App Hosting in version 138, which runs each app in its own container.

### Does ZoPanel's Git deploy need a paid plan?

No. Git deploy, push webhooks and rollback work on the Free plan within its limits (10 websites). Triggering deploys from CI with an API token needs Pro.
