Mesh/Firmware/Web Admin Development

From Sudo Room
Revision as of 06:31, 2 January 2014 by Juul (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

See Firmware Wants for a description of what we're hoping to be able to implement with our web admin page.

The code for the web admin is hosted here:

https://github.com/sudomesh/luci-app-peopleswifi

Luci

Luci is the web admin framework that OpenWrt ships with and seems to be a popular choice among other projects. It is written in Lua, which is a sort of procedural language that's kind of a mix between javascript and ruby (??).

All of the Luci code is contained on the router in /usr/lib/lua/luci

Documentation related to the Luci project can be found at:

Luci Documentation

Its a MVC framework, and files are separated into controller/ model/ and view/

There's a fairly similar package that we can probably take some cues from:

bmx6 Luci Package

We'll likely need every AP to serve a private WPA encrypted AP even if users have their own home router so that they can config the routers securely.

Debugging

Luci is run as a cgi script. The script is at:

 /www/cgi-bin/luci

Luci has a caching system, which should be disabled when debugging, to ensure that requests are not being answered from the cache. To disable caching, change /www/cgi-bin/luci by commenting out the following lines:

-- require "luci.cacheloader"
-- luci.dispatcher.indexcache = "/tmp/luci-indexcache"

You can run /www/cgi-bin/luci from the command line like so:

REQUEST_URI="/cgi-bin/luci HTTP/1.1" QUERY_STRING="username=root&password=<password>" /www/cgi-bin/luci

The wikipedia article for CGI has a list of other environment variables that can be set to pass data to a cgi script.