Skip to content

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) .


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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:

So, on Ubuntu for example, you could install all prerequisites via $ sudo apt-get install git openjdk-7-jdk maven

To prepare your Perl installation for later auto-installation of the required CPAN modules, you need to manually install Module::Install via $ sudo cpan install Module::Install

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

Building & Quick Start

Download the Git repository for irondemo:

  • $ git clone

Install dependencies:

  • $ sudo apt-get install git openjdk-7-jdk maven
  • $ sudo cpan install Module::Install
  • $ cd <irondemo root>/scripts/lib/TrustAtHsH-Irondemo/
  • $ perl Makefile.PL
  • $ make installdeps

Fetch and build the projects' sources:

  • $ cd <irondemo root>/scripts/
  • $ perl update_projects
  • $ perl build_projects

Finally, build all provided scenarios:

  • $ perl build_scenarios

To test if everything works, run a scenario - e.g. demo-rsa-2015 that comes with an agenda that automatically starts all components - via

  • $ perl --agenda=rsa-2015-fallback-biggraph.txt run_scenario demo-rsa-2015


Irondemo's directory structure is organized as follows:

  • config
  • scripts
  • scenarios
  • resources
  • sources


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
  • ironflow
  • ironsyslog
  • irontemplate
  • irondetect
  • irongenlog
  • irongpm
  • ironnmap
  • ironloggui

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.

Using the scenarios

After downloading and compiling the sources, you can build the scenarios. To build all scenarios, just call $ perl build_scenarios.

If you want to build a single specific scenario, you can call $ perl 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, regarding to the scenarios and the specific agenda, that you may 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 update_projects and build_projects again. 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.


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) .






No packages published