Skip to content

Repository files navigation

EdgeFlow

EdgeFlow Platform

Lightweight, visual IoT automation platform for Raspberry Pi and edge devices

LicenseGoReactStarsIssuesWebsite

Website · Features · Quick Start · Tech Stack · Build Profiles · Contributing


About

EdgeFlow is a node-based automation platform that lets you build IoT workflows visually. Connect sensors, process data, trigger actions, and monitor everything from a single dashboard — no cloud required.

  • Single binary — deploy one Go binary + static frontend, no runtime dependencies
  • Built for constrained devices — runs on a Raspberry Pi Zero with ~50 MB RAM
  • 150+ built-in nodes — GPIO, MQTT, Modbus, databases, AI, and more out of the box
  • Hardware-first — native GPIO support for Pi 4/5 via Linux character device, not memory-mapped hacks

Think Node-RED, but lighter, faster, and purpose-built for edge devices.

Features

Visual Flow Editor

  • Drag-and-drop node canvas with 150+ pre-built node types
  • Real-time execution tracing and debug panel
  • Sub-flow support for reusable logic
  • Built-in terminal, logs, and system monitoring panels

Hardware Integration

  • Raspberry Pi 4/5 GPIO via Linux character device (gpiocdev)
  • I2C sensors (BME280, BMP280, BH1750, AHT20, ADS1015, and more)
  • PIR motion, HC-SR04 ultrasonic, relay, LED, button
  • Software PWM and edge detection

Industrial & Wireless Protocols

  • MQTT, Modbus TCP/RTU, OPC-UA, BACnet, CAN Bus, PROFINET
  • BLE, Zigbee, Z-Wave, LoRa, NFC, RFID, RF433, IR

Integrations

  • AI/LLM: OpenAI, Anthropic, Ollama
  • Databases: SQLite, PostgreSQL, MySQL, MongoDB, Redis, InfluxDB
  • Cloud Storage: AWS S3, Google Drive, Dropbox, OneDrive
  • Messaging: Email, Telegram, Slack, Discord
  • HTTP webhooks and REST APIs

Monitoring & Debugging

  • CPU, memory, disk, temperature, network speed
  • GPIO state visualization
  • Execution history with structured logs
  • Web-based interactive terminal

Quick Start

Prerequisites

  • Go 1.24+
  • Node.js 18+
  • Git

Run Locally

# Clone
git clone https://github.com/EdgxCloud/EdgeFlow.git
cd EdgeFlow
# Build & run backend
make run
# In another terminal — build frontendcd web
npm install
npm run dev

Open http://localhost:5173 (dev) or http://localhost:8080 (production build).

Docker

docker compose up -d

Raspberry Pi

# Build for ARM64
make build-pi-standard
# Install as service
sudo cp deploy/edgeflow-backend.service /etc/systemd/system/
sudo systemctl enable --now edgeflow-backend

Tech Stack

LayerTechnology
BackendGo 1.24, Fiber v2, Zap logging
FrontendReact 18, TypeScript, Vite, Tailwind CSS
Flow CanvasReact Flow (@xyflow/react)
Code EditorMonaco Editor
UI ComponentsRadix UI
StateZustand
Hardwarego-gpiocdev (Linux character device)
ProtocolsMQTT (Paho), Modbus, OPC-UA
DatabasesSQLite, PostgreSQL, MySQL, MongoDB, Redis, InfluxDB
AuthJWT, API key

Node Categories

150+ nodes across 10 categories:

CategoryCountExamples
Core25+inject, debug, function, switch, template, delay, trigger, filter
GPIO15+digital in/out, PWM, PIR, HC-SR04, DHT, BMP280, servo
Network10+HTTP request, webhook, TCP, UDP, FTP, CSV/JSON parser
Database6SQLite, PostgreSQL, MySQL, MongoDB, Redis, InfluxDB
Messaging4Email, Telegram, Slack, Discord
AI/ML3OpenAI, Anthropic, Ollama
Industrial5Modbus TCP/RTU, OPC-UA, BACnet, CAN Bus, PROFINET
Wireless10+BLE, Zigbee, Z-Wave, LoRa, NFC, RFID, RF433, IR
Dashboard12Chart, gauge, button, slider, switch, table, form, template
Cloud Storage5AWS S3, Google Drive, Dropbox, OneDrive, SFTP

Build Profiles

Three build profiles optimized for different hardware:

ProfileTargetBinary SizeRAM Usage
MinimalPi Zero, BeagleBone~10 MB~50 MB
StandardPi 3, Orange Pi~20 MB~200 MB
FullPi 4/5, Jetson~35 MB~400 MB
make build PROFILE=minimal # Pi Zero / constrained devices
make build PROFILE=standard # Pi 3/4 / general use
make build PROFILE=full # Pi 4/5 / all features

Configuration

Copy .env.example to .env and configure:

EDGEFLOW_SERVER_HOST=0.0.0.0
EDGEFLOW_SERVER_PORT=8080
EDGEFLOW_DATABASE_TYPE=sqlite
EDGEFLOW_DATABASE_PATH=./data/edgeflow.db
EDGEFLOW_LOGGER_LEVEL=info
Project Structure
EdgeFlow Platform
├── cmd/edgeflow/ # Application entry point
├── internal/
│ ├── api/ # REST API handlers (Fiber)
│ ├── engine/ # Flow execution engine & scheduler
│ ├── hal/ # Hardware Abstraction Layer (GPIO, I2C, SPI, Serial)
│ ├── node/ # Node registry & message framework
│ ├── storage/ # File, SQLite, Redis backends
│ ├── websocket/ # Real-time WebSocket hub
│ ├── resources/ # System monitoring (CPU, memory, temp)
│ ├── security/ # JWT & API key auth
│ ├── logger/ # Structured logging (Zap)
│ ├── plugin/ # Plugin system
│ └── subflow/ # Nested flow support
├── pkg/nodes/
│ ├── core/ # Inject, debug, function, switch, template, delay...
│ ├── gpio/ # PIR, HC-SR04, LED, relay, button, sensors
│ ├── network/ # HTTP request/webhook, FTP, CSV/JSON parsers
│ ├── database/ # SQLite, PostgreSQL, MySQL, MongoDB, Redis, InfluxDB
│ ├── messaging/ # Email, Telegram, Slack, Discord
│ ├── ai/ # OpenAI, Anthropic, Ollama
│ ├── industrial/ # Modbus, OPC-UA, BACnet, CAN Bus, PROFINET
│ ├── wireless/ # BLE, Zigbee, Z-Wave, LoRa, NFC, RF433, IR
│ ├── storage/ # S3, Google Drive, Dropbox, OneDrive, SFTP
│ └── dashboard/ # UI widgets (chart, gauge, table, form, button...)
├── web/ # React + TypeScript frontend (Vite)
├── configs/ # Default configuration
├── deploy/ # Systemd service files
└── docker-compose.yml
REST API

Base URL: /api/v1

EndpointMethodDescription
/flowsGET, POSTList / create flows
/flows/:idGET, PUT, DELETEGet / update / delete flow
/flows/:id/startPOSTStart flow execution
/flows/:id/stopPOSTStop flow
/flows/:id/nodesGET, POSTList / add nodes
/flows/:id/connectionsGET, POSTList / add connections
/node-typesGETList all 150+ node types
/executionsGETExecution history
/resources/statsGETCPU, memory, disk stats
/system/infoGETSystem info, temperature, uptime
/modulesGETInstalled modules
/modules/installPOSTInstall a module
/healthGETHealth check

WebSocket:/ws (logs, debug, execution events), /ws/terminal (interactive shell)

Roadmap

  • Plugin marketplace
  • Flow versioning and rollback
  • Multi-device orchestration
  • Mobile companion app
  • Visual rule engine for complex conditions

See the open issues for a full list of proposed features and known issues.

Contributing

Contributions are welcome! Whether it's bug reports, feature requests, or pull requests — all contributions help make EdgeFlow better.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Community

License

Distributed under the Apache License 2.0. See LICENSE for more information.

Copyright 2024-2026 EdgeFlow

(back to top)

About

The most lightweight IoT automation platform with enterprise SaaS built-in. Run workflows on Raspberry Pi Zero, manage thousands of devices from the cloud. Edge-first + cloud platform.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages