Documentation

Hoborg Dashboard - what is it?

It's FREE and open dashboard system writen by and for developers.

How, What, Where?

SimpleDashboard is really SIMPLE. Each dashboard is based on JSON config file. It contains a template name and list of widgets. That is it! The simplest dashboard configuration can look like this:

{
  "template": "hoborg",
  "widgets": [
    {
      "template": "Hello {{data.name}}!",
      "data": {"name": "World"}
    }
  ]
}

SimpleDashboard is split to 3 tiers: (a) client side JavaScript responsible for rendering and refreshing widget data, (b) HTML with initial widget config objects, CSS and JS, and finally (c) server side PHP code for converting dashboard configuration into HTML and serving widget data over JSON or JSONP - you can of course serve data from any location, as long as your client or server can access it.

What's in the Box?

Hoborglabs provides number of generic widgets and "Clients" for pulling data from graphite, opsview, jenkins and mongo. Also new Splunk client is on it's way.

Some widgets uses d3js for charts and graphs. Check it out, it's small but very powerful library.

No Push, Just JSONP Requests

To keep things simple, widgets by default uses JSON/JSPONP to get data. You can configure how often each widget should refresh data using tick property. Why JSONP? because it's simple and works cross domains. If you want to use push technology, simply extend HoborgWidget JS object and overwrite startData method.

Installation

There are multiple ways to install and use Simple Dashboard.

Here is a step-by-step installation.

Composer

A good way to install and maintain your dashboard is to use Composer. First, start with creating composer.json file with your dependencies.

{
    "require": {
        "php": ">=5.3.0",
        "hoborglabs/dashboard": "*",
        "hoborglabs/widgets": "*"
    }
}

If you don't have composer installed, simply install it by running

curl -sS https://getcomposer.org/installer | php

Now, install dashboard and default widgets by running

php composer.phar install

That was easy! Now the final bits. First, demo configuration file in config/demo.json

{
    "template": "hoborg",
    "widgets": [
        {
            "body": "Hello World!"
        }
    ]
}

... and finally htdocs folder and start the php server.

ln -s vendor/hoborglabs/dashboard/src/Hoborg/Dashboard/Resources/htdocs .
DASHBOARD_ROOT=`pwd` php -t htdocs -S localhost:5000

Job done! Now you can customise your dashboard however you want.

Production Environment

So you like our Dashboard?

If you like our Dashboard, and you want to deploy it globally in your company, you should consider using cacheable_for property for your widgets.

{
  ...
  "widgets": [
    {
      "cacheable_for": 180
      ...
    }
  ]
}

Currently APC is used for cache, and in the near future more key-store providers will be supported.