Freifunk Node Database
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Freifunk Node Database

This is a simple web application for maintaining a list of nodes (and subnets) within a mesh network such as Freifunk.

Instead of trying to mess with automated data aggregation and doing funky statistics stuff this database is focused on rather “offline” data to be maintained by the node owners. A major design principle applied is KISS. Currently there is no aggregation of live data (except for the live map layer and the topology graph which both are being generated by external scripts by now).

For a live installation visit

It's development has just started and therefore most of the features are yet listed as planned.


  • IP Address validation to ensure unique, separate addresses

  • Auto-generation/proposal of IP addresses for Subnets and Nodes

  • Geo location lookup for node based on given postal address

  • Map displaying nodes

    • Base Layer from

    • Main Layer displays data from the node database

    • Additional layers to display data from external datasources (e.g. OLSR nameservice plugin)

  • User self-signup with E-Mail activation and password reminder

  • Simple role based authorization

  • Basic admin backend

  • RESTful Webservice interface

Planned Features

  • “Click here to join Freifunk”-Wizard for users with very limited technical knowledge

    • Suggest existing nearby subnet based on geo location

  • Messaging system (allow sending emails to people without exposing their email to the public)

  • Search function

  • Tags (acts_as_taggable?)

  • Localization

  • Gradual engagement (nobody likes signup forms)

  • Enrich user profiles, e.g. avatar, jabber, etc.

  • Require HTTPS for sensitive actions

  • Mass mailer for admin (ar_mailer)

  • Rewrite cgi-bin-map.kml in ruby: add caching and filters

  • Rewrite in ruby: add caching and filters


  1. Clone main application

    $ git clone git://
  2. Clone plugins

    $ git submodule init
    $ git submodule update
  3. Create configuration files to suit your needs

    $ cp config/database.yml.sample config/database.yml
    $ vi config/database.yml
    $ cp config/config.yml.sample config/config.yml
    $ vi config/config.yml
  4. Generate site key (encrypts user passwords)

    $ rake auth:gen:site_key
  5. Create database, load chema and initialize with the seed data

    $ rake db:setup


  • Write tests (RSpec?)

  • Write documentation (github wiki)

  • Graceful handling of invalid requests (respond with http 404 where appropriate)

  • Polish geo location lookup (separate controller)

  • Polish map layer

Plugins / Gems

  • Geokit-Rails by Bill Eisenhauer & Andre Lewis is released under the MIT License
  • MapLayers by Pirmin Kalberer is released under the MIT License
  • restful_authentication by Rick Olson is released under the MIT License
  • role_requirement by Timothy Curtis Harper and Jonathan Barket is released under the MIT License
  • StripAttributes by Ryan McGeary is released under the MIT License
  • will_paginate by Mislav Marohnic and PJ Hyett is released under the MIT License
  • ujs_sort_helper by Stuart Rackham and Wynn Netherland is released under the MIT license


This application is inspired by FFSomething

The cgi-bin-map.kml script is written by Sven-Ola and was published on the OLSR Mailinglist

Most of the authentication and authorization stuff has been taken from the nice tutorial by Matthew Solt, released under the MIT License


Freifunk Node Database is released under the MIT license.

Copyright © 2009, 2010 Mikolas Bingemer