EdgeFlow can be installed in multiple ways depending on your needs. From a simple one-line installer to building from source, choose the method that works best for your environment.
Choose Your Installation Method
Raspberry Pi
Prepare your Raspberry Pi with Imager before installing EdgeFlow. Essential first step for Pi users.
~10 minQuick Install
One-line installation script for Linux systems. Automatically detects your platform and sets up everything.
~2 minDocker
Containerized deployment with Docker or Docker Compose. Great for isolated environments.
~5 minManual Install
Download pre-built binaries and configure manually. Full control over the setup process.
~10 minBuild from Source
Clone and build from source code. For contributors and custom builds.
~15 minRaspberry Pi Preparation
Flash Raspberry Pi OS to your SD card before installing EdgeFlow
If your Pi doesn't have an operating system yet, follow these steps to get it ready. Already running Raspberry Pi OS? Skip to Quick Install.
What You'll Need
Raspberry Pi
Pi 3, 4, 5, or Zero 2 W
Pi 4 (2GB+) recommended microSD Card
16GB or larger
Class 10 / A2 recommended Computer
Windows, macOS, or Linux
To flash the SD card Network
Ethernet or Wi-Fi
For SSH & EdgeFlow access Step 1: Download Raspberry Pi Imager
Raspberry Pi Imager is the official tool to flash operating systems onto SD cards. Download it for your computer:
Step 2: Flash Raspberry Pi OS
Launch the Imager app you just installed.
Select your Raspberry Pi model (Pi 4, Pi 5, etc.).
Select Raspberry Pi OS (64-bit). For headless EdgeFlow deployments, choose Raspberry Pi OS Lite (64-bit) â no desktop environment, lower resource usage.
Click the gear icon or "Edit Settings" before flashing. Set these options:
- Hostname: Set to
edgeflow(or your preferred name) - Enable SSH: Check "Use password authentication" or add your public key
- Username & Password: Set a secure username and password
- Wi-Fi: Enter your SSID and password (skip if using Ethernet)
- Locale: Set your timezone and keyboard layout
Insert your microSD card, select it as the storage target, and click Write. Wait for the process to complete.
Step 3: Boot & Connect
# Insert the SD card into your Pi and power it on
# Wait ~60 seconds for first boot, then connect:
ssh pi@edgeflow.local
# Or use the IP address:
ssh pi@192.168.1.xxx edgeflow.local doesn't resolve, find your Pi's IP address from your router's admin page or use nmap -sn 192.168.1.0/24 to scan your network.
Step 4: Wi-Fi Configuration (if needed)
If you didn't configure Wi-Fi during the Raspberry Pi Imager setup, or need to connect to a different network, use nmtui â the built-in NetworkManager text UI. Raspberry Pi OS Bookworm and later uses NetworkManager for all network configuration.
Option A: nmtui (Interactive UI â Recommended)
sudo nmtui Option B: nmcli (Command Line)
# List available Wi-Fi networks
sudo nmcli dev wifi list
# Connect to a network
sudo nmcli dev wifi connect "YourNetworkSSID" password "YourPassword"
# Verify connection
nmcli dev status
# Check your IP address
ip addr show wlan0 Troubleshooting Wi-Fi
# Check if Wi-Fi interface is up
nmcli radio wifi
# If Wi-Fi is disabled, enable it
sudo nmcli radio wifi on
# Restart NetworkManager if issues persist
sudo systemctl restart NetworkManager
# View saved connections
nmcli connection show
# Forget a saved network
sudo nmcli connection delete "YourNetworkSSID" wpa_supplicant or /etc/wpa_supplicant/wpa_supplicant.conf. All network configuration is now handled through NetworkManager (nmtui / nmcli). Old tutorials referencing wpa_supplicant or dhcpcd will not work on modern Raspberry Pi OS.
Your Raspberry Pi is now running and accessible via SSH. Continue to Quick Install below to install EdgeFlow.
Quick Install
The fastest way to get EdgeFlow running on your Raspberry Pi or Linux system
curl -fsSL https://edgx.cloud/install.sh | sudo bash The installation script automatically handles everything:
Identifies your OS and architecture (amd64, arm64, armv7)
Gets the latest release from GitHub
Sets up a dedicated edgeflow system user
Creates /opt/edgeflow/data and /opt/edgeflow/logs
Sets up systemd with security hardening
Enables and starts the service automatically
After installation, open your browser and navigate to:
http://localhost:8080 or http://<your-device-ip>:8080 from another device Docker Installation
Run EdgeFlow in a container for isolated, portable deployments
Quick Start with Docker Run
docker run -d \
--name edgeflow \
-p 8080:8080 \
-v edgeflow-data:/app/data \
-v edgeflow-logs:/app/logs \
edgeflow/edgeflow:latest With GPIO Access (Raspberry Pi)
docker run -d \
--name edgeflow \
-p 8080:8080 \
-v edgeflow-data:/app/data \
-v /sys:/sys \
--privileged \
--device /dev/gpiomem:/dev/gpiomem \
--device /dev/i2c-1:/dev/i2c-1 \
edgeflow/edgeflow:latest Docker Compose (Recommended)
Create a docker-compose.yml file:
version: '3.8'
services:
edgeflow:
image: edgeflow/edgeflow:latest
container_name: edgeflow
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- edgeflow-data:/app/data
- edgeflow-logs:/app/logs
environment:
- EDGEFLOW_SERVER_HOST=0.0.0.0
- EDGEFLOW_SERVER_PORT=8080
- EDGEFLOW_LOGGING_LEVEL=info
- TZ=UTC
healthcheck:
test: ["CMD", "wget", "--spider", "http://localhost:8080/api/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
edgeflow-data:
edgeflow-logs: Start
docker compose up -d View Logs
docker compose logs -f Stop
docker compose down Update
docker compose pull && docker compose up -d Manual Installation
Download and install pre-built binaries for your platform
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Linux (Debian, Ubuntu, Raspberry Pi OS) | Raspberry Pi OS 64-bit |
| RAM | 512 MB | 2 GB+ |
| Storage | 50 MB | 1 GB+ |
| Architecture | amd64, arm64, armv7 | |
Step 1: Install EdgeFlow
curl -fsSL https://edgx.cloud/install.sh | sudo bash The install script auto-detects your platform and installs the correct binary.
Step 2: Create Directories & Config
# Create installation directory
sudo mkdir -p /opt/edgeflow/{data,logs,configs}
# Create default config
sudo cat > /opt/edgeflow/configs/default.yaml << 'EOF'
server:
host: 0.0.0.0
port: 8080
database:
driver: sqlite
path: /opt/edgeflow/data/edgeflow.db
logging:
level: info
format: json
engine:
max_concurrent_executions: 100
execution_timeout: 5m
hardware:
gpio_enabled: false
i2c_enabled: false
spi_enabled: false
scheduler:
enabled: true
timezone: "UTC"
EOF Step 3: Create System Service
# Create service file
sudo cat > /etc/systemd/system/edgeflow.service << 'EOF'
[Unit]
Description=EdgeFlow - Edge & IoT Automation Platform
After=network.target
[Service]
Type=simple
User=edgeflow
Group=edgeflow
WorkingDirectory=/opt/edgeflow
ExecStart=/usr/local/bin/edgeflow
Restart=on-failure
RestartSec=10s
# Security hardening
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/edgeflow/data /opt/edgeflow/logs
[Install]
WantedBy=multi-user.target
EOF
# Create system user
sudo useradd -r -s /bin/false -d /opt/edgeflow edgeflow
# Set permissions
sudo chown -R edgeflow:edgeflow /opt/edgeflow
# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable edgeflow
sudo systemctl start edgeflow Step 4: Verify Installation
# Check service status
sudo systemctl status edgeflow
# View logs
sudo journalctl -u edgeflow -f
# Test the API
curl http://localhost:8080/api/health Build from Source
Build EdgeFlow from source for custom configurations or development
Prerequisites
Go 1.21+
Required for building the backend
brew install go Node.js 18+
Required for building the frontend
brew install node Make
Build automation tool
Usually pre-installed Git
For cloning the repository
apt install git Clone and Build
The source repository will be available on GitHub once the first public release is published. For now, use the install script above.
Build Profiles
EdgeFlow supports different build profiles optimized for various hardware:
| Profile | Binary | RAM | Target | Modules |
|---|---|---|---|---|
| minimal | ~10 MB | ~50 MB | Pi Zero, BeagleBone | core |
| standard | ~20 MB | ~200 MB | Pi 3/4, Orange Pi | core, network, gpio, database |
| full | ~35 MB | ~400 MB | Pi 4/5, Jetson Nano | all modules (including AI) |
# Build minimal (for Pi Zero)
make build PROFILE=minimal
# Build standard (default)
make build PROFILE=standard
# Build full (for Pi 4/5 with AI support)
make build PROFILE=full
# Cross-compile for Raspberry Pi
make build-pi-standard Service Management
Common commands for managing the EdgeFlow service:
Start
sudo systemctl start edgeflow Stop
sudo systemctl stop edgeflow Restart
sudo systemctl restart edgeflow Status
sudo systemctl status edgeflow Live Logs
sudo journalctl -u edgeflow -f Enable Boot
sudo systemctl enable edgeflow Configuration
EdgeFlow can be configured via YAML file or environment variables:
Environment Variables
All settings can be overridden via environment variables (prefix: EDGEFLOW_):
EDGEFLOW_SERVER_PORT=8080
EDGEFLOW_DATABASE_DRIVER=sqlite
EDGEFLOW_LOGGING_LEVEL=info
EDGEFLOW_SECURITY_ENABLED=true
EDGEFLOW_HARDWARE_GPIO_ENABLED=true