# Background

We are currently using a luci-based web app as the admin interface on the nodes.

luci is not pleasant to work with and luci2 is coming soon. We want to switch away from luci and maybe switch to luci2.

EFF's Open Wireless router firmware is nice and simple. It uses a very stripped down python as the back end. We want something like their front end but probably not their back end.

# Lessons from tonight

ubus is a way for the different processes in openwrt to talk to each other.
ubus has an http interface with access limited by a set of ACLs:

  http://wiki.openwrt.org/doc/techref/ubus#access_to_ubus_over_http

luci2 on the backend is simply a set of extensions to ubus that are then accessed via the ubus http interface.

ubus, the ubus http interface and the luci2 ubus extensions all look good to me.

The luci2 web app looks and feels great. Unfortunately the javascript is not so great. In my opinion it's way too complicated for what it is.

I've decided to ditch the luci2 client side stuff and use only the server side luci2 code. I'll write a very minimal javascript library for accessing ubus functions.

# Progress

I started putting together a simple web app based on EFFs Open Wireless router admin interface. It will have a testing mode where a node.js app simulates a router on the backend to enable web developers to more easily contribute.

Not much yet, but the beginnings are here:

  https://github.com/sudomesh/sudowrt-luci2-webclient

# Trying luci2

I compiled luci2 for the atheros chipset. It is here:

  http://juul.io/mesh/

To get it working, copy the ipk to the node and do:

  opkg update

  opkg install rpcd rpcd-mod-iwinfo uhttpd uhttpd-mod-ubus

  opkg install luci2_2015-01-25_atheros.ipk
 
  ln -s ../init.d/rpcd S80rpcd

  (reboot the router)

It may complain about a missing function in the post-install script. Never mind that.

Now access:

marc/juul