frangoteam/FUXA

GitHub: frangoteam/FUXA

FUXA 是一个基于 Web 的开源工业过程可视化与 SCADA/HMI 平台,用于连接工业设备并构建实时监控仪表盘。

Stars: 4720 | Forks: 1286

![fuxa logo](/client/src/favicon.ico) # FUXA [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Docs](https://img.shields.io/badge/docs-online-brightgreen)](https://frangoteam.github.io/FUXA/) [![Node](https://img.shields.io/badge/node-18%20LTS-green)](https://nodejs.org/) [![GitHub stars](https://img.shields.io/github/stars/frangoteam/FUXA?style=flat)](https://github.com/frangoteam/FUXA/stargazers) [![Docker Pulls](https://img.shields.io/docker/pulls/frangoteam/fuxa)](https://hub.docker.com/r/frangoteam/fuxa) [![npm downloads](https://img.shields.io/npm/dt/%40frangoteam/fuxa?label=npm%20downloads)](https://www.npmjs.com/package/@frangoteam/fuxa) FUXA 是一个用于工业自动化、IoT 和实时过程可视化的**基于 Web 的 SCADA / HMI 平台**。 它允许您构建现代化的 dashboard,连接工业设备,并使用标准工业协议(如 **Modbus、OPC-UA、MQTT 和 Siemens S7**)来监控机器。 ![fuxa editor](/screenshot/fuxa-editor.png) ![fuxa ani](/screenshot/fuxa-thinglinks.gif) ![fuxa action](/screenshot/feature-action-move.gif) ## ✨ 功能 - **工业协议支持** Modbus RTU/TCP、Siemens S7 Protocol、OPC-UA、BACnet IP、MQTT、Ethernet/IP (Allen Bradley)、ODBC、ADSclient、Gpio (Raspberry)、WebCam、MELSEC、Redis - **数据库与数据存储** 内置数据历史记录 (DAQ),支持 SQLite、InfluxDB 和其他时序数据库。 通过 ODBC 和 Redis 进行外部集成。 - **SCADA/HMI Web 编辑器** 完全基于 Web 的工程与设计 - **跨平台架构** Backend:Node.js Frontend:Angular、HTML5、CSS、SVG ## 为什么选择 FUXA FUXA 提供了一个现代化的**基于 Web 的工业监控、SCADA/HMI 应用和 IoT dashboard 平台**。 它旨在使用标准 Web 技术简化实时可视化和工业集成的创建。 主要优势: - 现代化的**基于 Web 的 SCADA / HMI 架构** - 用于 dashboard 和过程可视化的可视化编辑器 - 支持工业协议(Modbus、OPC-UA、MQTT、Siemens S7 等) - 采用现代技术构建(Node.js、Angular、SVG) - 运行于 **Linux、Windows、macOS、Docker、Raspberry Pi 等** - 开源且可扩展 ## 🚀 在线演示 这里是一个 FUXA 编辑器的[在线演示](https://frangoteam.github.io)示例。 ## 📚 文档 官方文档可在以下地址获取: 👉 https://frangoteam.github.io/FUXA/ 文档源码位于此仓库的 `/docs` 目录中。 该站点使用 MkDocs (Material 主题) 构建,并通过 GitHub Actions 自动部署。 ## 🛠 安装与运行 FUXA 使用 NodeJS (backend) 和 Angular (frontend) 开发。 有关详细的指南和高级配置选项,请参阅官方文档: 👉 https://frangoteam.github.io/FUXA/ ### 1° 选项 - 从 docker 运行 ``` docker pull frangoteam/fuxa:latest docker run -d -p 1881:1881 frangoteam/fuxa:latest // persistent storage of application data (project), daq (tags history), logs and images (resource) docker run -d -p 1881:1881 -v fuxa_appdata:/usr/src/app/FUXA/server/_appdata -v fuxa_db:/usr/src/app/FUXA/server/_db -v fuxa_logs:/usr/src/app/FUXA/server/_logs -v fuxa_images:/usr/src/app/FUXA/server/_images frangoteam/fuxa:latest // with Docker compose // persistent storage will be at ./appdata ./db ./logs and ./images wget https://raw.githubusercontent.com/frangoteam/FUXA/master/compose.yml docker compose up -d ``` 打开浏览器(推荐使用 Chrome)并访问 http://localhost:1881 ### 2° 选项 - 从源码安装 [下载最新版本](https://github.com/frangoteam/FUXA/releases)并解压 您需要安装 [Node.js](https://nodejs.org/en/about/previous-releases) - 推荐:Node.js 18 LTS **注意** 从 FUXA 1.2.7 开始,由于上游依赖项的更新,不再支持 Node.js 14 及更早版本。 **警告** 在 Linux 系统上(尤其是 Raspberry Pi),使用 Node.js 18 安装原生依赖项可能需要额外的构建工具。 如果您不打算使用特定功能,可以安全地从 ```server/package.json``` 中移除它们: - 如果您不需要 Siemens S7 通信,请移除 ```node-snap7``` - 如果您不需要外部数据库连接,请移除 ```odbc``` ``` cd ./server npm install npm start ``` 打开浏览器(推荐使用 Chrome)并访问 http://localhost:1881 ### 3° 选项 - 从 [NPM](https://www.npmjs.com/package/@frangoteam/fuxa) 安装 您需要安装 [Node.js](https://nodejs.org/en/about/previous-releases) - 推荐:Node.js 18 LTS **警告** 在 Node.js 18 版本的 Linux 系统上,安装可能会比较困难。 如果您不打算通过 S7 (node-snap7 库) 与 Siemens PLC 通信,您可以从 [NPM @frangoteam/fuxa-min](https://www.npmjs.com/package/@frangoteam/fuxa-min) 安装 ``` npm install -g --unsafe-perm @frangoteam/fuxa fuxa ``` 打开浏览器(推荐使用 Chrome)并访问 http://localhost:1881 ### 4° 选项 - 使用预构建的 Electron 包安装 您需要登录到 GitHub 才能访问 Electron Action 构建的下载按钮, 点击工作流并滚动到 Artifacts,然后点击适合您系统的下载图标 [Electron Action 构建](https://github.com/frangoteam/FUXA/actions/workflows/electron_latest.yml) image ### 5° 选项 - 用于嵌入式设备的无头便携版二进制文件 对于在没有 GUI 的嵌入式设备或服务器上进行无头部署,FUXA 为 Windows、macOS 和 Linux 提供了自包含的便携版二进制文件。 这些二进制文件包含了所需的一切(服务器、客户端),并作为独立可执行文件运行。 从 GitHub Actions artifacts 下载最新构建: [无头便携版构建](https://github.com/frangoteam/FUXA/actions/workflows/headless_packaging.yml) 有关详细的安装和运行说明,请参阅文档。 ### 创建 Electron 应用程序 Electron 是一个使用 Web 技术构建跨平台桌面应用程序的框架。Electron 应用程序是独立的,这意味着它可以在您的桌面上独立运行,而无需 Web 浏览器。 要创建 Electron 应用程序,您需要安装 Node.js 18。请按照以下步骤操作: 首先构建服务器和客户端 ``` cd ./server npm install cd ../client npm install npm run build ``` 打包 ``` cd ./app npm install npm run package ``` 按照这些步骤操作后,您将获得一个独立的 FUXA Electron 应用程序。该应用程序可以在 ./app 目录中找到。 ## 用法与文档 - 📚 官方文档:https://frangoteam.github.io/FUXA/ - 观看来自 [frangoteam](https://www.youtube.com/@umbertonocelli5301) 的视频 - 观看来自 [Fusion Automate - Urvish Nakum](https://youtube.com/playlist?list=PLxrSjjYyzaaK8uY3kVaFzfGnwhVXiCEAO&si=aU1OxgkUvLQ3bXHq) 的视频 - 浏览 [DeepWiki](https://deepwiki.com/frangoteam/FUXA) 获取 AI 辅助的文档和代码导航 ## 社区 SVG Widgets 正在寻找现成的、可重复使用的 SVG widgets 吗? 查看配套仓库 **FUXA-SVG-Widgets**: - 仓库:https://github.com/frangoteam/FUXA-SVG-Widgets - 创作指南与示例:请参阅仓库的 README 和 Wiki 页面: https://github.com/frangoteam/FUXA/wiki/HowTo-Widgets ## 🧪 调试 (全栈) 安装并开始提供前端服务 ``` cd ./client npm install npm start ``` 以调试模式启动服务器和客户端(浏览器) ``` In vscode: Debug ‘Server & Client’ ``` ## 🏗 构建 为生产环境构建前端 ``` cd ./client ng build --configuration=production ``` ## 谁在使用 FUXA FUXA 被应用于工业自动化、IoT、监控和研究环境中。 ### FUXA Pro 如果您在生产环境中使用 FUXA,请考虑通过使用 **FUXA Pro** 来支持该项目的开发。**. FUXA Pro 包含额外的专业功能,例如: - 白标品牌化(自定义 logo 和标签) - 额外的资源和模板 - 用户和脚本事件日志记录 - 不限制安装次数 FUXA 的开源版本保持完全可用,并将随着社区的贡献不断发展。 **许可证:** 一次性付款 – €100 更多信息: https://frangoteam.org ## 💬 让我们知道! 如果您能将自己的图形发送给我们,以收集成一个库与他人分享,我们会感到非常高兴。只需发送电子邮件至 info@frangoteam.org,如果您对我们的工作有任何问题或建议,请务必告诉我们。 ## ## 📄 许可证 MIT。
标签:Angular, GNU通用公共许可证, Grype, HMI, MITM代理, Node.js, SCADA, 云安全, 哈希传递, 工业自动化, 物联网, 自动化攻击, 请求拦截