Fork me on GitHub

Google Summer of Code

OpenWISP is an accepted mentoring organization for the Google Summer of Code 2018.

See the ideas list

What is OpenWISP?

OpenWISP is a software platform that can be used to implement a complete Wi-Fi service.

The OpenWISP software suite includes five main applications, derived from tools used to offer public wifi service in Italy and other European countries.


OpenWISP2 is a set of software modules that aims to replace some of the previous generation projects of OpenWISP, which we now refer to as OpenWISP1.

The OpenWISP1 modules that are being replaced are:

  • OpenWISP Manager
  • OpenWISP Geographic Monitoring
  • OpenWISP Firmware

The goal of this new development is to overcome the high limitations of these softwares, that were designed and developed between 2008 and 2011 to solve specific problems, but are hardly reusable in different contexts, more details about the reasons that brought us to this point can be found in following blog post: netjsonconfig: convert NetJSON to OpenWRT UCI.

How do the new modules map to the older ones? In the following passages we try to explain this point.

OpenWISP2 Controller

OpenWISP2 Controller is a configuration manager and controller for OpenWRT and LEDE devices.

It is replacing OpenWISP Manager and in a second phase new monitoring features will be added as additional and optional modules that will gradually replace OpenWISP Geographic Monitoring too.

The controller is composed of several modules:

  • netjsonconfig: configuration generator based on the NetJSON specification, currently ships backends for OpenWRT/LEDE and OpenWISP Firmware
  • django-netjsonconfig: django reusable web app that provides a web interface to manage OpenWRT and OpenWISP configurations using netjsonconfig behind the scenes
  • django-x509: django app that implements PKI management in django, used to generate VPN certificates
  • django-owm-legacy: provides backward compatibility with OpenWISP1 Firmware

To install and play with OpenWISP2 Controller, use ansible-openwisp2.
See also How to install OpenWISP.

OpenWISP2 Firmware

The new firmware composed of the following modules

  • openwisp-config: OpenWRT agent that takes care of downloading and updating the configuration from the new controller
  • luci-openwisp: an optional simplified/limited web interface for operators

The easy way to compile an OpenWRT image with openwisp-config is explained in the following section of the openwisp-config README: Compiling a custom OpenWRT/LEDE image.
If you need to compile several custom firmware images with different settings, we suggest you to use ansible-openwisp2-imagegenerator in order to keep track of the different settings you use.

OpenWISP2 Monitoring

The new monitoring features that are going to replace OpenWISP Geographic Monitoring have not been integrated with the new controller yet, but some work has already been done in the following projects:

Stable Projects (OpenWISP 1)

OpenWUMS (OpenWISP User System Management)
OpenWUMS (OpenWISP User System Management)

The OpenWUMS allows a WISP to manage its user base. It provides self-provisioning of users credentials and self-management of account data. With the OpenWUMS it is possible to create an account (and verify its underlying identity) just through a telephone call. Last but not least users can consult their sessions history with fancy graphs and in a tabular form.

OpenWM (OpenWISP Manager) and OpenWF (OpenWISP Firmware)
OpenWM (OpenWISP Manager)

The OpenWISP Manager makes centralized management of a large number of access points easier. With this tool it is possible to manage devices with a customized version of the OpenWRT firmware (i.e.the OpenWISP Firmware) that is also released with an open-source license. For this reason OpenWM and OpenWF can be used with any access point containing an Atheros Wi-Fi card supported by OpenWRT (a list of supported devices is available on the OpenWRT official website).

The OpenWISP Firmware is a bunch of shell (ash) scripts that sit on top of openWRT. Currently it supports any device supported by openWRT with an Atheros WiFi Radio interface (i.e. mac80211 or Madwifi-ng drivers). Access points equipped with the OWF are extremely easy to install because our firmware provides a very easy-to-use web based UI. OWF has native support for multiple connectivity backhaul with automatic failover: OLSR mesh over a WPA WiFi ad-hoc network (i.e. IBSS WPA-None), UMTS/HSDPA connectivity for a limited number of UMTS USB modem

OpenWGM (OpenWISP Geographic Monitoring)
OpenWGM (OpenWISP Geographic Monitoring)

The OpenWISP Geographic Monitoring keeps track of the access points provisioned by a Wireless Internet Service Provider. OpenWISP Geographic Monitoring continuously looks for a given number of access points in order to draw them on a Google Maps map and provide the up/down/unknown count. In case the access points are actually reachable, OWGM will draw an average availability graph.

OpenWCPM (OpenWISP Captive Portal Manager)
OpenWCPM (OpenWISP Captive Portal Manager)

OpenWISP Captive Portal Manager is a full featured captive portal based on Linux's netfilter.

OpenWMW (OpenWISP MiddleWare)

OpenWISP MiddleWare is the glue between OpenWISP applications and the component that permits 3rd party applications integration.


At a glance

Easy to set up and to manage
Thanks to automatic VPN configuration, users connectivity and access points management are gathered centrally at the operative center. This permits the use of pre-existing connectivity and a centralized monitoring: cost-effectiveness at its finest.
Self users signup
Users can self-register with a simple (and free) mobile phone number verification. Registration and account management is performed by users and operators through fancy web interfaces.
Multiple eSSID
This permits multiple networks with different security profiles (e.g. a public connectivity network with captive portal-based access control and a service network protected with 802.1x).
These networks can be multiplexed in a single VPN or distributed among multiple VPNs with different destinations.
Customizable Captive Portal
Captive Portal pages can be customized with single access point granularity. Captive pages can be hosted on any (e.g. pre-existent) CMS.