Skip to content

Repository files navigation

autoconfig

This was Burning Man's 2016 autoconfiguration tool, which configured participant radio's to use the Burning Man WiFi network.

It's written in Python using Flask and a MySQL backend.

It is designed to work as follows:

  • Participant resets radio to default configuration.
  • Participant Radio Connects to BM WiFi.
  • Jailer Service (jailer.py) connects to Participant Radio, changes default IP from 192.168.1.20 to 192.168.1.1xx. Jailer.py is run as a regular process seperate from Flask App.
  • Participant loads any web page, Captive Portal web page is displayed asking participant for information.
  • The information is used to lock the Participant radio to a specific BM sector radio as well as well as provide contact information to the BM IT team to help diagnose network problems.
  • Participant submits information, a configuration is created for the specific radio model, and that configuration is pushed onto the radio.
  • Radio resets automatically, and should not be able to connect to BM WiFi. Connection is provided via Ethernet using DHCP for connected computers.
  • Participants are encouraged to share the connection per the WiFi guidelines. ( 2.4 Ghz Only, low power, open network w/ camp name in SSID)

Run for local dev with:

export FLASK_APP=./server/app.py
flask run

Use a wsgi container for production. See contrib/autoconfig.wsgi for an apache2 example

From a default-ish Debian 8 install:

apt-get install -y unzip python-flask python-yaml python-dumbnet python-paramiko python-MySQLdb mysql-server libdumbnet1

Note that Debian renamed libdnet to libdumbnet. Install as appropriate to your distribution

mysql -u root -proot -e "create database playawifi"
mysql -u root -proot playawifi < schema.sql

Example get device strings:

deviceName=PowerBeam M5 300,deviceId=24:A4:3C:F2:51:25,firmwareVersion=XW.ar934x.v6.0-beta10.29223.160601.1516,platform=PowerBeam M5,deviceIp=192.168.1.20
deviceName=NanoBridge M5,deviceId=00:27:22:50:03:24,firmwareVersion=XM.ar7240.v5.6.8.29413.160715.1613,platform=NanoBridge M5,deviceIp=192.168.1.20
deviceName=NanoBeam 5AC 19,deviceId=80:2A:A8:24:D1:51,firmwareVersion=XC.qca955x.v8.0-beta15-cs.31340.160729.1158,platform=NanoBeam 5AC 19,deviceIp=192.168.1.20

Example firmwares:

PowerBeam M5 300 = XW.v6.0.30097.161219.1705.bin
NanoBridge M5    = XM.v6.0.30097.161219.1716.bin
NanoBeam 5AC 19  = XC.v8.0.1.32631.170202.1626.bin

About

Ubiquity autoconfig server w/ captive portal

Resources

Stars

1 star

Watchers

11 watching

Forks

Releases

Packages

Contributors