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

# FUXA
[](LICENSE)
[](https://frangoteam.github.io/FUXA/)
[](https://nodejs.org/)
[](https://github.com/frangoteam/FUXA/stargazers)
[](https://hub.docker.com/r/frangoteam/fuxa)
[](https://www.npmjs.com/package/@frangoteam/fuxa)
FUXA 是一个用于工业自动化、IoT 和实时过程可视化的**基于 Web 的 SCADA / HMI 平台**。
它允许您构建现代化的 dashboard,连接工业设备,并使用标准工业协议(如 **Modbus、OPC-UA、MQTT 和 Siemens S7**)来监控机器。



## ✨ 功能
- **工业协议支持**
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)
### 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, 云安全, 哈希传递, 工业自动化, 物联网, 自动化攻击, 请求拦截