Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A service status dashboard powered by Node.js
JavaScript
Branch: master
Pull request Compare This branch is 86 commits behind statusdashboard:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
plugins
public
.gitignore
README.md
api.js
package.json
server.js
settings.js

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.