Skip to content

OpenWISP

Egil Möller edited this page Mar 28, 2018 · 7 revisions

Client side setup under OpenWRT

opkg update
opkg install openwisp-config-openssl
  • Delete /etc/config/{network,firewall,openvpn}
    • Note: if you reboot, or if openwisp somehow fails, you'll have to restore /etc/config/network manually and reboot to get network connectivity again! Keep a copy somewhere...
  • Edit /etc/config/openwisp and set the base url, key and uuid
  • Run /etc/init.d/openwisp_config restart
  • Check that everything is well with logread and ifconfig (you should have a tun0 device)

Tweaks

HTTP instead of HTTPS

Hack to have OpenWISP work over http instead of https for dev:

Edit /usr/sbin/openwisp_config and remove " --capath $CAPATH" from FETCH_COMMAND

Our server side set up

Slightly extended schema for netjson supporting the basic firewall and forwarding rules we need: https://github.com/innovationgarage/cloudberry-netjson/

Django project using these apps: https://github.com/innovationgarage/cloudberry-djangoproject

Background information

Python library docs: https://media.readthedocs.org/pdf/netjsonconfig/stable/netjsonconfig.pdf http://netjsonconfig.openwisp.org/en/stable/general/basics.html Data model specification: https://github.com/netjson/netjson http://netjson.org/docs/index.html

https://groups.google.com/forum/#!topic/openwisp/2FrA7tyOe_I http://netjson.org/rfc.html#rfc.section.5 http://netjsonconfig.openwisp.org/en/stable/backends/openwrt.html#all-the-other-settings

The django-netjsonconfig UI is implemented using https://github.com/jdorn/json-editor/ which generates a UI directly from the json-schema. The json-schema is provided by a "back-end" python module, registered in the django settings.py under BACKENDS.