WebGee DocsDocs
Development

Deploy a Node.js app from the Websites hub

Deploy a Node.js application to a domain from a Git repository, a ZIP file or an AI agent, and set its Node version, build output and environment variables.

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, where Node.js is enabled on the plan. For the Node.js Selector route in Jupiter, see Set up a Node.js application.

A cPanel account holds a maximum of four deployed apps. Delete one before deploying a fifth.

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.

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.

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.
  3. Ask the agent to deploy the app and return the live HTTPS URL.

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:

    SettingWhat it is for
    Node.js versionThe version your app needs
    Package managerDetected from your repository — check it is the one you use
    Build output directoryWhere your build writes its output. Enter it manually if cPanel did not detect it
    Environment variablesValues your app reads at runtime
  3. Select Deploy.

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

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.

On this page