Node.js hosting is the hosting service designed for running JavaScript backend applications (Express, Next.js, Nest, Strapi, Koa, and others). Unlike PHP-oriented shared hosting, Node.js requires a long-running process β the site doesn't start from scratch on every request.
Node.js hosting options
cPanel Node.js Selector β runs Node.js on shared hosting. PHP-like spawning, processes started on demand. Limited but simple.
VPS with PM2 β full control. PM2 process manager handles Node.js processes (automatic restart, monitoring, cluster mode).
Platform as a Service (PaaS) β Heroku, Vercel, Railway, Render β optimized for Node.js deploys but more expensive.
Docker β running Node.js inside Docker containers. Maximum flexibility.
Setting up cPanel Node.js Selector
1. cPanel β "Setup Node.js App" button. 2. Pick Node.js version (18, 20, 22). 3. Application Mode β Production or Development. 4. Application Root β code directory (e.g., /home/user/myapp). 5. Application URL β the site URL. 6. Application Startup File β startup file (app.js, server.js). 7. Create.
Then upload your code to the Application Root via SSH or File Manager. Click "Run NPM Install" in cPanel to install dependencies.
Running on VPS with PM2
After installing Node.js on the VPS: npm install -g pm2. Start the app: pm2 start app.js --name myapp. Cluster mode (use all CPU cores): pm2 start app.js -i max --name myapp. Monitoring: pm2 monit. Boot startup: pm2 startup && pm2 save.
Nginx reverse proxy
Node.js typically listens on port 3000 or 8080. Users come in on 80/443 β you need an Nginx reverse proxy:
server {
listen 443 ssl;
server_name myapp.uz;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Sayt.uz practice
Node.js Selector is supported by default on Sayt.uz tariffs (not on Basic Hosting, on Pro+). Node.js versions: 18, 20, 22. 8% of clients use Node.js β mostly startups and SaaS projects (Next.js, Nest.js). On VPS Pro tariffs our sysadmins configure PM2. Tip: if you're a PHP-only client, you don't need Node.js β it's unnecessary complexity. If you need a custom JS backend, VPS or PaaS is the right choice.