Deployment guide

Installing Node-RED on a VPS: self-hosted automation

Deploy on a VPS Cloud →

Automation8 min read

Installing Node-RED on a VPS: self-hosted automation

Node-RED is a visual, flow-based automation tool: you connect nodes (triggers, functions, APIs, databases) by drag-and-drop to orchestrate processing without writing a full application. Hosted on a VPS, it becomes a permanent automation engine for your APIs, webhooks and connected devices. Here is the complete deployment, secure and persistent.

Why self-host Node-RED on a VPS

Node-RED shines at quickly wiring up integrations: receive a webhook, transform a payload, call an API, write to a database, send a notification — all in a visual editor accessible from the browser. On a local workstation, these flows stop as soon as the machine is turned off. On a VPS, they run 24/7 with a fixed IP, which is essential for receiving incoming webhooks or polling APIs at regular intervals. The ecosystem of more than 4000 community nodes (the palette) covers MQTT, HTTP, databases, Telegram, MQTT IoT, and more. You keep your API keys and your business data on your own server, without depending on a third-party automation platform billed per task.

The concrete benefits of self-hosting

  • 24/7 availability with a fixed IP to receive incoming webhooks.
  • Visual flow-based editor: automations built without coding a whole app.
  • Palette of 4000+ nodes (MQTT, HTTP, SQL, Telegram, IoT) installable on the fly.
  • API keys and business data kept on your VPS, not at a third party.
  • No per-task billing or monthly execution quota.
  • Ideal for IoT: MQTT centralization and real-time sensor processing.

Hardware and software prerequisites

Node-RED is extremely lightweight (based on Node.js). A 1 vCPU / 1 GB RAM VPS is enough for simple flows; move to 2 vCPU / 2 GB RAM as soon as you multiply the flows, add a database or handle heavy MQTT traffic. Count on 5 to 10 GB of disk for the runtime, the palette modules and the logs. On the software side: Ubuntu 22.04, Docker (recommended to isolate and persist the data), a subdomain like flows.mydomain.com, and ideally an active ufw firewall. No GPU, it is pure orchestration.

Step-by-step deployment

01

Prepare the VPS

Via SSH, install Docker. Create a named volume to persist the flows and the configuration: docker volume create node_red_data. This volume guarantees that your automations survive container updates.

02

Run the container

Start the official image: docker run -d -p 1880:1880 -v node_red_data:/data --name nodered --restart unless-stopped nodered/node-red. The editor listens on port 1880.

03

Secure the editor

By default the editor is open. Enable authentication in settings.js (the adminAuth section) with a password hashed via node-red-admin hash-pw, and also protect the HTTP endpoints exposed by your flows (httpNodeAuth).

04

Install the required nodes

From the "Manage palette" menu, add the nodes you need (e.g. node-red-node-email, node-red-contrib-telegrambot). They install on the fly without restarting the server.

05

Configure the reverse proxy and SSL

Place Caddy or Nginx in front of port 1880 for flows.mydomain.com. Important: enable WebSocket support in the Nginx config (proxy_set_header Upgrade / Connection), otherwise the editor does not update in real time. Caddy handles it natively.

06

Build a first flow

Create a test flow: an http in node on /webhook, a function node that transforms the payload, then an http response node. Deploy with the "Deploy" button and test the URL https://flows.mydomain.com/webhook.

Version your flows with Node-RED's built-in "Projects" (enabled in settings.js) coupled with a Git repository: you get a history, branches and a clean rollback of your automations, exactly like code. For critical flows, add a global catch node that captures errors and sends an alert (email/Telegram): you will be warned of an API going down before the chain breaks silently.

Automate your workflows on a ServOrbit Cloud VPS

Deploy Node-RED on a Cloud VPS with preconfigured Docker, a persistent volume and a reverse proxy ready for WebSocket. Your automations run continuously, under your control.

Need help?

Browse our help center and FAQ, or write to our team — support in French, English and Arabic.