Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


meshviewer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
meshviewer [05.12.2015 19:33] – created havelockmeshviewer [14.12.2023 15:23] (aktuell) – [Backend] havelock
Zeile 1: Zeile 1:
-====== Meshviewer ======+====== Meshviewer / Knotenkarte ====== 
 + 
 +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 [[meshviewer_json|JSON-Dateien]], welche sinnvollerweise 
 +in einem Datenverzeichnis abgelegt werden. In den Dateien ist beispielsweise 
 +das erste Auftauchen eines Knotens vermerkt: 
 +  * ''nodelist.json'' - Kurze Knotenliste 
 +  * ''nodes.json'' - Detaildaten zu den einzelnen Knoten 
 +  * ''graph.json'' - Beschreibung der Verbindungen der Knoten untereinander 
 +  * ''blacklist.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 ^ 
 +| {{:icon-location.png?nolink|}} | Koordinaten sind vorhanden, Knoten wird auf der Karte angezeigt | 
 +| {{:icon-car.png?nolink|}} | Mobiler Knoten (role=mobile) | 
 +| {{:icon-clock.png?nolink|}} | Temporärer Knoten z.B. nur tagsüber verfügbar (role=temp) | 
 +| {{:icon-planet.png?nolink|}} | VPN Offloader (role=offloader) | 
 +| {{:icon-flask.png?nolink|}} | Testknoten (role=test) | 
 +| {{:icon-earth.png?nolink|}} | Gateway | 
 +| {{:icon-gear.png?nolink|}} | Knoten für Dienste (Server) | 
  
 ===== Backend ===== ===== Backend =====
 +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:
 +<code>
 +aptitude install python3 python3-networkx python-configparser rrdtool
 +</code>
 +
 +Die Daten werden unter Debian am besten unter  ''/var/lib'' gespeichert.
 +Wir verwenden:
 +  * ''/var/lib/ffmap'' ist das Basisverzeichnis
 +    * die JSON-Dateien speichern wir in das Verzeichnis ''/var/lib/ffmap/mapdata'', dieses wird über die Konfiguration des virtuellen Servers als Alias in den Webspace des Meshviewers eingebunden
 +    * die RRD-Dateien speichern wir in das Verzeichnis ''/var/lib/ffmap/nodedb''
 +  * Konfigurationsdateien gehören nach ''/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:
 +<file bash /etc/cron.d/ffmap>
 +# 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
 +</file>
 +
 +Beispiel für eine Konfigurationsdatei des Backends:
 <file conf /etc/ffmap/ffmap.cfg> <file conf /etc/ffmap/ffmap.cfg>
-*** Hier fehlt etwas *** +# configuration for freifunk map utilities 
-b/ffmap/mapdata+ 
 +[global] 
 +logfile = /var/log/ffmap.log 
 +loglevel = 2 
 +dest_dir = /var/lib/ffmap/mapdata
 aliases = /etc/ffmap/aliases.json aliases = /etc/ffmap/aliases.json
 prune = 180 prune = 180
Zeile 30: Zeile 96:
 ===== Frontend ===== ===== Frontend =====
  
-Wir benutzen die Version des Frontends mit einigen kleinen eigenen Änderungen.+Wir benutzen die Version des Frontends mit einigen kleinen eigenen Änderungen. 
 +Die Quellen befinden sich unter: https://github.com/ffnord/meshviewer
  
-Abhängigkeiten +  aptitude install nodejs nodejs-legacy npm ruby-sass
-  * batctl +
-  * alfred-json +
-  * batadv-vis+
  
 <code> <code>
-git clone https://github.com/tcatm/meshviewer.git+git clone https://github.com/ffnord/meshviewer.git
 cd meshviewer cd meshviewer
 +git checkout v4
 npm install npm install
 npm install bower grunt-cli npm install bower grunt-cli
 node_modules/.bin/bower install node_modules/.bin/bower install
 +ln -s /var/lib/ffmap/mapdata data
 </code> </code>
  
Zeile 57: Zeile 123:
 </code> </code>
  
 +  cp config.json.example config.json
 +  
 +Config.json bearbeiten
 +  
 TODO RESTORE TODO RESTORE
 +
 +TODO Wenn es keinen Knoten mit Koordinaten gibt, dann wird die Leaflet-Karte nicht angezeigt
 +
 +<WRAP center round info>
 +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" => "*" )''
 +</WRAP>
 +
 +==== Alternativinstallation ====
 +
 +Ohne den ganzen NodeJS-Plunder.
 +Es werden soweit es geht Pakete des Betriebssystems verwendet,
 +Siehe dazu auch den Helgoländer Meshviewer.
 +
 +<code>
 +apt-get install libjs-moment libjs-d3 libjs-requirejs libjs-es6-shim
 +</code>
 +
 +
 +==== Statistik ====
 +
 +  aptitude install php-gd php-rrd
 +
 +Die Statistiken sind im Unterverzeichnis ''stats'' zu finden.
 +
  
  
meshviewer.1449340419.txt.gz · Zuletzt geändert: 05.12.2015 19:33 von havelock