Step-by-step: prepare an Express API, upload it, install dependencies and register it in Webuzo's Application Manager with the right port and environment.

Deploy an Express.js API on DignityHost (Webuzo Application Manager) - MERN & Node.js Hosting guide by DignityHost
  • Applies toMERN hosting plans
  • Time needed20 min
  • LevelIntermediate

This guide takes a small Express API from your laptop to a live HTTPS address. The same steps apply to Fastify, Koa and other Node.js servers.

Two deployment paths, git pull or zip upload, followed by install, configure and start

Pick git pull for repeat deployments or a zip upload for a first release.

1. Prepare the app

Your project needs a package.json with a start script, and a server file that listens for requests.

javascript
// server.js
const express = require('express');
const app = express();

app.use(express.json());
app.get('/health', (_req, res) => res.json({ ok: true }));

// Self Managed mode: use the port Webuzo shows in the Application Manager.
// Passenger mode ignores the number and connects the app for you.
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log('API listening on ' + PORT));
json
{
  "name": "shop-api",
  "version": "1.0.0",
  "main": "server.js",
  "scripts": { "start": "node server.js" },
  "engines": { "node": ">=20" },
  "dependencies": { "express": "^4.19.2" }
}

2. Create the domain

  1. Add a subdomain such as api.example.com under Domain Management in Webuzo.
  2. Point its DNS A record to your server (see DNS propagation).
  3. Install the free certificate in Automatic SSL (see Free SSL in Webuzo).

3. Upload the code

Put the app in its own folder inside your home directory, for example ~/apps/shop-api, and not in public_html, where its source would be downloadable.

MethodCommands or steps
Git (recommended)ssh USERNAME@server, then git clone https://github.com/you/shop-api.git ~/apps/shop-api. Use a deploy key for private repositories.
Zip uploadZip the project without node_modules, upload it with the File Manager, then extract it into ~/apps/shop-api.

4. Install dependencies

Over SSH, choose the Node.js version that matches the one you will pick in the panel, then install only production dependencies:

shell
export PATH=/usr/local/apps/nodejs20/bin:$PATH
node -v
cd ~/apps/shop-api
npm ci --omit=dev        # or: npm install --omit=dev

Yarn and pnpm work too. If your app needs a build step (TypeScript, NestJS), run it now (npm run build) and point the startup file at the compiled output, for example dist/main.js.

5. Register the application

Open Application Manager and click to add an application. Fill in the form as follows:

The Application Manager form with example values for each field

Webuzo's Application Manager fields.

FieldWhat to enter
Application NameA label, e.g. shop-api.
Deployment DomainThe domain you created, e.g. api.example.com.
Base Application URL/ unless the app lives under a path.
Application PathFolder relative to your home directory: apps/shop-api.
Application typeThe Node.js version, for example Node.js 20 or 22.
Startup file (Passenger)server.js, the file that calls listen().
Start Command (Self Managed)node server.js. Prefer this to npm start, which starts an extra wrapper process.
PortShown by Webuzo. In Self Managed mode your app must listen on exactly this port.
Deployment EnvironmentProduction for a live site.
Environment VariablesUse Add + for each value, e.g. PORT, MONGODB_URI, JWT_SECRET.

Save the application and start it from the application list. Then open https://api.example.com/health; you should see {"ok":true}.

Updating later

shell
export PATH=/usr/local/apps/nodejs20/bin:$PATH
cd ~/apps/shop-api
git pull
npm ci --omit=dev
# then restart the application from the Application Manager

Troubleshooting

Frequently asked questions

Passenger or Self Managed?

Use Passenger for a plain Express API; it needs only a startup file. Use Self Managed when your framework needs its own start command or when you need WebSockets that must hold a stable port.

Where do I see the application's logs?

The application writes its output to a log file in your home directory named after the domain and the application ID. Open it with the File Manager, or run tail -f over SSH.

How do I deploy from GitHub Actions?

Use an SSH deploy key stored in your repository secrets, run the git pull and npm ci commands in a workflow step, and restart the app.

Node.js hosting with SSH and Git deployNode.js 18/20/22, MongoDB, PostgreSQL, Redis and SSH on Webuzo.
MERN hosting plans →

Last reviewed 19 October 2026. Need a hand? Contact DignityHost support or open a ticket from your client area.

Was this answer helpful? 0 Users Found This Useful (0 Votes)