Controller: Structure & Features

OpenWISP Controller is a Python package which ships five Django apps.

Config App

The config app is the core of the controller module and implements all the following features:

It exposes various REST API endpoints.

PKI App

The PKI app is based on django-x509, allowing you to create, import, and view x509 CAs and certificates directly from the administration dashboard.

It exposes various REST API endpoints.

Connection App

This app enables OpenWISP Controller to use different protocols to reach network devices. Currently, the default connection protocols are SSH and SNMP, but the protocol mechanism is extensible, allowing for implementation of additional protocols if needed.

It exposes various REST API endpoints.

SSH

The SSH connector allows the controller to initialize connections to the devices in order to perform push operations, e.g.:

The default connection protocol implemented is SSH, but other protocol mechanism is extensible and custom protocols can be implemented as well.

Access via SSH key is recommended, the SSH key algorithms supported are:

  • RSA

  • Ed25519

SNMP

The SNMP connector is useful to collect monitoring information and it's used in OpenWISP Monitoring for performing checks to collect monitoring information. Read more on how to use it.

Geo App

The geographic app is based on django-loci and allows to define the geographic coordinates of the devices, as well as their indoor coordinates on floor plan images.

It exposes various REST API endpoints.

Subnet Division App

Note

This app is optional, if you don't need it you can avoid adding it to settings.INSTALLED_APPS.

This app allows to automatically provision subnets and IP addresses which will be available as system defined configuration variables that can be used in Configuration Templates.

The purpose of this app is to allow users to automatically provision and configure specific subnets and IP addresses to the devices without the need of manual intervention.

Refer to Automating Subnet and IP Address Provisioning for more information.