Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A node.js service status dashboard

branch: master
README.md

Status Dashboard

Status Dashboard is status page for your configured services or applications.

Demo:

Screenshots

Dependencies

  • See package.json
  • run the following command to install the dependencies
    $ npm install
    

Roadmap

  • Improve UI: scrollbars, filters, check type column, ...
  • Add network services like SMTP, POP3, ...
  • Improve REST API to get / push data ...

How To Use

  • git clone git@github.com:obazoud/statusdashboard.git or fork it
  • node server.js

Add your entry in settings.js.

settings['xxx'] = {
...
};
  • export APP_ENV=xxx
  • node server.js

You can override settings with an external settings for private information like passwords, ..

  • vi ~/.statusdashboard/settings.js

    exports.create = function() {
    var appSettings = {
      port: 8081,
      services: [{
        name: 'FTP Local',
        password: 'xxx'
      }]
    };
    return appSettings;
    };
    }
  • export APP_SETTINGS=~/.statusdashboard/settings.js

Service

Daemon init script for node.js: https://gist.github.com/1123553

Plugins

Some plugins are available out-of-the-box:

  • Console
  • IRC bot
  • Twitter
  • History, save service state in Redis (Thanks to sreeix initial pull request) and graph it!

REST API

  • List services

    $ curl http://127.0.0.1:8080/api/services
    {"last":"Fri, 17 Jun 2011 22:33:03 GMT","services":[{"name":"couchdb","label":"Couchdb server @ local","status":"up","statusCode":200,"message":""},{"name":"bazoud.free.fr","label":"Olivier Bazoud blog","status":"up","statusCode":200,"message":""},{"name":"bazoud.free.fr","label":"Olivier Bazoud blog test.php","status":"up","statusCode":200,"message":""},{"name":"redis","label":"Redis server @ local","status":"up","statusCode":0,"message":""},{"name":"FTP Local","label":"Ftp @ local","status":"down","statusCode":0,"message":"ECONNREFUSED, Connection refused"},{"name":"PID file","label":"Pid @ local","status":"unknown","statusCode":9,"message":"EBADF, Bad file descriptor '/tmp/terminal.pid'"}],"lastupdate":"Fri, 17 Jun 2011 22:33:08 GMT","summarize":{"lastupdate":"Fri, 17 Jun 2011 22:33:08 GMT","up":3,"critical":0,"down":1,"unknown":2}}
    
  • Retrieve a specific service

    $ curl http://127.0.0.1:8080/api/services/couchdb
    {"name":"couchdb","label":"Couchdb server @ local","status":"up","statusCode":200,"message":""}
    
  • Retrieve a summary

    $ curl http://127.0.0.1:8080/api/summarize
    {"up":4,"critical":0,"down":1,"unknown":1}
    
  • Version of application

    $ curl -iX GET http://127.0.0.1:8080/api/version
    {"commit":"641b97cbcfdc53b1b2b825d588afe08e412471d4","author":"obazoud","committer":"obazoud","date":"Fri, 12 Aug 2011 10:15:27 GMT"}
    
  • And plugin can contribute to statusdashboard REST API

    $ curl http://127.0.0.1:8080/api/history/service/couchdb
    ["{\"time\":1310024374699,\"status\":\"up\",\"message\":\"\",\"code\":200}","{\"time\":1310024379591,\"status\":\"up\",\"message\":\"\",\"code\":200}", ...]
    

Early adopters

status.exoplatform.org

  • IRC Plugin screenshot @ exoplatform

In the news

Something went wrong with that request. Please try again.