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-app
echo "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/:id
schedule
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