20% off your first order with code APEX20 00:00:00 See deals
Home Blog Node.js Hosting
Node.js

Node.js Hosting in India: What to Look for in 2026

Hoststack Team 7 min read July 4, 2026

Every year a few hundred Indian developers buy ₹99/month shared hosting, try to deploy an Express app, and discover the hard way that shared hosting was built for PHP, not for a long-running Node process. Node.js hosting has different requirements than a static site or a WordPress install — here's what actually works in 2026, and what to skip.

Why shared hosting usually fails for Node.js

  • cPanel's "Setup Node.js App" exists, but it runs your app under Passenger with tight CPU/memory limits shared across every tenant on the box
  • No root access means no custom npm global packages, no non-default Node versions in some cases, no systemd services
  • WebSocket connections (Socket.io, ws) are routinely killed by shared-hosting proxy timeouts within 30–60 seconds

The correct stack: VPS + PM2 + Nginx/LiteSpeed reverse proxy

1

Provision a KVM VPS with root access

Node needs a real process, not a shared PHP-style runtime. A Hoststack Boost X2 (2 vCore AMD Ryzen, 4GB RAM, ₹749/mo) comfortably runs a small-to-medium Express or Next.js API. For anything with a database, background jobs, or more than a few hundred concurrent users, go with Core X3 (3 vCore, 6GB, ₹1,099/mo).
2

Install Node via nvm, not the distro package manager

SSH in, install nvm, then nvm install 22. This lets you pin the exact Node version your app needs and upgrade independently of the OS, which matters when Ubuntu's repo Node is often several majors behind.
3

Run your app under PM2, not `node app.js`

Install PM2 globally (npm i -g pm2) and start your app with pm2 start server.js --name myapp -i max. PM2 auto-restarts on crashes, gives you cluster mode across CPU cores for near-zero-downtime reloads, and centralises logs with pm2 logs.
4

Survive reboots with pm2 startup

Run pm2 startup and follow the printed systemd command, then pm2 save. Without this, a reboot after a kernel update or a Hoststack maintenance window will leave your app dead until you manually SSH back in.
5

Put Nginx or LiteSpeed in front on port 80/443

Never expose Node directly to the internet on port 3000. Reverse-proxy through Nginx (proxy_pass http://127.0.0.1:3000) so you get TLS termination, gzip/brotli compression, and a place to rate-limit or cache static assets. If you're on a Hoststack VPS with LiteSpeed installed, the same reverse-proxy config works via LiteSpeed's Virtual Host external app settings.
6

Keep secrets in .env, never in git

Use dotenv or your framework's built-in env loader. Set file permissions to 600 on `.env` and add it to `.gitignore` before your first commit — API keys leaking through a public GitHub repo is one of the most common causes of a surprise cloud bill.

WebSockets need a VPS, full stop

If your app uses Socket.io, native WebSockets, or Server-Sent Events for live chat, notifications, or real-time dashboards, shared hosting is not an option — there's no persistent process to hold the connection open. On a VPS, make sure your Nginx config includes the upgrade headers:

  1. 1. proxy_set_header Upgrade $http_upgrade;
  2. 2. proxy_set_header Connection "upgrade";
  3. 3. Set proxy_read_timeout to a value long enough for idle connections (86400s is common for chat apps)

Without these three lines, your WebSocket handshake silently falls back to polling or drops entirely.

Choosing the right VPS tier for your Node app

  • Boost X2 (₹749/mo) — a single Express/Fastify API, a small Next.js SSR site, or a bot backend with low-to-moderate traffic
  • Core X3 (₹1,099/mo) — Node app + PostgreSQL/MongoDB on the same box, or PM2 cluster mode across 3 cores
  • Plus X4 or Pro X5 — real-time apps with hundreds of concurrent WebSocket connections, or multiple Node services behind one reverse proxy

Quick Summary

  • 1 Shared hosting's Node support is too limited for real apps — use a KVM VPS
  • 2 Run Node under PM2 for auto-restart and cluster mode
  • 3 Set up `pm2 startup` so your app survives reboots
  • 4 Reverse-proxy through Nginx or LiteSpeed — never expose port 3000 directly
  • 5 WebSockets require a VPS — shared hosting proxy timeouts will kill them
  • 6 Start on Boost X2, scale to Core X3+ as traffic and services grow

Deploy your Node.js app on a real VPS

AMD Ryzen KVM VPS with full root access, NVMe storage, and a Mumbai data center — from ₹749/month.

View VPS Plans

Deploy today

Online in 60 seconds. Supported around the clock.

Hosting, VPS and game servers on Mumbai infrastructure — INR billing, GST invoices, and code APEX20 for 20% off your first order.

5,000+ customers served
99.9% uptime SLA
<8ms ping across India
24/7 expert support
WhatsApp Discord