Node.js Hosting

Shared hosting is built for PHP - processes that exit after each request. Node.js needs to stay running between requests, listen on a port, and restart cleanly if something goes wrong. That requires a VPS. When managed deployment platforms start costing more than the infrastructure they're running on, predictable VPS pricing is worth a look.

How Node.js runs on a VPS

The standard production setup for Node.js on a VPS is three components: Nginx handles incoming traffic on ports 80 and 443, passes it to your Node.js process on an internal port, and PM2 keeps that process running. Each component does one job cleanly, and together they give you a production-grade environment that behaves the same way every time.

Nginx - reverse proxy and SSL termination

Nginx listens on ports 80 and 443, handles SSL certificates (Certbot + Let's Encrypt or any paid certificate), serves static files directly without touching Node, and forwards dynamic requests to your Node.js process on an internal port. It also handles the Upgrade and Connection headers required for WebSocket connections. Configure it once and it requires minimal ongoing maintenance.

PM2 - process management

PM2 keeps your Node.js application running after you close your SSH session, restarts it automatically if it exits unexpectedly, and logs stdout and stderr to files you can inspect later. In cluster mode, PM2 spawns one worker per vCPU, distributing incoming requests across all available cores. PM2 also integrates with systemd, so your application restarts automatically on server reboots.

NVM - Node version management

NVM installs in your home directory and lets you install and switch between any Node.js version with a single command. Run the LTS version for production; use a different version per project if your applications have different requirements. npm, which ships with Node, handles package installation - yarn and pnpm work equally well.

Dedicated RAM - stays allocated to your process

Node.js processes stay in memory rather than exiting after each request. A typical Express or Fastify API uses 50-150MB per process; a Next.js SSR application can use 150-400MB per worker. In PM2 cluster mode, that figure multiplies by your worker count. The RAM your VPS plan allocates is dedicated - no shared pool, no contention from other accounts. Size your plan with your worker count and per-worker footprint in mind, leaving headroom for Nginx, the OS, and any additional services like Redis or a database.

Systemd - alternative to PM2 for simpler setups

If you'd rather manage your Node.js process at the OS level, a systemd unit file works well - particularly for single-process applications or when you want process management integrated with the rest of your server's service lifecycle. Both approaches are standard; use whichever fits your workflow.

Plans

All plans run on KVM with dedicated resources on AMD Ryzen 9 9900X hardware. Node.js CPU usage is bursty - plan sizing is primarily a RAM and bandwidth decision, with vCPU count mattering most if you're running PM2 cluster mode.

VPS-1 Personal projects, low-traffic APIs, or a single-process production app VPS-2 Small to medium production apps, Next.js SSR, or PM2 cluster with 2 workers VPS-4 Higher-traffic APIs, real-time apps with concurrent WebSocket connections, or PM2 across 4 cores VPS-6 High-traffic production workloads, multiple Node.js applications, or resource-intensive SSR at scale
vCPU1246
RAM1GB DDR52GB DDR54GB DDR58GB DDR5
Storage25GB NVMe50GB NVMe100GB NVMe200GB NVMe
Bandwidth1TB2TB4TB6TB
IPv41111
Price[price][price][price][price]
Deploy your VPS. Deploy your VPS. Deploy your VPS. Deploy your VPS.

These are renewal prices. What you pay today is what you pay next year.

All VPS plans are unmanaged. Bitfoo handles the hardware and network; your Node.js environment - web server configuration, process management, deployments, and maintenance - is your responsibility.

If your server exceeds its monthly bandwidth allocation, throughput is throttled for the remainder of the billing cycle - no additional charges.

Node.js processes stay in memory. A Next.js SSR worker uses 150-400MB; an Express or Fastify process uses less. If you're running PM2 cluster mode, multiply per-worker usage by your worker count when sizing your plan.

Getting started

Once your VPS is live, the typical setup sequence is:

  1. Choose Ubuntu or Debian as your OS
    Both have well-maintained NVM and PM2 documentation and are the most common choice for Node.js production servers. AlmaLinux, Rocky Linux, and CentOS Stream are also supported.
  2. Install NVM and Node.js
    Install NVM from the official repository at github.com/nvm-sh/nvm, then use it to install your preferred Node.js LTS version. NVM installs into your home directory - no root access required for Node itself.
  3. Install Nginx and configure your reverse proxy
    Install Nginx via your distribution's package manager, configure a server block that proxies port 80 to your Node application's internal port, then use Certbot to issue a Let's Encrypt certificate and configure HTTPS. The official Nginx and Certbot documentation cover this clearly.
  4. Install PM2 and start your application
    Install PM2 globally via npm (npm install -g pm2), start your application (pm2 start app.js), and configure PM2 to start on boot (pm2 startup and pm2 save). From this point, your application restarts automatically on crash and on server reboot.

Your environment from here is standard Node.js - deploy via Git, rsync, or any deployment tool that connects over SSH.

What every VPS plan includes

Relevant features for Node.js, from the VPS hosting page:

Full root access and SSH from first boot - install NVM, Node.js, Nginx, PM2, and any other dependency without restriction

KVM virtualization - your own kernel; Node.js process management (PM2, systemd) and network configuration work without host-imposed limits

AMD Ryzen 9 9900X - high single-core clock speed; relevant for CPU-bound request handling in Node's single-threaded event loop and for SSR rendering workloads

NVMe SSD storage - fast I/O for file reads, database queries, and npm package installation; measurable during build steps and application startup

10Gbps network ports on all plans

IPv6 included - configure Node's HTTP server or Nginx to listen on IPv6 if your infrastructure requires it

Self-service control panel - OS reinstall, power control, console access, SSH keys, and resource graphs; use the browser-based emergency console if SSH becomes unreachable after a misconfiguration

99.9% uptime SLA - measured monthly, service credit issued for any shortfall

Automated provisioning - server ready within minutes of payment

5 datacenter locations at order time: US East, US West, UK, EU, Asia-Pacific

Custom ISO support - bring your own image if your environment has specific OS requirements

Who uses this

Node.js runs APIs, real-time applications, SSR frontends, and full-stack JavaScript applications in production across every industry. The common thread is the need for a persistent process with dedicated resources.

Developers · SaaS companies · Startups · Agencies

Common questions

Can I run Node.js on Bitfoo shared hosting?

No. Shared hosting is built around PHP's request-and-exit model - each request starts a PHP process, which exits when the response is sent. Node.js works differently: your application starts once and stays running, listening on a port and handling requests as they arrive. Shared hosting environments do not allow persistent processes or arbitrary port binding. Node.js requires a VPS.

How do I keep my Node.js app running after I close SSH?

Use PM2. Install it globally with npm, start your application with `pm2 start`, then run `pm2 startup` to generate a systemd startup command and `pm2 save` to persist your process list. After that, your application restarts automatically on crash and survives server reboots. Alternatively, write a systemd unit file directly if you prefer managing the process at the OS level without PM2.

How do I manage Node.js versions?

Install NVM (Node Version Manager) from github.com/nvm-sh/nvm. It installs into your home directory and lets you install any Node.js version - `nvm install --lts` gets the current LTS release, `nvm install 18` gets a specific major version. You can have multiple versions installed and switch between them per session or set a default. This is the standard approach for managing Node versions on Linux; no root access is required for NVM itself.

Do WebSockets work on Bitfoo VPS?

Yes. WebSockets work with no restrictions on the Node.js side. If you're proxying through Nginx - which is standard - you'll need to pass the Upgrade and Connection headers through the proxy configuration. This is a standard two-line addition to your Nginx server block (`proxy_http_version 1.1`, `proxy_set_header Upgrade $http_upgrade`, `proxy_set_header Connection "upgrade"`). Once configured, WebSocket connections pass through Nginx transparently.

Which frameworks and runtimes work on Bitfoo VPS?

Any framework or runtime that runs on Linux works without restriction. Express, Fastify, NestJS, Koa, Hapi, Next.js (in standalone SSR mode), Nuxt.js (in Node server mode), and Remix (Node adapter) all work. Bun - the faster Node.js-compatible runtime - also installs and runs cleanly on Ubuntu and Debian. The VPS gives you a standard Linux environment; whatever Node documentation says to do, you can do it. If you'd rather containerise your Node.js application, see the Docker hosting page. Building with Next.js specifically? See the Next.js hosting page for standalone output, image optimization, and deployment guidance. For Ghost specifically, see the Ghost hosting page - Ghost CLI handles most of the Node.js setup automatically.

Can I run multiple Node.js applications on one VPS?

Yes. Each application listens on a different internal port, and Nginx routes traffic to the correct application based on the domain name in the request. Configure a separate server block in Nginx for each application, each with its own `proxy_pass` pointing to the respective internal port. PM2 manages all processes from a single `pm2 list` view. The practical limit is RAM - add up the memory footprint of all your application processes and confirm it fits within your plan's allocation.

Which plan should I choose for my Node.js application?

The primary considerations are RAM and vCPU count. VPS-1 handles a single Node.js process with modest traffic - a personal API, a small Express app, or a low-traffic production application. VPS-2 suits small to medium production applications and is a reasonable starting point for Next.js SSR, where a server-side rendered React application can use 150-400MB per worker process. VPS-4 suits higher-traffic applications or those using PM2 cluster mode across 4 cores - real-time apps with many concurrent WebSocket connections benefit particularly from additional vCPUs. VPS-6 suits high-traffic production workloads or servers running multiple Node.js applications simultaneously. When in doubt, start on VPS-2 - it handles most real production workloads and you can upgrade without migrating your data.