diff --git a/README.md b/README.md index fc718fe..d70aaac 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ # Data for Freifunk Map, Graph and Node List ffmap-backend gathers information on the batman network by invoking - batctl -and - batadv-vis + + * batctl, + * alfred-json and + * batadv-vis + as root (via sudo) and has this information placed into a target directory as the file "nodes.json" and also updates the directory "nodes" with graphical representations of uptimes and the number of clients connecting. -The target directory is suggested to host all information for interpreting those -node descriptions, e.g. as provided by https://github.com/ffnord/ffmap-d3.git . +Run `backend.py --help` for a quick overview of all available options. + When executed without root privileges, we suggest to grant sudo permissions within wrappers of those binaries, so no further changes are required in other scripts: @@ -24,30 +26,35 @@ EOCAT and analogously for batadv-vis. The entry for /etc/sudoers could be whateveruser ALL=(ALL:ALL) NOPASSWD: /usr/sbin/batctl,/usr/sbin/batadv-vis,/usr/sbin/alfred-json -The destination directory can be made directly available through apache: -
-$ cat /etc/apache2/site-enabled/000-default
-...
-        
-                Options Indexes FollowSymLinks MultiViews
-                AllowOverride None
-                Order allow,deny
-                allow from all
-        
-...
-
-$ cat /etc/apache2/conf.d/freifunk
-Alias /map /home/ffmap/www/
-Alias /firmware /home/freifunk/autoupdates/
-
- -To execute, run - ./mkmap.sh ../www -The script expects above described sudo-wrappers in the $HOME directory of the user executing -the script. If those are not available, an error will occurr if not executed as root. Also, -the tool realpath optionally allows to execute the script from anywhere in the directory tree. - For the script's regular execution add the following to the crontab:
-*/5 * * * * /home/ffmap/ffmap-backend/mkmap.sh /home/ffmap/www
+* * * * * /path/to/ffmap-backend/backend.py -d /path/to/output -a /path/to/aliases.json --vpn ae:7f:58:7d:6c:2a --vpn d2:d0:93:63:f7:da
 
+ +# Data format + +## nodes.json + + { 'nodes': { + node_id: { 'flags': { flags }, + 'firstseen': isoformat, + 'lastseen': isoformat, + 'nodeinfo': {...}, # copied from alfred type 158 + 'statistics': { + 'uptime': double, # seconds + 'memory_usage': double, # 0..1 + 'clients': double, + 'rootfs_usage': double, # 0..1 + 'loadavg': double, + 'gateway': mac + } + }, + ... + } + 'timestamp': isoformat + } + +### flags (bool) + +- online +- gateway