2016-02-03 18:18:37 +00:00
[![Build Status ](https://travis-ci.org/plumpudding/hopglass.svg?branch=master )](https://travis-ci.org/plumpudding/hopglass)
2015-04-01 15:49:12 +00:00
2016-02-03 18:18:37 +00:00
# HopGlass
2015-04-01 15:07:04 +00:00
2016-02-03 18:18:37 +00:00
HopGlass is a frontend for the [HopGlass Server ](https://github.com/plumpudding/hopglass-server ).
2015-04-11 11:48:16 +00:00
2015-04-01 15:07:04 +00:00
# Screenshots
![](doc/mapview.png?raw=true)
![](doc/graphview.png?raw=true)
![](doc/allnodes.png?raw=true)
![](doc/links.png?raw=true)
![](doc/statistics.png?raw=true)
2015-03-29 12:49:59 +00:00
# Dependencies
2015-03-29 00:09:21 +00:00
2015-03-29 12:49:59 +00:00
- npm
- bower
- grunt-cli
2015-04-14 19:45:43 +00:00
- Sass (>= 3.2)
2015-03-29 00:09:21 +00:00
2015-03-29 12:49:59 +00:00
# Installing dependencies
2015-03-29 00:09:21 +00:00
2015-04-27 15:59:29 +00:00
Install npm and Sass with your package-manager. On Debian-like systems run:
2015-04-25 16:23:20 +00:00
2015-04-27 15:59:29 +00:00
sudo apt-get install npm ruby-sass
2015-04-25 16:23:20 +00:00
2015-08-06 16:37:27 +00:00
or if you have bundler you can install ruby-sass simply via `bundle install`
2015-04-25 16:23:20 +00:00
Execute these commands on your server as a normal user to prepare the dependencies:
2016-02-03 18:18:37 +00:00
git clone https://github.com/plumpudding/hopglass
cd hopglass
2015-03-29 12:49:59 +00:00
npm install
2015-08-06 16:37:27 +00:00
npm install grunt-cli
2015-03-29 01:46:10 +00:00
2015-07-19 17:45:25 +00:00
# Building
2016-02-03 18:18:37 +00:00
Just run the following command from the hopglass directory:
2015-07-19 17:45:25 +00:00
node_modules/.bin/grunt
This will generate `build/` containing all required files.
2015-04-20 22:10:29 +00:00
# Configure
2015-07-19 17:45:25 +00:00
Copy `config.json.example` to `build/config.json` and change it to match your community.
2015-04-20 22:10:29 +00:00
## dataPath (string)
2016-02-03 18:18:37 +00:00
`dataPath` must point to the address of a [HopGlass Server ](https://github.com/plumpudding/hopglass-server ).
Don't forget the trailing slash!
Also, proxying the data through a webserver will allow GZip and thus will greatly reduce bandwidth consumption.
It may help with firewall problems too.
2015-04-20 22:10:29 +00:00
## siteName (string)
Change this to match your communities' name. It will be used in various places.
2015-03-29 01:46:10 +00:00
2015-04-20 22:10:29 +00:00
## mapSigmaScale (float)
This affects the initial scale of the map. Greater values will show a larger
area. Values like 1.0 and 0.5 might be good choices.
## showContact (bool)
Setting this to `false` will hide contact information for nodes.
2015-04-26 11:12:11 +00:00
## maxAge (integer)
Nodes being online for less than maxAge days are considered "new". Likewise,
2015-09-30 15:38:02 +00:00
nodes being offline for more than than maxAge days are considered "lost".
2015-04-26 11:12:11 +00:00
2015-07-07 14:36:19 +00:00
## mapLayers (List)
A list of objects describing map layers. Each object has at least `name`
property and optionally `url` and `config` properties. If no `url` is supplied
`name` is assumed to name a
[Leaflet-provider ](http://leaflet-extras.github.io/leaflet-providers/preview/ ).
2015-05-11 20:43:11 +00:00
## nodeInfos (array, optional)
This option allows to show client statistics depending on following case-sensitive parameters:
- `name` caption of statistics segment in infobox
- `href` absolute or relative URL to statistics image
- `thumbnail` absolute or relative URL to thumbnail image,
can be the same like `href`
2015-06-03 23:44:55 +00:00
- `caption` is shown, if `thumbnail` is not present (no thumbnail in infobox)
2015-05-11 20:43:11 +00:00
To insert current node-id in either `href` , `thumbnail` or `caption`
you can use the case-sensitive template string `{NODE_ID}` .
Examples for `nodeInfos` :
"nodeInfos": [
2016-02-03 18:18:37 +00:00
2015-05-21 20:56:08 +00:00
{ "name": "Clientstatistik",
2016-02-03 18:18:37 +00:00
"href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}",
"thumbnail": "stats/render/dashboard-solo/db/node-byid?panelId=1& fullscreen& theme=light& width=600& height=300& var-nodeid={NODE_ID}"
2015-05-11 20:43:11 +00:00
"caption": "Knoten {NODE_ID}"
},
{ "name": "Uptime",
2016-02-03 18:18:37 +00:00
"href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}",
"thumbnail": "stats/render/dashboard-solo/db/node-byid?panelId=2& fullscreen& theme=light& width=600& height=300& var-nodeid={NODE_ID}"
2015-05-11 20:43:11 +00:00
"caption": "Knoten {NODE_ID}"
}
]
2016-02-03 18:18:37 +00:00
In order to have statistics images available, you have to set up an instance of each [Prometheus ](http://prometheus.io/ ) and [Grafana ](http://grafana.org/ ).
2015-05-11 20:43:11 +00:00
2015-06-07 16:47:14 +00:00
## globalInfos (array, optional)
This option allows to show global statistics on statistics page depending on following case-sensitive parameters:
- `name` caption of statistics segment in infobox
- `href` absolute or relative URL to statistics image
- `thumbnail` absolute or relative URL to thumbnail image,
can be the same like `href`
- `caption` is shown, if `thumbnail` is not present (no thumbnail in infobox)
In contrast to `nodeInfos` there is no template substitution in `href` , `thumbnail` or `caption` .
2016-02-03 18:18:37 +00:00
Examples for `globalInfos` using Grafana server rendering:
2015-06-07 16:47:14 +00:00
"globalInfos": [
{ "name": "Wochenstatistik",
2016-02-03 18:18:37 +00:00
"href": "stats/render/render/dashboard-solo/db/global?panelId=1& fullscreen& theme=light& width=600& height=300",
2015-06-07 16:47:14 +00:00
"thumbnail": "nodes/globalGraph.png",
"caption": "Bild mit Wochenstatistik"
}
]