hopglass / hopglass-server

The HopGlass Server, which collects data from Freifunk networks and processes it to be used in HopGlass or for statistics
GNU Affero General Public License v3.0
21 stars 27 forks source link

HopGlass Server

The HopGlass Server collects data from Freifunk networks and processes it to be used in HopGlass, for statistics and other purposes.

How to use

Installation

  1. Install a recent version of NodeJS. It is recommended to use your distribution's package manager: https://nodejs.org/en/download/package-manager/

  2. Clone the hopglass-server repository to /opt/hopglass/server

    mkdir -p /opt/hopglass git clone https://github.com/hopglass/hopglass-server /opt/hopglass/server

  3. Install NPM dependencies with yarn

    cd /opt/hopglass/server yarn install

  4. Copy the systemd service file to /etc/systemd/system, or create an init-script if your distribution does not support systemd.

    cp /opt/hopglass/server/hopglass-server@.service /etc/systemd/system/ systemctl daemon-reload

  5. Start the HopGlass Server: # systemctl start hopglass-server@default

    systemctl start hopglass-server@default

  6. (Optional) Automatically start the HopGlass Server at boot:

    systemctl enable hopglass-server@default

After installation

Optionally create a configuration file in /etc/hopglass-server/default/config.json, and an aliases file in /var/lib/hopglass-server/default/aliases.json. Ensure, that the ports, you configured are open in your firewall (default port 1001 UDP and 45123 UDP).

You might want to

Update

Warning: The HopGlass Server is subject to major changes. Updates may require manual intervention.

For a start, you can try this:

  1. pull

    cd /opt/hopglass/server git pull

  2. Copy the new systemd service file to /etc/systemd/system or /lib/systemd/system/ and reload with:

    cp /opt/hopglass/server/hopglass-server@.service /etc/systemd/system/ systemctl daemon-reload

  3. check for possible needed changes in the config.json

    diff config.json config.json.example

  4. rebuild the server:

    cd /opt/hopglass/server yarn install

  5. restart the service

    systemctl restart hopglass-server@default

Note: The default paths for configuration and state files might have changed. Make sure your config.json, raw.json and aliases.json are located in /etc/hopglass-server/default/config.json, /var/lib/hopglass-server/default/aliases.json and /var/lib/hopglass-server/default/raw.json respectively.

Possible webserver queries

Query Location Description
/nodes.json HopGlass nodes.json v2
/graph.json HopGlass graph.json v1
/mv/nodes.json Meshviewer nodes.json v2
/mv/graph.json Meshviewer graph.json v1
/mv1/nodes.json Meshviewer nodes.json v1
/mv1/graph.json Meshviewer graph.json v1
/raw.json Raw data collected, same as the raw.json save file
/nodelist.json nodelist.json format (github.com/ffansbach/nodelist)
/hosts hosts file to be placed in /etc/hosts
/metrics Prometheus metrics
/wifi-aliases.txt Aliases file for Wifi Analyzer app
/WifiAnalyzer_Alias.txt Aliases file for Wifi Analyzer app
/ffapi.json Freifunk API file
/nodes.zone Named DNS zone file

Metrics values

per node (all with the labels hostname, and nodeid):

total values:

Filter / Query's

Syntax

Filternames

Development timeline

oldmaster (outdated)

v0.1.0 (outdated)

v0.1.1 (outdated)

v0.1.2 (outdated)

v0.1.3 (outdated)

v1.0.0 (current)

v2.0.0 (next)