Add New Page: You are not allowed to add pages Select section/namespace. New page title.

App Portal Architecture


The application portal includes a web-based (LuCI) interface for browsing and adding local applications/services on a Commotion mesh network. It also includes several back-end components to automatically announce and discover local applications on the mesh. See also App Portal User Workflow.

What does the App Portal read from: (executables and files)

/etc/config/applications This includes a 'settings' section that governs the application portal, as well as a a section for each application created and seen on the mesh.

What are the App Portal's components:

avahi-daemon This is a separate daemon used to multicast local application announcements over the mesh, using mDNS/DNS-SD.

OLSRd-DNSSD This is a plugin for OLSRd that is used to control how many hops away on the mesh each local application is advertised.

commotion-service-parser This script is run every 5 minutes as a cron job. It calls avahi-client to discover application announcements on the mesh. It then parses the announcements, verifies their Serval signatures, and adds them to the list of local applications.

avahi-client This program receives mDNS applications announcements and stores them in a local cache.

serval-sign/serval-verify These programs cryptographically sign application announcements with a node's primary Serval key, and verifies these signatures, respectively.

What are the App Portal's internals and how are they used:

luci/commotion/controller/apps_controller.lua This handles all the back-end processing needed for the LuCI application portal.

luci/view/ These files construct and present the user-facing pages in the LuCI application portal.

luci-static/commotion/ Various CSS, Javascript, and image resources used in the LuCI application portal.

uci-defaults/commotion-apps A shell script run on first boot that adds commotion-service-parser as a cronjob.