Die Karte läuft momentan auf dem Server, der auch gate03
fährt.
Um die notwendigen Daten zu sammeln muß das Backend ffmap-backend
auf die Programme alfred
und batadv-vis
zurückgreifen.
Folglich muß das Backendprogramm auf einem Rechner laufen, der Teil
des Meshs ist.
Das Backend schreibt die Daten in drei JSON-Dateien, welche sinnvollerweise
in einem Datenverzeichnis abgelegt werden. In den Dateien ist beispielsweise
das erste Auftauchen eines Knotens vermerkt:
nodelist.json
- Kurze Knotenlistenodes.json
- Detaildaten zu den einzelnen Knotengraph.json
- Beschreibung der Verbindungen der Knoten untereinanderblacklist.json
- Korrekturmöglichkeit für Knoten, die die Karte „sprengen“Werden die Dateien gelöscht, beginnt man ganz von vorne, d.h. alle Knoten werden wieder als neu angesehen.
Hinter den Knoten werden ggf. verschiedene Symbole angezeigt:
Symbol | Bedeutung |
---|---|
Koordinaten sind vorhanden, Knoten wird auf der Karte angezeigt | |
Mobiler Knoten (role=mobile) | |
Temporärer Knoten z.B. nur tagsüber verfügbar (role=temp) | |
VPN Offloader (role=offloader) | |
Testknoten (role=test) | |
Gateway | |
Knoten für Dienste (Server) |
Das Backend heißt ffmap-backend
, das Pinneberger Programm ist zu finden unter: https://git.pinneberg.freifunk.net/thooge/ffmap-backend
Abhängigkeiten von Programmen
batctl
alfred-json
batadv-vis
Voraussetzung für den Betrieb:
aptitude install python3 python3-networkx python-configparser rrdtool
Die Daten werden unter Debian am besten unter /var/lib
gespeichert.
Wir verwenden:
/var/lib/ffmap
ist das Basisverzeichnis/var/lib/ffmap/mapdata
, dieses wird über die Konfiguration des virtuellen Servers als Alias in den Webspace des Meshviewers eingebunden/var/lib/ffmap/nodedb
/etc
, wir verwenden /etc/ffmap
:aliases.json
ffmap.cfg
Es wird eine Protokolldatei geschrieben. Als Standard wird /var/log/ffmap.log
verwendet.
Der Umfang der Protokollierung kann über die Konfigurationsdatei mittels loglevel
eingestellt werden. Die Protokollierung kann durch einen Loglevel von 0 ausgestellt werden.
Die Datenaktualisierung erfolgt jede Minute über einen Cron-job:
# Meshviewer backend SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin */1 * * * * root /usr/local/bin/ffmap-pi/backend.py -d /var/lib/ffmap/mapdata --with-rrd
Beispiel für eine Konfigurationsdatei des Backends:
# configuration for freifunk map utilities [global] logfile = /var/log/ffmap.log loglevel = 2 dest_dir = /var/lib/ffmap/mapdata aliases = /etc/ffmap/aliases.json prune = 180 [rrd] enabled = yes graphs = no nodedb = /var/lib/ffmap/nodedb
Wenn protokolliert wird, kann das eine ganze Menge an Daten ergeben, weil das Programm im Normalfall jede Minute ausgeführt wird. Da ist es sinnvoll, die Rotation der Logdateien zu konfigurieren:
/var/log/ffmap.log { daily rotate 7 compress delaycompress notifempty missingok }
Wir benutzen die Version 4 des Frontends mit einigen kleinen eigenen Änderungen. Die Quellen befinden sich unter: https://github.com/ffnord/meshviewer
aptitude install nodejs nodejs-legacy npm ruby-sass
git clone https://github.com/ffnord/meshviewer.git cd meshviewer git checkout v4 npm install npm install bower grunt-cli node_modules/.bin/bower install ln -s /var/lib/ffmap/mapdata data
Unter Wheezy muß die Datei scss/main.scss
angepaßt werden.
/* @media screen and (max-width: $minscreenwidth) { */ @media screen and (max-width: 630pt) {
Nach einer Änderung in der Konfiguration muß der folgende Befehl aufgerufen werden:
node_modules/.bin/grunt
cp config.json.example config.json
Config.json bearbeiten
RESTORE
Wenn es keinen Knoten mit Koordinaten gibt, dann wird die Leaflet-Karte nicht angezeigt
Wenn die JSON-Dateien von einem anderen Server geladen werden, so
muß dieser einen zusätzlichen Antwortheader einbauen. Für Lighttpd ist das
z.B.: setenv.add-response-header = ( „Access-Control-Allow-Origin“ ⇒ „*“ )
Ohne den ganzen NodeJS-Plunder. Es werden soweit es geht Pakete des Betriebssystems verwendet, Siehe dazu auch den Helgoländer Meshviewer.
apt-get install libjs-moment libjs-d3 libjs-requirejs libjs-es6-shim
aptitude install php-gd php-rrd
Die Statistiken sind im Unterverzeichnis stats
zu finden.