netjsonconfig
Netjsonconfig is part of the OpenWISP project and it’s the official configuration engine of OpenWISP 2.
netjsonconfig is a python library that converts NetJSON DeviceConfiguration objects into real router configurations that can be installed on systems like OpenWrt, or OpenWisp Firmware.
Its main features are:
OpenWisp Firmware support
OpenVPN support
Wireguard support
Plugin interface for external backends, support more firmwares with an external package
Create your backend as a plugin
Experimental AirOS support as a plugin
Based on the NetJSON RFC
Validation based on JSON-Schema
Templates: store common configurations in templates
Multiple template inheritance: reduce repetition to the minimum
File inclusion: easy inclusion of arbitrary files in configuration packages
Variables: reference variables in the configuration
Command line utility: easy to use from shell scripts or from other programming languages
Contents:
- Setup
- Basic concepts
- OpenWrt Backend
- Initialization
- Render method
- Generate method
- Write method
- Parse method
- JSON method
- General settings
- Network interfaces
- Bridge settings
- Wireless settings
- Dialup settings
- Modem Manager settings
- VLAN 802.1q / VLAN 802.1ad settings
- Radio settings
- Static Routes
- Policy routing
- Programmable switch settings
- NTP settings
- LED settings
- Including custom options
- Including custom lists
- Including additional files
- OpenVPN
- WireGuard
- VXLAN
- All the other settings
- OpenWISP 1.x Backend
- VPN Backends
- Create your backend
- Command line utility
- Running tests
- Contributing
- Motivations and Goals
- Change log
- Version 1.1.1 [2024-12-23]
- Version 1.1.0 [2024-11-22]
- Version 1.0.2 [2022-12-02]
- Version 1.0.1 [2022-05-11]
- Version 1.0.0 [2022-04-20]
- Version 0.9.1 [2021-02-15]
- Version 0.9.0 [2020-11-18]
- Version 0.8.2 [2020-08-17]
- Version 0.8.1 [2020-05-28]
- Version 0.8.0 [2020-04-03]
- Version 0.7.0 [2020-01-14]
- Version 0.6.4 [2019-12-09]
- Version 0.6.3 [2018-07-09]
- Version 0.6.2 [2017-08-29]
- Version 0.6.1 [2017-07-05]
- Version 0.6.0 [2017-06-01]
- Version 0.5.6 [2017-05-24]
- Version 0.5.5.post1 [2017-04-18]
- Version 0.5.5 [2017-03-15]
- Version 0.5.4.post1 [2017-03-07]
- Version 0.5.4 [2017-02-14]
- Version 0.5.3 [2017-01-17]
- Version 0.5.2 [2016-12-29]
- Version 0.5.1 [2016-09-22]
- Version 0.5.0 [2016-09-19]
- Version 0.4.5 [2016-09-05]
- Version 0.4.4 [2016-06-27]
- Version 0.4.3 [2016-04-23]
- Version 0.4.2 [2016-04-11]
- Version 0.4.1 [2016-04-04]
- Version 0.4.0 [2016-03-22]
- Version 0.3.7 [2016-02-19]
- Version 0.3.6 [2016-02-17]
- Version 0.3.5 [2016-02-10]
- Version 0.3.4 [2016-01-14]
- Version 0.3.3 [2015-12-18]
- Version 0.3.2 [2015-12-11]
- Version 0.3.1 [2015-12-02]
- Version 0.3 [2015-11-30]
- Version 0.2 [2015-11-23]
- Version 0.1 [2015-10-20]