FUXA是用NodeJS(后端)和Angular(前端)开发的。
预装Electron应用(第一选择)
你需要登录 github 才能访问 Electron Action Build 的下载按钮, 点击工作流程,向下滚动到“工件”,点击你系统的下载图标

无头便携式双进制(Electron的替代方案)
对于嵌入式设备、服务器或无图形界面的系统进行无头部署,FUXA提供自包含的可移植二进制文件,将整个应用程序(服务器、客户端)打包到单一可执行文件中。
这些二进制文件非常适合工业环境、物联网设备和自动化系统,这些系统不需要用户界面。
下载无头二进制
无头二进制文件作为GitHub Actions工件形式存在。你需要登录GitHub才能下载它们。
点击最新的工作流程运行,向下滚动到“Artifacts”,下载适合你平台的文件:
- Linux:(或适用于ARM设备)
fuxa-headless-linux-x64fuxa-headless-linux-arm64 - Windows:
fuxa-headless-win-x64.exe - macOS:(或适用于Apple Silicon)
fuxa-headless-macos-x64fuxa-headless-macos-arm64
运行无头二进制
Linux
- 下载Linux二进制文件(例如,)。
fuxa-headless-linux-x64 - 让它可执行:
chmod +x fuxa-headless-linux-x64 - 跑步:
./fuxa-headless-linux-x64 - 通过网页浏览器访问(或设备IP:1881)
http://localhost:1881
窗户
- 下载Windows可执行文件(例如,)。
fuxa-headless-win-x64.exe - 双击该文件即可运行。
.exe - 通过网页浏览器访问
http://localhost:1881
macOS
- 下载macOS二进制文件(例如,)。
fuxa-headless-macos-x64 - 让它可执行:
chmod +x fuxa-headless-macos-x64 - 跑步:
./fuxa-headless-macos-x64 - 通过网页浏览器访问
http://localhost:1881
无头功能
- 自成体系:无需外部依赖或安装。
- 数据持久性:用户数据存储在主机系统中。
~/.fuxa-headless-data - 跨平台:运行于Windows、macOS和Linux(包括ARM架构)。
- 工业协议:完全支持 Modbus、OPC-UA、MQTT、Siemens S7 等。
- 网页界面:通过任何网页浏览器访问完整的FUXA编辑器和仪表盘。
故障排除
- 确保1881端口可用且未被防火墙阻挡。
- 对于嵌入式设备,检查系统资源(内存、CPU),因为FUXA使用Node.js运行时。
- 日志可在用户数据目录()。
~/.fuxa-headless-data/logs
安装后使用网页浏览器访问,非Electron安装
完成安装过程后,你可以通过默认端口1881访问Fuxa界面,访问Web服务器的IP地址,无论是localhost还是主机的IP,先试试localhost:1881或host machine IP:1881
Docker Compose(第二个选项)
安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
cd
mkdir docker
mkdir fuxa
cd docker/fuxa
sudo nano docker-compose.yml
将此输入到compose文件中:
version: '3.5'
services:
fuxa:
image: frangoteam/fuxa:latest
network_mode: "host"
volumes:
- ./fuxa_appdata:/usr/src/app/FUXA/server/_appdata
- ./fuxa_db:/usr/src/app/FUXA/server/_db
- ./fuxa_logs:/usr/src/app/FUXA/server/_logs
environment:
- TZ=America/New_York
restart: always
注意:此 Compose 文件使用主机网络模式,详情请参见 Docker 网络,host 允许 Docker 容器与主机处于同一网络。它最适合直接访问PLC/数据库等,但有一些限制,只支持基于Linux的系统,如果你需要在Windows上运行,就需要使用桥接网络模式。
network_mode: "bridge"
启动Docker Compose
sudo docker compose up -d
Docker(第三种选项)
docker pull frangoteam/fuxa:latest
docker run -d -p 1881:1881 frangoteam/fuxa:latest
应用数据(项目)、daq(标签历史)、日志和资源图像的持久存储
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_shapes:/usr/src/app/FUXA/client/assets/lib/svgeditor/shapes -v fuxa_images:/usr/src/app/FUXA/server/_images frangoteam/fuxa:latest
从源码构建自定义 Docker 镜像(第四个选项)
它会从最新的主分支构建(你可以编辑 docker 文件来更改分支)
cd
mkdir docker
mkdir fuxa
cd docker/fuxa
mkdir fuxa-build
cd fuxa-build
wget https://raw.githubusercontent.com/frangoteam/FUXA/master/Dockerfile
sudo docker build -t fuxa-custom-image-name --no-cache .
构建完成后,你就可以使用自定义镜像,例如:
version: '3.5'
services:
fuxa:
image: fuxa-custom-image-name
network_mode: "host"
volumes:
- ./fuxa_appdata:/usr/src/app/FUXA/server/_appdata
- ./fuxa_db:/usr/src/app/FUXA/server/_db
- ./fuxa_logs:/usr/src/app/FUXA/server/_logs
environment:
- TZ=America/New_York
restart: always
使用Node和NPM安装
你需要安装Node 18版本。
警告在 Linux 上 nodejs 18 版本,安装可能会有挑战。如果你不打算通过S7(node-snap7库)与西门子PLC通信,可以从NPM @frangoteam/fuxa-min安装
NPM(第五种选择)
从 NPM 安装
npm install -g --unsafe-perm @frangoteam/fuxa
fuxa
最新版本(第五个选项)
下载最新版本并拆解
警告在 Linux 上 nodejs 18 版本,安装可能会有挑战。如果你不打算通过S7与西门子PLC通信,可以从服务器/package.json中移除node-snap7库
cd ./server
npm install
npm start
打开浏览器(更好的Chrome浏览器)并导航到 http://localhost:1881
作为人机界面(仅限Linux)搭建
这只是在Linux上测试过,但有些步骤可能在Windows上有效
我们将用 electron 代替网页浏览器,因为它不臃肿,且与触摸屏兼容性良好(可以禁用右键菜单等功能)。
该应用只访问已经运行的 Fuxa Web 服务器
sudo apt-get update
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
通过检查Node.js和npm的版本来验证安装:
node -v
npm -v
sudo npm install -g electron --unsafe-perm=true --allow-root
cd /opt
sudo mkdir electron
cd electron
sudo mkdir fuxa-electron
cd fuxa-electron
sudo npm init -y
sudo npm install electron --save-dev
sudo nano main.js
const { app, BrowserWindow } = require('electron');
function createWindow() {
const win = new BrowserWindow({
//width: 800,
//height: 600,
fullscreen: true, // Enable full-screen mode
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
}
});
win.loadURL('http://localhost:1881'); // Replace with your web server URL
}
app.whenReady().then(createWindow);
sudo nano package.json
{
"name": "fuxa-electron",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"description": "",
"devDependencies": {
"electron": "^31.3.1"
}
}
在目录内启动应用进行测试
npm start
使用系统服务和脚本设置自动启动
sudo nano /opt/fuxa-electron-startup.sh
#!/bin/bash
cd /opt/electron/fuxa-electron
npm start
sudo chmod +x /opt/fuxa-electron-startup.sh
systemctl edit --user --force --full fuxa-electron-startup.service
[Unit]
Description=Start Fuxa Electron Script
After=default.target
[Service]
ExecStart=/opt/fuxa-electron-startup.sh
[Install]
WantedBy=default.target
systemctl enable --user fuxa-electron-startup.service