Forban is a kind of p2p (peer2peer) filesharing application for link-local and local area network. Forban works independently from Internet and use only the local area capabilities to announce, discover, search or share files. Forban relies on HTTP and he is opportunistic (meaning replicating any files seen in his proximity or interest). The name took his origins from the old French word (a forban is a kind of pirate). “Forban” can be also a play word in English at a time where government or corporate want to ban access to the Internet.

The current implementation is written in Python. The Forban protocols are minimalistic to ease the accessibility to build independent Forban in any decent language or even in shell scripts (using tcpdump and wget for example).

Forban operates in different modes, the opportunistic mode is the default and working as a gossip protocol/epidemic protocol to disseminate data with any Forban in his proximity. The main concept is to provide persistence for the disseminated data even on periodic or unreliable communication (e.g. mobile device willing to exchange files or rural area where intermittent computer devices are passing by).

For a more detailed description of the Forban protocol and it's usage, you can check the presentation given at the Breizh Entropy Congress (April 2010).

Development and git repository

Download release and software requirements

Latest version : Forban 0.0.21 (2010-08-29) - release directory - ChangeLog

You'll just need Python installed (at least version 2.5) to run Forban.
CherryPy is used by Forban (and included by default starting with version 0.0.12) or you can use your own CherryPy version (at least version 3) (easy_install cherrypy).

Forban should work on any decent version of GNU/Linux or MacOS. Forban works out-of-box on the OLPC XO-1 and Nokia N900 (with Python installed). Forban should also run on Windows (less tested) with Python 2.5, 2.6 or 2.7 and the win32api extensions.

As Forban is under active development, we recommend to clone the git repository.

  git clone git://gitorious.org/forban/forban.git 

Setup and operation

Edit/create config file $FORBANPATH/cfg/forban.cfg (sample file available in $FORBANPATH/cfg/forban.cfg-sample) :
[global]
name = mac forban
path = /Users/clarisse/forban/
version = 0.0.15
mode = opportunistic

[forban]
share = /Users/clarisse/forban/var/share/
Start the forban services :
cd $FORBANPATH/bin/
./forbanctl start
Open a web browser to http://127.0.0.1:12555/

Screenshots

Forban screenshot of the status page where you can see the discovered and shared loot Forban running on OLPC - XO-1

Protocols and link-local Firewall

If you have a Firewall or a packet filtering on your computer, you'll need to open the following ports :

UDP protocol port 12555 (source any -> destination 255.255.255.255 (ff02::1 in IPv6))
TCP protocol port 12555 (source any -> destination any)

License

Forban is free software licensed under the GNU Affero General Public License version 3.

FAQ

Frequently Asked Question around Forban. If you have any question, send an email to a @ foo dot be.