自托管 Node-RED:构建本地自动化并随时随地访问

发布: (2026年2月2日 GMT+8 17:14)
7 分钟阅读
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the full text of the post. Could you please paste the content you’d like translated (excluding the source link you already provided)? Once I have the article text, I’ll translate it into Simplified Chinese while preserving the original formatting, markdown, and any code blocks or URLs.

介绍

如果你曾想在不从头编写完整后端的情况下连接传感器、API、仪表盘和在线服务,Node‑RED 是你可以采用的最简便工具之一。它让你通过将块(称为 节点)像流程图一样连线,直观地创建自动化逻辑。

真正的优势在于你不需要云平台来使用它。当你在自己的笔记本、台式机或 Raspberry Pi 上自行托管 Node‑RED 时,工作流保持在你的本地环境中:数据保持私密,自动化逻辑由你掌控,并且可以与本地设备集成,而无需将所有内容推送到第三方服务。

如果你还想让 Node‑RED 对外开放,以实现远程访问或 webhook,Pinggy 可以在几秒钟内创建安全隧道。

您将构建的内容

  • 一个本地运行的自托管 Node‑RED 实例。
  • http://localhost:1880 的基于浏览器的 Node‑RED 编辑器。
  • 通过 Pinggy 获取的公共 URL,以远程访问 Node‑RED。
  • 能够接收来自外部服务的 webhook。

为什么自行托管 Node‑RED

在本地运行 Node‑RED 可为您带来多项实用优势:

  • 隐私: 您的自动化逻辑永不离开您的网络。
  • 本地设备访问: 直接控制同一局域网内的硬件。
  • 成本节约: 无需持续的托管费用。
  • 快速原型: 无需部署步骤,立即获得反馈。
  • 实时调试: 在您自己的机器上实时检查流程。

典型使用场景包括:

  • 接收 Webhook(GitHub、Slack、Stripe、Twilio 等)。
  • 在您不在时控制物联网设备。
  • 与远程团队共享仪表板。
  • 在投入生产前安全地测试集成。

Node‑RED 概述

Node‑RED 是一个开源的、基于流的编程工具(最初由 IBM 创建),旨在连接:

  • 硬件设备
  • 数据库
  • HTTP API
  • 自动化工具
  • 云服务

主要特性

  • 可视化流编辑器(拖拽、连线)
  • 海量社区节点库
  • 支持仪表盘用于 UI 监控/控制
  • Function 节点用于自定义 JavaScript 逻辑
  • 可将流导入/导出为 JSON
  • 即使在 Raspberry Pi 上也能良好运行

前置条件

确保你已安装最新的 Node.js 版本(v18 或更高)。

node --version   # should show v18.x or higher

安装 Node.js(Ubuntu/Debian 示例)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
npm --version   # verify npm is installed

安装 Node‑RED

全局安装(推荐)

npm install -g --unsafe-perm node-red

本地安装(可选)

mkdir node-red
cd node-red
npm init -y
npm install --unsafe-perm node-red

验证安装

# Global
node-red --version

# Local
npx node-red --version

您应该会看到类似 v4.x.x 的输出。

运行 Node‑RED

# Global
node-red

# Local
npx node-red

您会看到类似以下的日志:

Node-RED version: 4.x.x
Node.js version: v20.x.x
URL: http://127.0.0.1:1880/

在浏览器中打开并访问 http://localhost:1880 以进入流程编辑器。

创建一个简单的测试流程

  1. Inject 节点拖到画布上。
  2. Debug 节点拖到它旁边。
  3. Inject → Debug 连接。
  4. 点击 Deploy

按下注入按钮;负载将出现在 Debug 面板中。这确认 Node‑RED 在本地正常工作。

将 Node‑RED 暴露到互联网(使用 Pinggy)

许多项目最终需要:

  • 从手机或平板进行远程访问
  • 远程监控仪表盘
  • Webhook 接收端点
  • 为团队成员共享仪表盘

Pinggy 可创建安全的 SSH 隧道,无需路由器配置。

ssh -p 443 -R0:localhost:1880 qr@free.pinggy.io

Pinggy 将输出一个公共 HTTPS URL,例如:

https://randomstring.a.pinggy.link

在任意浏览器中打开该 URL。qr@ 选项还会打印二维码,方便移动端快速访问。

注意: 在免费套餐下,URL 会在每次重新连接后更改。若需要稳定的地址(用于 Webhook),可考虑 Pinggy Pro 的永久子域名。

使用 Node‑RED 与 Webhooks

一旦可以从互联网访问,你可以添加 HTTP In 节点来接受来自以下服务的 webhook 调用:

  • GitHub Actions
  • Slack
  • Stripe 支付
  • Twilio 短信
  • 任意 REST API 提供商

典型的流程模式:

  1. HTTP In(监听 /webhook)→ Function(处理负载)→ Switch/Change(逻辑)→ Output(例如,切换继电器、存储数据、发送警报)。

构建远程仪表板

Node‑RED Dashboard 节点让您创建 UI 面板(图表、开关、文本)。通过 Pinggy URL 访问它们,轻松实现:

  • 监控传感器读数(温度、湿度、运动)
  • 远程控制继电器或开关
  • 实时查看日志或警报

开发工作流程

  1. 在本地构建 – 在你的机器上设计和测试流程。
  2. 连接真实的 webhook 提供商 – 使用公共的 Pinggy URL。
  3. 快速迭代 – 立即部署更改,无需云端重新部署。

这种方式让你拥有云端式开发的便利,同时所有内容都由你自行掌控。

结论

自托管 Node‑RED 提供了一个轻量级、灵活的自动化平台,可在您自己的硬件上运行。通过使用 Pinggy 隧道,您可以消除常见的网络障碍——无需路由器配置、无需端口转发、无需公共托管设置。

  • 安装 Node‑RED → 本地运行 → 使用 Pinggy 暴露 → 在任何地方进行自动化、集成和实验。

您的流程仍然属于您,您的系统保持私密,您的自动化在真实世界中真正可用。

Back to Blog

相关文章

阅读更多 »