Skip to content
A fast and lightweight TR-069 Auto Configuration Server (ACS)
Branch: master
Clone or download
Latest commit c6db1ed Apr 4, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Refactor code to use Path class Feb 26, 2019
build Replace auth.js script with config expression Mar 15, 2019
config Replace auth.js script with config expression Mar 15, 2019
debug Implemented debugging mechanism to log requests and responses when ex… Dec 19, 2012
lib Merge branch 'v1.2' Apr 4, 2019
public Merge remote-tracking branch 'ui/master' Dec 28, 2018
test Add more cases for tags in mongoQueryToFilter Mar 12, 2019
tools Salt and hash passwords Mar 27, 2019
ui Salt and hash passwords Mar 27, 2019
.eslintignore TypeScript! Feb 20, 2019
.eslintrc.json TypeScript! Feb 20, 2019
.gitignore Replace auth.js script with config expression Mar 15, 2019
.npmignore Replace auth.js script with config expression Mar 15, 2019 Update Nov 30, 2018 Add Mar 16, 2016
LICENSE Changed license to AGPL3 Feb 10, 2014 Update repo paths in and package.json Feb 24, 2018
ava.config.js TypeScript! Feb 20, 2019
package.json TypeScript! Feb 20, 2019
tsconfig.json TypeScript! Feb 20, 2019


GenieACS is a fast and lightweight TR-069 auto configuration server (ACS). This is the core back end component. A GUI front end is available at


  • Battle-tested at scale: Can scale to manage hundreds of thousands and potentially millions of devices
  • Powerful provisioning system: Scriptable configuration to handle complex device provisioning scenarios and other automated operations such as firmware upgrade
  • Extensive API: A rich HTTP-based API allows easy integration with other systems

Quick Start

Install Node.js and MongoDB. Refer to their corresponding documentation for installation instructions. The supported versions are:

  • Node.js: 6.x and 8.x (8.x recommended)
  • MongoDB: 2.6 through 3.4

Install build tools and libxml2 development files from your system's package manager.

Then install GenieACS using NPM:

npm install -g genieacs

Alternatively, you can install from source by cloning the git repository:

git clone
cd genieacs
git checkout $(git tag -l v1.1.* --sort=-v:refname | head -n 1)
npm install
npm run compile

Before proceeding, find and review the file "config.json" in "config" directory where GenieACS is downloaded.

Finally, run the following (from bin directory if installing from source):


This is the service that the CPEs will communicate with. It listens to port 7547 by default (see config/config.json). Configure the ACS URL of your devices accordingly.


This is the northbound interface module. It exposes a REST API on port 7557 by default. This must be running for the GUI front end to work.


This is the file server from which the CPEs will download firmware images and such.

Note: For production deployment make sure to run those as background services.

For further details about installation and configuration, refer to the wiki section.


The Users mailing list is a good place to get guidance and help from the community. Head on over and join the conversation! In addition, the wiki provides useful documentation and tips from GenieACS users.

For commercial support options and professional services, please visit


Copyright 2013-2018 GenieACS Inc. GenieACS is released under the AGPLv3 license terms.

You can’t perform that action at this time.