This document describes the development process in icinga-web and should help beginners to dive into hacking. Icinga-Web is, like every living open source project, always a work-in-progress. We try hard to keep this document up to date, but if you find anything that isn't up to date anymore, let us know.

Most of the content in this document describes features available form Icinga-Web v.1.5


  1. Getting ready for hacking
    A short introduction in the frameworks and techniques used for icinga-web and how to start.
  2. Introduction to agavi: My first module
    A short trip in the world of MVC-Programming with agavi, creating modules, actions, routings and config files
  3. Database Essentials: Using Icinga-Web and Doctrine to fetch data
    How Doctrine is integrated in icinga-web and how to use it without too much effort
  4. The Icinga-HTTP ApiĀ 
    How to use the HTTP Api powering tools like our Icinga-Mobile interface
  5. Creating Cronks
    An explanation of Cronks, which are the fundamental part of icinga-web's presentation logic, and how to create/modify your own cronks.
  6. Creating Modules
    Explains how to create your own modules on top of the icinga-web authentication and data-stack which can be seamlessly integrated in the frontend.
  7. Expert Database: Implement your own DataSource as a DataStore
    Tells you how to create your own datastore, including custom filters, sorting, etc. This is not database specific, as you can use any data source.
  8. Taking it further: Exporting DataStores (Icinga-Web >= 1.6)
    A description of the JSDescriptor methods, which allow you to create/change datasources on the server-side and use them on the client side without touching any data-specific code.