diff --git a/README.md b/README.md index 0e8fba2..3249b73 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Meshviewer [![Build Status](https://img.shields.io/travis/ffrgb/meshviewer/develop.svg?style=flat-square)](https://travis-ci.org/ffrgb/meshviewer) [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/ffrgb/meshviewer/develop.svg?style=flat-square)](https://scrutinizer-ci.com/g/ffrgb/meshviewer/?branch=develop) +[![Documentation](https://img.shields.io/badge/gitbooks.io-documentation-brightgreen.svg?style=flat-square)](https://meshviewer.gitbooks.io/documentation/content/) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg?style=flat-square)](https://www.gnu.org/licenses/agpl-3.0) A web-app to visualize nodes and links on a map for Freifunk open mesh network. @@ -33,293 +34,27 @@ _Some similar features might have been implemented/merged_ - Configurable reverse geocoding server - [A lot more in the commit history](https://github.com/ffrgb/meshviewer/commits/develop) -## Demo +### Demo Embedded: https://regensburg.freifunk.net/netz/karte/ Standalone: https://regensburg.freifunk.net/meshviewer/ -## Known instances +## Documentation -| Community | Instance | Repo GitHub | -| --- | --- | --- | -| Freifunk Bremen | https://map.bremen.freifunk.net/ | [FreifunkBremen/meshviewer-ffrgb](https://github.com/FreifunkBremen/meshviewer-ffrgb) | +Documentation moved to [meshviewer.gitbooks.io](https://meshviewer.gitbooks.io/documentation/content/). +- Read: https://meshviewer.gitbooks.io/documentation/content/ +- PDF, Mobi, ePub & edit: https://www.gitbook.com/book/meshviewer/documentation/details -## Dependencies +#### Why move the documentation? -- yarn (npm fallback) -- grunt-cli - -### Installing dependencies - -_npm is still possible to use, but yarn is much faster https://yarnpkg.com/_ - -Install yarn package-manager: - - Choose your OS and install yarn https://yarnpkg.com/en/docs/install - -Execute these commands on your server as a normal user to prepare the dependencies: - -```bash -git clone https://github.com/ffrgb/meshviewer.git -cd meshviewer -yarn -# Only needed if no global grunt is installed -yarn global add grunt-cli -``` - -## Building - -Just run the following command from the meshviewer directory: - -```bash -grunt -``` - -This will generate the folder `build/` that will contain all required files. - -## Development - -Use `grunt serve` for development. - -## Support/Help - -- IRC on irc.hackint.org - - [#freifunkRGB](irc://irc.hackint.org/freifunkRGB) - - [#meshviewer](irc://irc.hackint.org/meshviewer) (development-channel) -- Feel free to open an [issue](https://github.com/ffrgb/meshviewer/issues/new) for a problem or an idea. - -## Customize style - -Start your development and edit files in `scss/custom/`. Additional information in file comments. - -## Configure - -Change `config.json`to match your community. - -### dataPath (string/array) - -`dataPath` can be either a string containing the address of a Nodes.json v2 compatible backend (e.g. ffmap backend) or an array containing multiple addresses. -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. - -### siteName (string) - -Change this to match your communities' name. It will be used in various places. - -### maxAge (integer) - -Nodes being online for less than maxAge days are considered "new". Likewise, -nodes being offline for more than than maxAge days are considered "lost". - -### maxAgeAlert (integer) - -Nodes being offline for more than than maxAge days are considered "lost". -Lost will be splitted in alert and lost. - -### nodeZoom (integer) - -Max level to be applied by clicking a node or opening a node. Value `18` is a good default, so nearby buildings and streets should be visible. - -### labelZoom (integer) - -Min. level for node labels shown on the map. Labels aren't shown in first zoom levels and need performance. - -### clientZoom (integer) - -Min. level to set starting layer for client dots on map. - -### nodeInfobox - -#### contact (bool, optional) - -Setting this to `false` will hide contact information for nodes. - -#### hardwareUsage (bool, optional) - -Setting this to `false` will hide bars of memory usage and load avg for nodes. - -### mapLayers (List) - -A list of objects describing map layers. Each object has at least `name`, `url` and `config` properties. [Example layers and configuration](http://leaflet-extras.github.io/leaflet-providers/preview/) (map against config.json). - -#### mode (string, optional) - -Allows to load a additional style for a night mode or similar use case. Possible are inline style or link. -Inline avoids re-rendering and maybe issues with label-layer update. Important are class "css-mode mode-name" and media "not". - -_Default is night.css inline in index.html_ - -```html - -``` - -or - -```html - -``` - -#### start (integer, optional) - -Start a time range to put this mapLayer on first position. - -#### end (integer, optional) - -End a time range for first map. Stops sort this mapLayer. - -### fixedCenter (array[array, array]) - -Choose a rectangle that must be displayed on the map. Set 2 Locations and everything between will displayed. - -Examples for `fixedCenter`: - -```json -// Set a visible frame -"fixedCenter": [ - [ - 49.3522, - 11.7752 - ], - [ - 48.7480, - 12.8917 - ] -], -``` - -### nodeInfos (array, optional) - -This option allows to show node statistics depending on following case-sensitive parameters: - -- `name` header of statistics segment in infobox -- `href` absolute or relative URL to statistics image -- `image` `(required)` absolute or relative URL to image, - can be the same like `href` -- `title` for the image - -To insert current variables in either `href`, `image` or `title` -you can use the case-sensitive template string `{NODE_ID}`, `{NODE_NAME}`, `{LOCALE}` and `{TIME}` as cache-breaker. - -Examples for `nodeInfos`: - -```json -"nodeInfos": [ - { - "name": "Clientstatistik", - "href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}", - "image": "stats/render/dashboard-solo/db/node-byid?panelId=1&fullscreen&theme=light&width=600&height=300&var-nodeid={NODE_ID}&var-host={NODE_NAME}&_t={TIME}", - "title": "Knoten {NODE_ID}" - }, - { - "name": "Uptime", - "href": "stats/dashboard/db/node-byid?var-nodeid={NODE_ID}", - "image": "stats/render/dashboard-solo/db/node-byid?panelId=2&fullscreen&theme=light&width=600&height=300&var-nodeid={NODE_ID}&_t={TIME}", - "title": "Knoten {NODE_ID}" - } -] -``` - -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` header of statistics segment in infobox -- `href` absolute or relative URL to statistics image -- `image` `(required)` absolute or relative URL to image, - can be the same like `href` -- `title` for the image - -In contrast to `nodeInfos` there is no template substitution in `href`, `image` or `title`. - -Examples for `globalInfos` using Grafana server rendering: - -```json -"globalInfos": [ - { - "name": "Wochenstatistik", - "href": "stats/render/render/dashboard-solo/db/global?panelId=1&fullscreen&theme=light&width=600&height=300", - "image": "nodes/globalGraph.png", - "title": "Bild mit Wochenstatistik" - } -] -``` - -### linkInfos (array, optional) - -This option allows to show link statistics depending on the following case-sensitive parameters: - -- `name` header of statistics segment in infobox -- `href` absolute or relative URL to statistics image -- `image` `(required)` absolute or relative URL to image, - can be the same like `href` -- `title` for the image - -To insert the source or target variable in either `href`, `image` or `title` -you can use the case-sensitive template strings `{SOURCE_ID}`, `{TARGET_ID}`, `{SOURCE_NAME}`, `{TARGET_NAME}`, `{LOCALE}` and `{TIME}` as cache-breaker. - -```json -"linkInfos": [ - { - "name": "Linkstatistik", - "href": "stats/dashboard/db/links?var-source={SOURCE_ID}&var-target={TARGET_ID}", - "image": "stats/render/dashboard-solo/db/links?panelId=1&fullscreen&theme=light&width=800&height=600&var-source={SOURCE_ID}&var-target={TARGET_ID}&_t={TIME}", - "title": "Bild mit Linkstatistik" - } -] -``` - -### 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`: - -```json - "siteNames": [ - { - "site": "ffrgb", - "name": "Regensburg" - }, - { - "site": "ffrgb-dummy", - "name": "Regensburg Test" - } - ], -``` - - -### supportedLocale (array) - -Add supported locale (with matching language file in locales/*.json) and it will be matched against the browser language setting. Fallback is the first language in the array. - -Example for `supportedLocale`: - -```json -"supportedLocale": [ - "en", - "de", - "fr" -] -``` - -### cacheBreaker (string) - -Will be replaced in every build to avoid missing or outdated language strings, because language.json isn't up to date. - -_Fixed value (vy0zx)._ +- Search available +- Multiple pages +- Less doc commits, faster changes +- Export as PDF, Mobi, ePub ## Sponsoring / Supporting + - [BrowserStack](https://www.browserstack.com/) for providing an awesome testing service for hundreds of browsers - [Travis CI](https://travis-ci.org/) for building meshviewer on every push and pull request - [Scrutinizer CI](https://scrutinizer-ci.com/g/ffrgb/meshviewer/) for testing code quality on every push and pull request