FUXA
FUXA is a web-based SCADA / HMI platform for industrial automation, IoT and real-time process visualization.
It allows you to build modern dashboards, connect industrial devices and monitor machines using standard industrial protocols such as Modbus, OPC-UA, MQTT and Siemens S7.
⭐ If you find FUXA useful, please consider giving the project a star.
✨ Features
- Industrial protocol support
- Database and data storage
- SCADA/HMI Web-Editor
- Cross-platform architecture
Why FUXA
FUXA provides a modern web-based platform for industrial monitoring, SCADA/HMI applications and IoT dashboards.
It is designed to simplify the creation of real-time visualizations and industrial integrations using standard web technologies.
Key advantages:
- Modern web-based SCADA / HMI architecture
- Visual editor for dashboards and process visualization
- Support for industrial protocols (Modbus, OPC-UA, MQTT, Siemens S7 and more)
- Built with modern technologies (Node.js, Angular, SVG)
- Runs on Linux, Windows, macOS, Docker, Raspberry Pi and more
- Open-source and extensible
🚀 Live Demo
Here is a live demo example of FUXA editor.📚 Documentation
Official documentation is available at:
👉 https://frangoteam.github.io/FUXA/
The documentation source is located in the /docs directory of this repository.
The site is built using MkDocs (Material theme) and automatically deployed via GitHub Actions.
🛠 Installing and Running
FUXA is developed with NodeJS (backend) and Angular (frontend).For detailed guides and advanced configuration options, see the official documentation:
👉 https://frangoteam.github.io/FUXA/
1° Option - Running from 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
Open up a browser (better Chrome) and navigate to http://localhost:1881
2° Option - Install from source
Download the latest release and unpack itYou need to have installed Node.js
- Recommended: Node.js 18 LTS
WARNING On Linux systems (especially Raspberry Pi), installing native dependencies with Node.js 18 may require additional build tools.
If you do not intend to use specific features, you can safely remove them from ``server/package.json`:
`node-snap7` if you do not need Siemens S7 communication
`odbc`` if you do not need external database connectivity
cd ./server
npm install
npm start
Open up a browser (better Chrome) and navigate to http://localhost:1881
3° Option - Install from NPM
You need to have installed Node.js
- Recommended: Node.js 18 LTS
npm install -g --unsafe-perm @frangoteam/fuxa
fuxa
Open up a browser (better Chrome) and navigate to http://localhost:1881
4° Option - Install using prebuilt Electron Packages
You will need to be logged into github to access the download button for Electron Action Builds, click on the workflow and scroll down to Artifacts and click the download icon for you system
5° Option - Headless Portable Binaries for Embedded Devices
For headless deployments on embedded devices or servers without GUI, FUXA provides self-contained portable binaries for Windows, macOS, and Linux.
These binaries include everything needed (server, client) and run as standalone executables.
Download the latest builds from GitHub Actions artifacts:
For detailed installation and running instructions, see the documentation.
Creating the Electron Application
Electron is a framework for building cross-platform desktop applications using web technologies. An Electron application is standalone, meaning it can be run independently on your desktop without needing a web browser.To create the Electron application, you need to have node.js 18 installed. Follow these steps:
Build Server and Client First
cd ./server
npm install
cd ../client
npm install
npm run build
Packaging
cd ./app
npm install
npm run package
After following these steps, you will have a standalone Electron application for FUXA. The application can be found in the ./app directory.
Usage and Documentation
- 📚 Official Documentation: https://frangoteam.github.io/FUXA/
- Look video from frangoteam
- Look video from Fusion Automate - Urvish Nakum
- Browse the DeepWiki for AI-assisted docs and code navigation
Community SVG Widgets
Looking for ready-made, reusable SVG widgets? Check out the companion repository FUXA-SVG-Widgets:
- Repository: https://github.com/frangoteam/FUXA-SVG-Widgets
- Authoring guide & examples: see the repo README and the Wiki page:
🧪 To Debug (Full Stack)
Install and start to serve the frontendcd ./client
npm install
npm start
Start the Server and Client (Browser) in Debug Mode
In vscode: Debug ‘Server & Client’
🏗 To Build
Build the frontend for productioncd ./client
ng build --configuration=production
Who uses FUXA
FUXA is used in industrial automation, IoT, monitoring and research environments.
FUXA Pro
If you are using FUXA in production, consider supporting the development of the project by using FUXA Pro.**.
FUXA Pro includes additional professional features such as:
- White-label branding (custom logo and labels)
- Additional resources and templates
- User and script event logging
- Unlimited installations
License: one-time payment – €100
More information: https://frangoteam.org
🤝 Contributing
Contributions are welcome and greatly appreciated.
You can contribute by:
- Improving or fixing code
- Enhancing documentation
- Reporting bugs
- Proposing new features
- Sharing examples and use cases
For full contribution guidelines (code and documentation), please read: