ICA makes it easy to have a central repository of infrastructure configurations

go get


Infrastructure Config Archive v2.2.0

Infrastructure Config Archive (ICA) was developed to solve the problem of backing up network infrustructure configurations. ICA can be easily expanded to accommodate multiple types of devices since it uses Expect underneath to handle the config grabbing.


To Run:

  • Expect

To Build:

  • Go v1.4

Is it any good?


Setting ICA

For documentation on setting up ICA, please go to

Getting Started Developing

go get
npm install

Setup Cron Job

To have configurations pulled on a scheduled basis, you can setup a cron job that executes:

curl http://[hostname]:[port]/api/runnow

Set the job to run however often you feel necessary. Crontab is the recommended tool for setting this up and weekly is the recommended schedule.

Setup Upstart Job

ICA comes with a template upstart script called upstart.conf. You can use this file as a base to build an upstart job to start ICA on boot and to easily manage the service. Copy the completed script to /etc/init/ica.conf.

You can manage the service with the commands start ica status ica and stop ica. The upstart job by default will run on boot.

Release Notes


  • Validates format for device configuration files before saving


  • Added application log view on Status page
  • Device types can use an asterisk "*" to denote "any method"
  • Code cleanup


  • Custom device types: You can now define your own device types and methods. Each type/method combo has a script file associated with it that is located under the scripts folder. That script will be executed with the arguments defined in your device-types.conf.
  • Manual device runs: You can manually run a job for a device by entering the device information without requiring a full job to be completed first.
  • TFTP server no longer required: The Cisco scripts have been changed to no longer require a tftp server
  • Bug fixes and code cleanup


  • Archive a single device configuration
  • Added support for Juniper switches
  • Bug fixes


  • Edit the device list from the UI
  • View application configuration from UI
  • Bug fixes


  • Initial Release


For transparency into the release cycle and in striving to maintain backward compatibility, This project is maintained under the Semantic Versioning guidelines. Sometimes we screw up, but we'll adhere to these rules whenever possible.

Releases will be numbered with the following format:


And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major while resetting minor and patch
  • New additions without breaking backward compatibility bumps the minor while resetting the patch
  • Bug fixes and misc changes bumps only the patch

For more information on SemVer, please visit