Quick Start
Get GenieACS running in minutes with npm and MongoDB
Installation Guide
Production deployment with systemd on Linux
Provisions
Write JavaScript scripts to configure devices declaratively
NBI REST API
Integrate external systems via the Northbound Interface
What is GenieACS?
GenieACS implements the CWMP (TR-069) protocol, enabling your network operations center to remotely:- Read and write any parameter in a device’s TR-069 data model
- Push firmware upgrades and configuration files
- Trigger reboots and factory resets
- Monitor device state and connectivity
- Automate complex provisioning workflows with JavaScript
Architecture overview
GenieACS consists of four independent services that share a single MongoDB database:CWMP (port 7547)
The TR-069 protocol server. CPE devices connect here to report state and receive configuration instructions.
NBI (port 7557)
The Northbound Interface REST API for OSS/BSS systems, scripts, and automation to manage devices programmatically.
FS (port 7567)
The file server. Delivers firmware images and configuration files to CPE devices during download operations.
UI (port 3000)
The web interface for administrators to browse devices, manage configuration, and trigger operations.
Key features
- Declarative provisioning — Write intent-based scripts; GenieACS determines the minimal set of TR-069 RPCs needed
- Fault-tolerant sessions — Sessions survive TCP disconnects and resume seamlessly
- Virtual parameters — Expose computed or derived values as if they were real device parameters
- Extension system — Call privileged Node.js scripts from sandboxed provision code
- Expression-based access control — Fine-grained RBAC with dynamic filter expressions
- Scales to millions — Multi-process architecture with MongoDB-backed distributed locking
Install prerequisites
Install Node.js 12.13+ and MongoDB 3.6+
GenieACS v1.3 is the current development branch. For production deployments, see installation for recommended configuration including TLS and JWT secrets.