# Deploy a Node.js app from the Websites hub
Source: https://docs.webgee.com/en/development/deploy-a-nodejs-app-in-meridian



Deploy a Node.js application to one of your domains from cPanel's **Websites**
hub — cloning a Git repository, uploading a ZIP, or handing the job to an AI
agent. cPanel installs dependencies, builds the app and serves it.

Applies to cPanel accounts using the
[Meridian theme](/en/hosting/the-meridian-theme), where Node.js is enabled on
the plan. For the Node.js Selector route in Jupiter, see
[Set up a Node.js application](/en/development/how-to-setup-a-nodejs-application-on-cpanel).

<Callout type="info">
  A cPanel account holds a maximum of **four** deployed apps. Delete one before
  deploying a fifth.
</Callout>

## Choose the domain [#choose-the-domain]

1. In the **Websites** hub, select **Add Website**.
2. Select an existing domain, or add a new one. A domain added here cannot be
   renamed after deployment, so get it right now.
3. Select **AI App Hosting**.
4. Select **Continue**, then **Launch My Website**.

<Callout type="warn">
  On an existing domain, the files already there stay where they are, but the
  app is what visitors see. Point the deployment at a domain or subdomain that
  is not already serving a site you need.
</Callout>

## Choose where the code comes from [#choose-where-the-code-comes-from]

**A Git repository** — best when you will update the app regularly.

1. Select **Git repository** and enter the clone URL:
   * public repository: the HTTPS URL, `https://example.com/user/my-app.git`
   * private repository: the SSH URL, `git@github.com:user/my-app.git`
2. For an SSH URL, attach an SSH key — pick an existing one or generate a new
   one under **Security** — then add it to your Git host as a deploy key,
   following that host's instructions.
3. Enter the key's passphrase if it has one. You need it again each time you
   redeploy.
4. Select **Continue**, then **Deploy**.

**A ZIP file** — best for an app you do not plan to change.

1. Select **Upload a ZIP file**.
2. Drag the `.zip` onto the upload area, or select **Browse Files**.
3. Select **Continue**.

**WebPros MCP** — hands the deployment to an AI agent.

1. Select **Deploy via WebPros MCP**.
2. Link your WebPros account if you have not already, and download `mcp.json` —
   see [Connect cPanel to Claude Code with MCP](/en/hosting/connect-cpanel-to-mcp).
3. Ask the agent to deploy the app and return the live HTTPS URL.

## Set the app up [#set-the-app-up]

1. Check the **Website Name**, which becomes the app's URL, and edit it if
   needed.

2. Open **Advanced Settings** if the defaults do not fit:

   | Setting                | What it is for                                                                    |
   | ---------------------- | --------------------------------------------------------------------------------- |
   | Node.js version        | The version your app needs                                                        |
   | Package manager        | Detected from your repository — check it is the one you use                       |
   | Build output directory | Where your build writes its output. Enter it manually if cPanel did not detect it |
   | Environment variables  | Values your app reads at runtime                                                  |

3. Select **Deploy**.

## If the deployment fails [#if-the-deployment-fails]

**The build succeeded but produced no output directory.** The most common
failure. cPanel names the directory it expected in the failure message — either
your build script does not produce it, or the **Build output directory**
setting names the wrong path. Run the build locally, see what directory it
actually writes, and set that.

**The repository could not be cloned.** For a private repository, confirm you
used the SSH URL rather than the HTTPS one, and that the key is added as a
deploy key on the Git host.

**The app deployed but does not respond.** Check the environment variables —
an app that reads a database URL or an API key at runtime starts and then fails
without them.

## Manage it afterwards [#manage-it-afterwards]

Deployed apps live in the **Websites** hub, where you redeploy them, change
their settings, and delete them to make room under the four-app limit.

## Related [#related]

* [Set up a Node.js application](/en/development/how-to-setup-a-nodejs-application-on-cpanel)
* [Connect cPanel to Claude Code with MCP](/en/hosting/connect-cpanel-to-mcp)
* [The Meridian theme](/en/hosting/the-meridian-theme)
