Node.js Hosting in India: What to Look for in 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
Provision a KVM VPS with root access
Install Node via nvm, not the distro package manager
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.Run your app under PM2, not `node app.js`
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.Survive reboots with pm2 startup
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.Put Nginx or LiteSpeed in front on port 80/443
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.Keep secrets in .env, never in git
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.
proxy_set_header Upgrade $http_upgrade; - 2.
proxy_set_header Connection "upgrade"; - 3. Set
proxy_read_timeoutto 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