hopglass/README.md

193 lines
6.6 KiB
Markdown
Raw Permalink Normal View History

[![Build Status](https://travis-ci.org/hopglass/hopglass.svg?branch=master)](https://travis-ci.org/hopglass/hopglass)
2015-04-01 17:49:12 +02:00
2016-02-03 19:18:37 +01:00
# HopGlass
2015-04-01 17:07:04 +02:00
HopGlass is a frontend for the [HopGlass Server](https://github.com/hopglass/hopglass-server).
2015-04-11 13:48:16 +02:00
2015-04-01 17:07:04 +02: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 14:49:59 +02:00
# Dependencies
2015-03-29 01:09:21 +01:00
2019-01-20 20:21:17 +01:00
- NodeJS
2019-01-20 18:15:14 +01:00
- yarn (recommended) or npm
2015-03-29 01:09:21 +01:00
2015-03-29 14:49:59 +02:00
# Installing dependencies
2015-03-29 01:09:21 +01:00
Install npm package-manager. On Debian-like systems run:
2015-04-25 18:23:20 +02:00
2019-01-20 20:21:17 +01:00
sudo apt-get install nodejs
2019-01-20 20:21:17 +01:00
**Note:** The official Debian packages for NodeJS are quite old, you might want to check at [NodeSource](https://github.com/nodesource/distributions/blob/master/README.md) for current binaries installable with your distribution's package manager.
On Mac you can install nodejs and yarn via brew:
2016-02-25 15:49:45 +01:00
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install node
2019-01-20 20:21:17 +01:00
brew install yarn
On Arch Linux you can install nodejs and yarn via pacman:
sudo pacman -S nodejs yarn
2015-04-25 18:23:20 +02:00
Execute these commands on your server as a normal user to prepare the dependencies:
git clone https://github.com/hopglass/hopglass
2016-02-03 19:18:37 +01:00
cd hopglass
2019-01-20 20:21:17 +01:00
yarn install # or `npm install`
2015-03-29 03:46:10 +02:00
# Building
2016-02-03 19:18:37 +01:00
Just run the following command from the hopglass directory:
node_modules/.bin/grunt
This will generate `build/` containing all required files.
2015-04-21 00:10:29 +02:00
# Configure
Copy `config.json.example` to `build/config.json` and change it to match your community.
2015-04-21 00:10:29 +02:00
2016-02-05 13:49:33 +01:00
## dataPath (string/array)
2015-04-21 00:10:29 +02:00
`dataPath` can be either a string containing the address of a [HopGlass Server](https://github.com/hopglass/hopglass-server) or an array containing multiple addresses.
2016-02-03 19:18:37 +01:00
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-21 00:10:29 +02:00
## siteName (string)
Change this to match your communities' name. It will be used in various places.
2015-03-29 03:46:10 +02:00
2015-04-21 00:10:29 +02: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 13:12:11 +02:00
## maxAge (integer)
Nodes being online for less than maxAge days are considered "new". Likewise,
2015-09-30 17:38:02 +02:00
nodes being offline for more than than maxAge days are considered "lost".
2015-04-26 13:12:11 +02:00
2015-07-07 16:36:19 +02: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/).
## fixedCenter (array, optional)
This option allows to fix the map at one specific coordinate depending on following case-sensitive parameters:
- `lat` latitude of the center point
- `lng` longitude of the center point
- `radius` visible radius around the center in km
Examples for `fixedCenter`:
"fixedCenter": {
"lat": 50.80,
"lng": 12.07,
"radius": 30
}
## nodeInfos (array, optional)
2016-03-08 20:07:20 +01:00
This option allows to show node 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`
- `caption` is shown, if `thumbnail` is not present (no thumbnail in infobox)
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 19:18:37 +01:00
2015-05-21 22:56:08 +02:00
{ "name": "Clientstatistik",
2016-02-03 19:18:37 +01:00
"href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}",
2016-05-09 18:17:45 +02:00
"thumbnail": "stats/render/dashboard-solo/db/node-byid?panelId=1&fullscreen&theme=light&width=600&height=300&var-nodeid={NODE_ID}",
"caption": "Knoten {NODE_ID}"
},
{ "name": "Uptime",
2016-02-03 19:18:37 +01:00
"href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}",
2016-05-09 18:17:45 +02:00
"thumbnail": "stats/render/dashboard-solo/db/node-byid?panelId=2&fullscreen&theme=light&width=600&height=300&var-nodeid={NODE_ID}",
"caption": "Knoten {NODE_ID}"
}
]
2016-02-03 19:18:37 +01: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/).
## 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 19:18:37 +01:00
Examples for `globalInfos` using Grafana server rendering:
"globalInfos": [
{ "name": "Wochenstatistik",
2016-02-03 19:18:37 +01:00
"href": "stats/render/render/dashboard-solo/db/global?panelId=1&fullscreen&theme=light&width=600&height=300",
"thumbnail": "nodes/globalGraph.png",
"caption": "Bild mit Wochenstatistik"
}
]
2016-03-08 20:07:20 +01:00
## linkInfos (array, optional)
This option allows to show link statistics depending on the 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)
To insert the source or target node-id in either `href`, `thumbnail` or `caption`
you can use the case-sensitive template strings `{SOURCE}` and `{TARGET}`.
"linkInfos": [
{ "href": "stats/dashboard/db/links?var-source={SOURCE}&var-target={TARGET}",
"thumbnail": "stats/render/dashboard-solo/db/links?panelId=1&fullscreen&theme=light&width=800&height=600&var-source={SOURCE}&var-target={TARGET}"
}
]
## siteNames (array, optional)
In this array name definitions for site statistics and node info can be saved. This requires one object for each site code. This object must contain:
- `site` the site code
- `name` the defined written name for this site code
If neither `siteNames` nor `showSites` are set, site statistics and node info won't be displayed
Example for `siteNames`:
"siteNames": [
{ "site": "ffhl", "name": "Lübeck" },
{ "site": "ffeh", "name": "Entenhausen" ),
{ "site": "ffgt", "name": "Gothamcity" },
{ "site": "ffal", "name": "Atlantis" }
]