小岳
2026-11-06
点 赞
0
热 度
19
评 论
0

FUXA:浏览器里搭一张电气监控屏

  1. 首页
  2. 开源分享
  3. FUXA:浏览器里搭一张电气监控屏

文章摘要

摸鱼小助手

假设这样一个现场:配电室新加了一面柜,要求三天内看到电流、电压、温度、断路器状态的实时画面,还能在浏览器里打开。同一件事走商用组态软件的常规流程——采购、授权、加密狗、点位计费、现场调试——三天时间,多数情况下连前期商务流程都走不完。

frangoteam/FUXA 走的是另一条路。5,254 star、1,422 fork、430 个 open issues,后端 Node.js、前端 Angular,MIT 协议。README 对自己的定义是 "a web-based SCADA / HMI platform"(即组态软件与设备监控平台)——把工业设备的数据接进来,在浏览器画布上搭一张可交互的监控屏。最近一次提交在 2026-11-04,最新 release v1.3.5(2026-10-19),还在维护。

项目名片

项目 内容
仓库 frangoteam/FUXA
数据(2026-11-05 抓取) 5,254 star / 1,422 fork / 430 open issues
技术栈 Node.js(后端)+ Angular(前端)
许可证 MIT;另有付费版 FUXA Pro,€100 一次性
最新版本 v1.3.5,2026-10-19
默认端口 1881,认证默认关闭
镜像体积 211.8 MB
文档 https://frangoteam.github.io/FUXA/

它解决什么问题

工业现场的痛点是三件事同时发生:设备协议各不相同,画面要人一格格画,画完还得让不写代码的人改。

FUXA 把这三件事收进同一个浏览器页面。它替掉的是"为一个配电室买一套商用组态软件授权"的那部分场景——注意是部分,不是全部。

能替掉的是授权成本和交付速度,替不掉的是功能安全和确定性。

边界要说清:开源版是 MIT,另有付费版 FUXA Pro(€100 一次性,含白标、事件日志、不限安装数)。商用前先确认你要的功能落在哪一侧。

核心机制

  1. 一套协议驱动层,覆盖 Modbus RTU/TCP、Siemens S7(S7-200/300/400/1200/1500)、OPC UA 客户端、BACnet IP、MQTT、EtherNet/IP(Allen Bradley)、ODBC、Beckhoff ADS、MELSEC(三菱)、Redis、SNMP v1/v2c/v3(含 trap)、WebAPI、GPIO、WebCam。
  2. 编辑器三层结构:连接 → 标签 → 视图。控件通过「属性」里的「数据」页绑标签,从用法上看,这个分层让改画面的人不必碰协议配置。
  3. 内置 DAQ 历史库,可写 SQLite、InfluxDB 及其他时序库;外部数据经 ODBC 或 Redis 对接。
  4. 纯 Web 前端,画面在浏览器里渲染,不需要在工程师站装运行版——这也是它不按客户端数量收授权费的原因之一。

跑起来

下面两套选一套。第一套只为试跑,别在这里建工程——它没有卷。

docker pull frangoteam/fuxa:latest
docker run -d -p 1881:1881 \
  frangoteam/fuxa:latest

带持久化,四个命名卷,这条才是能用的:

D=/usr/src/app/FUXA/server
docker run -d -p 1881:1881 \
  -v fuxa_appdata:$D/_appdata \
  -v fuxa_db:$D/_db \
  -v fuxa_logs:$D/_logs \
  -v fuxa_images:$D/_images \
  frangoteam/fuxa:latest

容器里四个数据目录都在 $D 下面,抽成变量只是为了让每行短到手机上也看得全;Windows 下把 $D 换成完整路径。仓库根目录还有一份 compose.yml,想用 compose 就直接下那个文件,卷与上面一一对应。

浏览器打开 http://localhost:1881(或服务器 IP:1881)就是编辑器。

从零到一张屏

从一条命令到一张屏:五步与两个卡点
  1. 浏览器访问 http://你的服务器IP:1881,进首页点「新建项目」。
  2. 进编辑器左栏「连接(Connections)」,加设备。
  3. 关键前提:官方文档原文是 "To add a Modbus connection you have to install the driver in Plugins"——加 Modbus、S7、ADS 这些连接之前,得先去「插件(Plugins)」里把驱动装上。照 README 直接加连接,多半建不起来,报错还像接线或 IP 的问题,容易误判。
  4. 设备连上之后才能加标签(文档原文:To add OPCUA Tags the device have to be connected)。
  5. 切到「视图(View)」拖控件——开关、仪表、趋势图,在「属性(Properties)」的「数据」页把控件绑到标签上。
  6. 布局用「布局设置」,做完存盘。

进编辑器第一件事,把工程导出一份 JSON 备份。理由在下面第二条坑。

适合谁用,什么时候别用

适合:手上有一两个配电室、水泵房、小型产线,协议是 Modbus 或 S7,要求一周内出画面;需要一个能远程打开、能让非程序员改布局的监控画面;想先把数据接进来看一眼,再决定要不要上大系统。

别用:需要功能安全认证的回路;对确定性、冗余切换、毫秒级响应有硬要求的高可靠性场景;跨厂区上百套设备、要求统一运维和审计的场合。这些场合该上的是带认证、带冗余的方案,FUXA 不在这类清单里,硬套上去,责任和风险都由你自己承担。

另外两件事要先处理。其一,官方文档里那份 compose 用 network_mode: "host",只适用于 Linux,Docker Desktop(Windows / macOS)上跑不出预期效果,得改成 bridge 并映射端口。其二,认证默认关闭——1881 端口直接对外,就是一个无登录的监控画面;要开 secureEnabled,并把默认的 admin / 123456 改掉。

三条真实的坑

  1. README 里的 // 不是合法 shell 注释。 README 用 // 给"persistent storage of application data…"那行做注释,整段粘进终端会直接报错。这是"跑不通"的第一大来源,上面给的命令是清过的。
  2. 不挂卷,工程会没。 基础 docker run -d -p 1881:1881 没有 volume,容器一删工程就没了。而即使挂了四个卷,仍有 issue #2717(2026-11-03,Win11)报告从 1.3.4 升级到 1.3.5 后工程丢失。所以稳妥做法是导出工程 JSON。
  3. 锁版本号不等于更稳。 latest 镜像内是 Node 22.23.4,而 frangoteam/fuxa:1.3.5 镜像内还是 Node 18.20.8——已 EOL,含未修 CVE-2026-111497(issue #2711)。直觉上锁版本更安全,这个项目恰好相反。

小结

FUXA 用两条 docker 命令,替掉了一部分"为一个配电室买套商用组态授权"的支出,把画面搬进浏览器。它省的是钱和时间,不是安全责任——上线前把认证打开、把工程导出,这两件事不做,省下来的会还回去。

参考资料

  • 仓库:https://github.com/frangoteam/FUXA
  • 文档站:https://frangoteam.github.io/FUXA/
  • 设备与标签操作:https://frangoteam.github.io/FUXA/HowTo-Devices-and-Tags/
  • Docker Hub:https://hub.docker.com/r/frangoteam/fuxa
  • MIT LICENSE 直链:https://github.com/frangoteam/FUXA/blob/master/LICENSE
  • issue #2717(升级后工程丢失):https://github.com/frangoteam/FUXA/issues/2717
  • issue #2711(Node 18 EOL):https://github.com/frangoteam/FUXA/issues/2711
  • release v1.3.5:https://github.com/frangoteam/FUXA/releases/tag/v1.3.5

本站站长,主角光环,怎么滴,你还想攻击你的站长吗,真是好big的狗胆

小岳

intp 逻辑家

站长

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。

目录

欢迎来到摸鱼干货栈,这里为您提供开源与摸鱼源码

15 文章数
6 分类数
0 评论数
31标签数
最近评论