PaaS infrastructure that works everywhere

Node.js app hosting and deployment

Node.js hosting: deploy Express, NestJS and Fastify from Git, built and run in a Docker container. Our own servers in a data center, billing in rubles, automatic SSL and custom domains.

Auto-deploy from Git

The platform pulls the code from your repository, builds the project and runs it.

Ready-made environment

No Nginx or Linux setup required. Reliable RelaxNet servers under the hood.

Custom domains and SSL

Connect your domain in one click, and the platform issues a Let's Encrypt SSL certificate automatically.

RelaxNet runs Node.js apps straight from your repository: the platform detects the stack, installs dependencies, builds the project and starts it in an isolated Docker container. No need to rent a VPS, configure Nginx and systemd or renew certificates by hand — builds, runtime, HTTPS and monitoring work out of the box.

The infrastructure runs on our own servers in a data center, apps are reachable from anywhere, and billing is in rubles.

How to deploy Node.js

1. Connect your repository

Sign in with GitHub, GitLab, GitFlic or GitVerse and pick the repository with your app. Choose a branch — main by default. Private repositories are supported: access is granted via OAuth, and your git account password is never shared with the platform.

2. Check stack detection

The platform reads package.json and picks the build and start commands itself. If your project is non-standard (a monorepo, a custom bundler), you can override the commands manually or add your own Dockerfile — it takes priority over auto-detection.

// package.json — what auto-detection reads
{
  "scripts": {
    "build": "tsc -p .",
    "start": "node dist/main.js"
  },
  "engines": { "node": ">=20" }
}

3. Add environment variables

Secrets, database connection strings and tokens are set as key–value pairs in the project's environment variables. They are encrypted, injected into the container at startup and never end up in the repository. The key variable is PORT: your app must listen on it, not on a hard-coded port.

// Express — correct
const port = process.env.PORT || 3000;
app.listen(port, '0.0.0.0');

// NestJS — correct
await app.listen(process.env.PORT ?? 3000, '0.0.0.0');

4. Deploy and connect a domain

After the first build, the project is available at a technical platform address. Connect your own domain in the settings: add an A record at your registrar, and the platform issues and renews a Let's Encrypt SSL certificate itself. With auto-deploy on, the project is rebuilt on every push to the selected branch.

Common errors and fixes

The app built, but the URL returns 502

It's almost always the port: the app listens on a hard-coded 3000 instead of process.env.PORT, or on 127.0.0.1 instead of 0.0.0.0. Inside a container, localhost isn't reachable from outside — use 0.0.0.0 as the host.

The build fails on npm install

Make sure package-lock.json is committed and matches package.json — a mismatch breaks npm ci. If a dependency needs native compilation, set the Node version in engines — auto-detection respects it.

Can't reach database server during the build

This happens when the build talks to the database (Prisma migrations, page generation). Enable the build-time database access option in the project settings, or move migrations to the start command instead of the build.

FAQ

Do I need a Dockerfile for a Node.js project?

No. The platform detects the stack from package.json and builds the project automatically. A Dockerfile is only needed for a non-standard environment — for example, system libraries for image processing.

Which Node.js versions are supported?

Current LTS versions. You can pin the version you need in the engines field of package.json — the build respects it.

Can I run a WebSocket app?

Yes, connections are proxied with WebSocket support. No extra configuration is needed; the app just has to listen on the same port from the PORT variable.

What happens when I push to the repository?

With auto-deploy on, the platform receives a webhook, builds the new version and replaces the container. If the build fails, the previous working version keeps running.

How much does Node.js hosting cost?

You get $6 on your balance to start, then PRO from $12 per month. Payment is in rubles.