- docs
- FlowFuse User Manuals
- Using FlowFuse
- Getting Started
- Static asset service
- Bill of Materials
- FlowFuse Concepts
- Changing the Stack
- Custom Hostnames
- Custom Node Packages
- Device Groups
- DevOps Pipelines
- Environment Variables
- FlowFuse Assistant
- FlowFuse File Nodes
- FlowFuse MQTT Nodes
- FlowFuse Project Nodes
- FlowFuse Tables
- High Availability mode
- HTTP Access Tokens
- Instance Settings
- Logging
- persistent-context
- Shared Team Library
- Snapshots
- Team Broker
- Teams
- User Settings
- FlowFuse API
- Migrating a Node-RED project to FlowFuse
- Device Agent
- Device Agent
- FlowFuse Device Agent Introduction
- Installation
- Quick Start
- Register your Remote Instance
- Running the Agent
- Deploying your Flows
- Hardware Guides
- FlowFuse Cloud
- FlowFuse Cloud
- FlowFuse Self-Hosted
- Quick Start
- Installing FlowFuse
- Overview
- Configuring FlowFuse
- DNS Setup
- Docker install
- Docker from AWS Market Place
- Docker on Digital Ocean
- Add Project Stacks on Docker
- Docker Engine on Windows
- Email configuration
- First Run Setup
- FlowFuse File Storage
- Install FlowFuse on Kubernetes
- Upgrading FlowFuse
- Administering FlowFuse
- Administering FlowFuse
- Configuring Single Sign-On (SSO)
- Licensing
- Monitoring
- Telemetry
- User Management
- Support
- Community Support
- Premium Support
- Debugging Node-RED issues
- Contributing
- Contributing to FlowFuse
- Introduction
- Adding Template Settings
- API Design
- Creating debug stack containers
- Database migrations
- FlowFuse Architecture
- Local Install
- State Flows
- Device Editor
- Invite External Users
- User Login Flows
- Reset Password Flow
- Project Creation
- Instance states
- User Sign up Flow
- Team creation Flow
- Team Broker
- Working with Feature Flags
Manual Install (NPM)
Use this method if you want direct control over the Node.js runtime and filesystem.
Prerequisites
- Node.js 18 or later installed
- Linux, macOS, or Windows
- Outbound network access to FlowFuse platform and the NPM registry
Install the Device Agent
The Device Agent is published to npm as @flowfuse/device-agent.
Linux/macOS
sudo npm install -g @flowfuse/device-agent
Windows (run elevated[1])
npm install -g @flowfuse/device-agent
Working directory
By default the agent uses /opt/flowfuse-device
(Linux/macOS) or c:\opt\flowfuse-device
(Windows) as its working directory. Override with -d/--dir
if needed.
Ensure the directory exists and is writable by the service user.
Linux/macOS
sudo mkdir -p /opt/flowfuse-device
sudo chown -R $USER /opt/flowfuse-device
Windows (run elevated[1:1])
mkdir c:\opt\flowfuse-device
icacls c:\opt\flowfuse-device /grant "user":F /T
Where "user" is the service account that will run the device agent (ideally, not an admin account).
Configuration
Place a device.yml
in the working directory. See Register your Remote Instance for obtaining the configuration via Quick Connect or provisioning.
Listen Port
Node-RED listens on port 1880
by default. Change with -p/--port
:
flowfuse-device-agent --port 1881
Start on system boot
Use the provided systemd service file on Linux to run the agent as a service.
- Download the service file:
curl -L https://raw.githubusercontent.com/FlowFuse/device-agent/main/service/flowfuse-device.service -o flowfuse-device.service
- Adjust
User
,Group
, andWorkingDirectory
if needed. - Update
ExecStart
to include a custom port if required. - Move the file into place and enable the service:
sudo mv flowfuse-device.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable flowfuse-device
sudo systemctl start flowfuse-device
On Windows or macOS, consider using the Installer to set up services automatically.
Verify
Start the agent from a terminal to confirm it runs:
flowfuse-device-agent -v
Once assigned, access the Node-RED editor at http://<device-ip>:1880
.
Networking requirements
Allow outbound TCP 443 to:
- app.flowfuse.com
- mqtt.flowfuse.cloud
Ensure access to npm registry to download Node-RED and nodes:
- https://registry.npmjs.com
For offline environments, see Running with no access to npmjs.org.
Upgrading the agent
With Device Agent 1.13+, the package moved from the @flowforge
scope to @flowfuse
:
- npm:
@flowforge/flowforge-device-agent
➜@flowfuse/device-agent
Linux/macOS
sudo npm install -g @flowfuse/device-agent@latest
Windows (run elevated[1:2])
npm install -g @flowfuse/device-agent@latest
If you must stay on 2.x, use @2.x
. Device Agent 3.x requires Node.js 18+.