Dies ist eine alte Version des Dokuments!
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:
graph.json
nodelist.json
- Kurze Knotenlistenodes.json
- Detaildaten zu den einzelnen KnotenWerden 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) |
![]() | VPN Offloader (role=offloader) |
![]() | Testknoten (role=test) |
![]() | Gateway |
Das Backend heißt ffmap-backend
, das Pinneberger Programm ist zu finden unter: https://github.com/freifunk-pinneberg/ffmap-backend
Voraussetzung für den Betrieb:
aptitude install python3 python3-networkx 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-backend/backend.py -d /var/lib/ffmap/mapdata -a /etc/ffmap/aliases.json --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 3 des Frontends mit einigen kleinen eigenen Änderungen.
aptitude install nodejs nodejs-legacy npm ruby-sass
Abhängigkeiten
git clone https://github.com/ffnord/meshviewer.git cd meshviewer npm install npm install bower grunt-cli node_modules/.bin/bower install
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
RESTORE