glances-app v2.1.1
glances
A heads-up dashboard for displaying thing-statuses.

Demo
Example: https://github.com/nicinabox/glances-example
Demo: https://glances-example.herokuapp.com/
Overview
Glances is designed to be displayed on a monitor and works primarily over websockets. Built with React and Socket.io for lightning fast updates.
Features
- Responsive, flexbox-based grid
 - Small, simple API
 - Easy deployment
 - Push data in with a request
 - Pull data in on a schedule
 
Basic Usage
npm install -S glances-appecho "require('glances-app')()" > server.js- Add tiles to 
tiles/ - Start your server: 
npm start 
Tile Anatomy
A tile is an object and structured like the following:
var state = {
  id: 'counter',
  title: 'Counter',
  color: 'teal',
  value: 0
}
module.exports = {
  state,
  onRequest($, body) {
    Object.assign(state, {
      value: +body.counter
    })
    return $.emitChange(state)
  },
  schedule($) {
    $.every('2 sec', 'update counter', () => {
      Object.assign(state, {
        value: state.value + 1
      })
      return $.emitChange(state)
    })
  }
}Tile Layouts
Currently supported tile layouts:
- standard
 - ticker
 - list
 
For ticker and list types, pass a key/value object, a flat array, or an array of pairs as the value.
Tile API
id
An identifier for the tile. If not specified, the file name will be used.
state
The tile state object.
- title
 - value
 - moreInfo
 - color
 - position
 - display (see Tile Layouts above)
 - span (1-4)
 
onRequest
Called when tile receives a POST request. Make a request:
POST /tiles/:idschedule
Define a schedule for the tile.
Accepts: utils
Utils
every
Schedule tile updates every so often. Must return a Promise or call next from callback
Accepts: interval, description (optional), callback
Callback proviles err, next
emitChange
Emit your new tile state
Accepts: object
TODO
- More robust value types based on data structures or setting
 - Dynamic tile routes to POST data
 - Pluggable, reusable tiles (should be possible currently, but need to investigate)
 - Improve error handling
 - Improve schedule api. Right now it's not obvious that id is required.
 - More robust scheduler
 - Management UI to search, install, and configure tiles
 - Custom tiles
 
See NEXT.md for brainstorming on upcoming todos.
Prior Art
Glances was inspired by, and borrows heavily from Dashing by Shopify.
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago