Local Applications in Commotion

What is a local application?

Applications are a great way to provide tools that address community-specific needs. An application is a program or piece of software designed and written to fulfill a particular purpose, such as a word processor, image editor, navigation system, or messaging application.

Applications can come in many forms. Sometimes applications are installed on a device, such as a smartphone app or a desktop program. Examples of this would be a calendar app on your Android phone, or a solitaire card game on your computer. Many times, however, applications are accessed in a web browser instead of being installed. An example of this would be Etherpad, a collaborative document editor (https://pad.riseup.net/). Local networks, like Commotion, make it possible to provide applications that are available only when you are connected to the local network.

Network applications

Many of the applications we use today are “network applications”, which get and send information on behalf of the application to another computer on a network. For example, if you check your email using a web browser, that “webmail” application is a network application since it retrieves information about the emails in your inbox from another computer. That computer is called a server, and is responsible for “serving” information to your personal device or computer. A web server is simply a server that provides information needed to display a website, while an email server is a server that sends and receives email information. A network application that requests information from a server is also referred to as a “client”.

Application server and client model

Network applications communicate with a server, but that server does not have to be physically connected to the Internet. Sometimes the server is just connected to a local network, such as a mesh network. Running applications on a local server within your network—such as on a spare computer—allows you and your community to have tools and services just for you. Many applications do not need access to the Internet to work, which means that the applications running on a local server would be useable whether your network has Internet access or not!

Using an application on a local server

Using an application on the internet

Traffic for internet applications can traverse unnecessarily large geographic distances

In the same way that the mesh network allows multiple people to share network resources, running a local application server makes it possible to share information without going out to the Internet—keeping local communications local and more efficient.

Using local applications on your network

You can browse the local applications that are available on your network using the application portal. To access the application portal:

  1. Connect to the access point of your Commotion node.
  2. In your web browser, go to http://thisnode/
  3. Click on the “Applications” icon.

Commotion Local Applications Portal

Each application listed in the portal provides a name, description, icon, and an automatically generated plaid swatch representing the cryptographic identity of that application. This plaid swatch should be the same every time you visit the application portal; if it has changed, you might want to notify the administrator of the application.

Welcome Page

You can also access the apps portal through the welcome page, if it is turned on. When you connect to the access point of a node on the mesh network which has the welcome page turned on, you can open your web browser and go to any non-HTTPS website (for example “http://www.democracynow.org”). You will then be automatically redirected to the splash page:

Commotion Welcome Page

By clicking on the “Local Applications” icon, you will be redirected to the apps portal.

Adding applications to your network

There are two steps to put a local application on your network. The first is installing that application on a computer, which will be connected somewhere on the network. The second step is to add the information for the local application to the Commotion node it is connected to. This announces the presence of that application to the rest of the network, and allows users to find it.

Installing and configuring local applications

The process for installing and configuring a local application will be different for each application. Check the documentation for instructions for the apps you want to set up.

It is advisable to use a dedicated computer or server for hosting the application(s), and connecting that computer to the mesh network as a client, either via Ethernet or a nearby node’s access point. This should give the server an IP address in the range of 10.x.x.x. Linux is generally the recommended operating system for an application server since it is free, open source, and can run easily on older computers. Once you have your application server connected to the mesh network and setup with the applications you want to run, make a note of the server’s 10.x.x.x IP address and any URLs for the applications, as you will need them to announce your apps to the rest of the network.

Announcing local applications to the network

Once you have an application server setup and want to let the rest of the network start using it, you’ll need to announce the applications to the network. To do that, connect your computer to the access point of the node connected to the application server, then open your web browser and go to http://thisnode.

  1. Click on the Administration button at the bottom of the page, and log in.
  2. Go to Applications->Add.
  3. Fill out the name and description of the application you would like to announce to the network.
  4. In the “IP Address or URL of Service” field, you’ll need to enter the IP address or URL where others on the mesh network can reach the application. Make sure this IP address/URL is reachable from other nodes!
  5. Optionally, you can check one or more categories describing your app.
  6. You can pick from one of the default application icons, or enter a URL for a custom icon to use (again, make sure the URL is reachable from other nodes on the mesh).
  7. Finally, click “Submit”.

Adding a local application

Adding a local application

The application is now registered with the local node’s application portal, and the announcement should begin spreading automatically to other nodes on the network. Depending on link quality between nodes on your network, the announcement may take some time to spread. Once the announcement has spread to other nodes, clients on those nodes will see your application in the apps portal and be able to connect to the app.

As a node administrator, you can also edit or delete applications that are announced from your node by going to Applications->List. You will not be able to edit or delete applications that are announced from other nodes, however you can mark applications as “banned” so they will not show up on the applications portal on your particular node.

Commotion administrator application portal

Local application list

Below you will find some suggestions for local applications you can try installing on your network. The list is by no means exhaustive, but it should help you get an idea of what’s available.

You can also check out what applications other communities have used on their Commotion networks: