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
- Getting ready for hacking
A short introduction in the frameworks and techniques used for icinga-web and how to start.
- Introduction to agavi: My first module
A short trip in the world of MVC-Programming with agavi, creating modules, actions, routings and config files
- 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
- The Icinga-HTTP Api
How to use the HTTP Api powering tools like our Icinga-Mobile interface
- 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.
- 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.
- 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.
- 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.