irondemo is a set of shell and Perl scripts as well as some resources, to build a environment containing our IF-MAP based software from scratch. Development was done by Hochschule Hannover (Hannover University of Applied Sciences and Arts) .
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


irondemo is intended to make creation of demonstration and testing environments for if-map software easy and consistent, it is developed by the Trust@HsH research group at Hochschule Hannover (Hannover University of Applied Sciences and Arts).

NOTE: This is an alpha-release - might still contain a couple of bugs.


In order to use irondemo, you will need the following software installed on your system:

irondemo should work on any unix based system as well as Microsoft Windows. If you experience problems on your platform, please report.


Irondemo's directory structure is organized as follows:


Contains irondemo's project config file projects.yaml, that contains instructions how to retrieve and built different tools (called projects ) which can be combined to create different scenarios. Theoretically any third party tool can be integrated pretty easily. Feel free to get in touch if you want your tool to be included in the default configuration file. Currently the default configuration includes:

  • ifmapj
  • ifmapj-examples
  • ifmapcli
  • irond
  • irongui
  • irondetect
  • irondhcp
  • ironvas
  • visitmeta

The modules.yaml configuration file contains configuration properties for executable modules used in irondemo. Modules define vocabulary to be used in agendas, i.e. they carry out operations that you can use to put together a demonstration, simulation, test case ... you name it. You can easily build your own modules, just take a look at our modules in the /scripts/lib/ directory for examples or get in touch if you need help.

The scenarios subdirectory contains one yaml file per scenario that contains instructions which projects a scenario uses, which resources need to be copied, etc.


Contains the irondemo main script and (as of now) the irondemo perl module that takes care of most of irondemo's tasks - we might migrate the latter to CPAN at some point.


This is where the scenarios get assembled. Each scenario is constructed in a dedicated subdirectory for the sake of isolation.


Contains the scenarios' resources such as config files for various tools, etc.


Sourcecode and the compiled binaries of projects reside here.



Install dependencies:

  • $ sudo cpan install Module::Install
  • $ cd /scripts/lib/TrustAtHsH-Irondemo/
  • $ perl Makefile.PL
  • $ make installdeps

Fetch and build the projects' sources:

  • $ cd /scripts/
  • $ perl update_projects
  • $ perl build_projects

Using the scenarios

After downloading and compiling the sources, you can build the scenarios. Call $ build_scenarios <scenario> providing the name of the scenario you would like to built (which is identical to the name of its config file without the file ending). The corresponding scenario will be assembled in the scenarios directory.

Running a scenario

After building a scenario, you can run an agenda by calling $ run_scenario <scenario> --agenda=<filename-of-agenda>. So if you build a scenario called 'scenario1' and it contains an agenda file called 'agenda.txt', you would start it by calling $ run_scenario scenario1 --agenda=agenda.txt. Please note, that you have to start all components needed for your scenario, like MAP server, visualization client etc., by hand from within the scenario folder.

Updating the sources

Just re-run the last step of the instructions for building irondemo. This will update the sources and build them. You will need to also rebuilt any scenarios using the projects that got updated if you want them to make use of the new versions.

More Information

Try $ --man or just ask the devs ;)


Feel free to get in touch with us at to post feedback, ask for help or report bugs.