From 50f0fc1c0a1aeea50de23ad2f67bc71c5e49321b Mon Sep 17 00:00:00 2001 From: Jeff Deaton Date: Sun, 6 Oct 2019 17:28:23 -0600 Subject: [PATCH] Initial changes for installation on EOSS tracker brick --- debian/control | 4 +- debian/dump1090-fa.default | 4 +- debian/dump1090-fa.install | 1 - debian/dump1090-fa.postinst | 47 +++++++++++++------ debian/dump1090-fa.postrm | 25 +++++----- debian/dump1090-fa.service | 2 +- debian/lighttpd/88-dump1090-fa-statcache.conf | 4 -- debian/lighttpd/89-dump1090-fa.conf | 27 ----------- public_html/config.js | 5 +- public_html/layers.js | 3 +- public_html/script.js | 2 +- 11 files changed, 54 insertions(+), 70 deletions(-) delete mode 100644 debian/lighttpd/88-dump1090-fa-statcache.conf delete mode 100644 debian/lighttpd/89-dump1090-fa.conf diff --git a/debian/control b/debian/control index f60de0d..2a886f4 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: Oliver Jowett Build-Depends: debhelper(>=9), librtlsdr-dev, libusb-1.0-0-dev, pkg-config, dh-systemd, libncurses5-dev, libbladerf-dev Standards-Version: 3.9.3 Homepage: http://www.flightaware.com/ -Vcs-Git: https://github.com/flightaware/dump1090.git +Vcs-Git: https://github.com/Deatojef/dump1090.git Package: dump1090 Architecture: all @@ -19,7 +19,7 @@ Description: transitional dummy package for dump1090 Package: dump1090-fa Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libbladerf1 (>= 0.2016.06), adduser, lighttpd +Depends: ${shlibs:Depends}, ${misc:Depends}, libbladerf1 (>= 0.2016.06), adduser Replaces: dump1090 (<< 3.0) Breaks: dump1090 (<< 3.0) Description: ADS-B Ground Station System for RTL-SDR diff --git a/debian/dump1090-fa.default b/debian/dump1090-fa.default index 3e4bb73..24a1821 100644 --- a/debian/dump1090-fa.default +++ b/debian/dump1090-fa.default @@ -9,7 +9,7 @@ # dump1090-fa won't automatically start unless ENABLED=yes ENABLED=yes -RECEIVER_OPTIONS="--device-index 0 --gain -10 --ppm 0" -DECODER_OPTIONS="--max-range 360 --fix" +RECEIVER_OPTIONS="--device ADSB --gain -10 --ppm 0" +DECODER_OPTIONS="--max-range 800 --fix" NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1300 --net-ro-interval 0.2 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005" JSON_OPTIONS="--json-location-accuracy 1" diff --git a/debian/dump1090-fa.install b/debian/dump1090-fa.install index 67292d1..2db597d 100644 --- a/debian/dump1090-fa.install +++ b/debian/dump1090-fa.install @@ -1,4 +1,3 @@ public_html/* usr/share/dump1090-fa/html -debian/lighttpd/* etc/lighttpd/conf-available bladerf/* usr/share/dump1090-fa/bladerf debian/start-dump1090-fa usr/share/dump1090-fa/ diff --git a/debian/dump1090-fa.postinst b/debian/dump1090-fa.postinst index d533ccf..ed71d2d 100644 --- a/debian/dump1090-fa.postinst +++ b/debian/dump1090-fa.postinst @@ -34,21 +34,40 @@ case "$1" in # plugdev required for bladeRF USB access adduser "$RUNAS" plugdev - # set up lighttpd - if dpkg --compare-versions "$2" lt "3.1.0" - then - echo "Enabling lighttpd integration.." >&2 - lighty-enable-mod dump1090-fa || true - - # only enable the statcache config if there is nothing else around that already - # configures it, because lighttpd fails if it's configured twice - if ! grep -q -E '^\S*server.stat-cache-engine' /etc/lighttpd/conf-enabled/*.conf - then - echo "Enabling lighttpd integration (stat cache).." >&2 - lighty-enable-mod dump1090-fa-statcache || true - fi + # Make sure the "data" directory is owned by dump1090 so the dump1090-fa process has write access + jsondir="/usr/share/dump1090-fa/html/data" + if [ -d ${jsondir} ]; then + echo "Changing permissions on ${jsondir}..." >&2 + chown ${RUNAS}:nogroup ${jsondir} + chmod 755 ${jsondir} fi + # Update apache + changed=false + for apachefile in /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-ssl.conf + do + if [ -f ${apachefile} ]; then + echo "Modifying ${apachefile}..." >&2 + sed -i '/<\/VirtualHost>/i \ + ####dump1090-start###\ + Alias "/data" "/dump1090-fa/data"\ + Alias "/dump1090-fa" "/usr/share/dump1090-fa/html"\ + Alias "^/dump1090-fa$" "/dump1090-fa"\ + SetEnvIf Request_URI "/dump1090-fa/data/.*\.json$" Header set "Access-Control-Allow-Origin" "*"\ + ####dump1090-end###' ${apachefile} + changed=true + fi + done + + # Restart apache + if $changed + then + echo "Restarting Apache..." >&2 + invoke-rc.d apache2 restart || echo "Warning: apache2 failed to restart." >&2 + fi + + + # on upgrade, add an ENABLED line if it's not already present if dpkg --compare-versions "$2" lt-nl "3.7.0" then @@ -63,8 +82,6 @@ case "$1" in fi fi - echo "Restarting lighttpd.." >&2 - invoke-rc.d lighttpd restart || true ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/dump1090-fa.postrm b/debian/dump1090-fa.postrm index 39182bc..2bae9c3 100644 --- a/debian/dump1090-fa.postrm +++ b/debian/dump1090-fa.postrm @@ -26,24 +26,21 @@ case "$1" in remove) changed=false - if [ -e /etc/lighttpd/conf-enabled/89-dump1090-fa.conf ] - then - echo "Disabling lighttpd integration.." >&2 - lighty-disable-mod dump1090-fa || true - changed=true - fi - if [ -e /etc/lighttpd/conf-enabled/88-dump1090-fa-statcache.conf ] - then - echo "Disabling lighttpd integration (stat cache).." >&2 - lighty-disable-mod dump1090-fa-statcache || true - changed=true - fi + for apachefile in /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-ssl.conf + do + if [ -f ${apachefile} ]; then + echo "Modifying apache file ${apachefile}..." >&2 + sed -i '/^[ \t]*#*dump1090-start#*/,/^[ \t]*#*dump1090-end#*/{/^[ \t]*#*dump1090-start#*/!{/^[ \t]*#*dump1090-end#*/!d}}' ${apachefile} + sed -i '/[ \t]*#*dump1090-start#*/,/^[ \t]*#*dump1090-end#*/d' ${apachefile} + changed=true + fi + done if $changed then - echo "Restarting lighttpd.." >&2 - invoke-rc.d lighttpd restart || echo "Warning: lighttpd failed to restart." >&2 + echo "Restarting Apache..." >&2 + invoke-rc.d apache2 restart || echo "Warning: apache2 failed to restart." >&2 fi ;; diff --git a/debian/dump1090-fa.service b/debian/dump1090-fa.service index f05607d..a64c098 100644 --- a/debian/dump1090-fa.service +++ b/debian/dump1090-fa.service @@ -10,7 +10,7 @@ After=network.target User=dump1090 RuntimeDirectory=dump1090-fa RuntimeDirectoryMode=0755 -ExecStart=/usr/share/dump1090-fa/start-dump1090-fa --write-json %t/dump1090-fa --quiet +ExecStart=/usr/share/dump1090-fa/start-dump1090-fa --write-json /usr/share/dump1090-fa/html/data --quiet SyslogIdentifier=dump1090-fa Type=simple Restart=on-failure diff --git a/debian/lighttpd/88-dump1090-fa-statcache.conf b/debian/lighttpd/88-dump1090-fa-statcache.conf deleted file mode 100644 index 1f85e34..0000000 --- a/debian/lighttpd/88-dump1090-fa-statcache.conf +++ /dev/null @@ -1,4 +0,0 @@ -# The stat cache must be disabled, as aircraft.json changes -# frequently and lighttpd's stat cache often ends up with the -# wrong content length. -server.stat-cache-engine = "disable" diff --git a/debian/lighttpd/89-dump1090-fa.conf b/debian/lighttpd/89-dump1090-fa.conf deleted file mode 100644 index 287fd4f..0000000 --- a/debian/lighttpd/89-dump1090-fa.conf +++ /dev/null @@ -1,27 +0,0 @@ -# Allows access to the static files that provide the dump1090 map view, -# and also to the dynamically-generated json parts that contain aircraft -# data and are periodically written by the dump1090 daemon. - -alias.url += ( - "/dump1090-fa/data/" => "/run/dump1090-fa/", - "/dump1090-fa/" => "/usr/share/dump1090-fa/html/" -) - -# redirect the slash-less URL -url.redirect += ( - "^/dump1090-fa$" => "/dump1090-fa/" -) - -# Listen on port 8080 and serve the map there, too. -$SERVER["socket"] == ":8080" { - alias.url += ( - "/data/" => "/run/dump1090-fa/", - "/" => "/usr/share/dump1090-fa/html/" - ) -} - -# Add CORS header -server.modules += ( "mod_setenv" ) -$HTTP["url"] =~ "^/dump1090-fa/data/.*\.json$" { - setenv.add-response-header = ( "Access-Control-Allow-Origin" => "*" ) -} diff --git a/public_html/config.js b/public_html/config.js index da7a756..89bc126 100644 --- a/public_html/config.js +++ b/public_html/config.js @@ -23,8 +23,9 @@ DisplayUnits = "nautical"; // degrees. // Default center of the map. -DefaultCenterLat = 45.0; -DefaultCenterLon = 9.0; +// 39.234 | -103.697 - Limon, CO +DefaultCenterLat = 39.234; +DefaultCenterLon = -103.697; // The google maps zoom level, 0 - 16, lower is further out DefaultZoomLvl = 7; diff --git a/public_html/layers.js b/public_html/layers.js index 431e9af..d85bc1b 100644 --- a/public_html/layers.js +++ b/public_html/layers.js @@ -10,7 +10,8 @@ function createBaseLayers() { var us = []; world.push(new ol.layer.Tile({ - source: new ol.source.OSM(), + //source: new ol.source.OSM(), + source: new ol.source.OSM({ url: "/maps/{z}/{x}/{y}.png" }), name: 'osm', title: 'OpenStreetMap', type: 'base', diff --git a/public_html/script.js b/public_html/script.js index 28b6172..62147df 100644 --- a/public_html/script.js +++ b/public_html/script.js @@ -1713,7 +1713,7 @@ function isPointInsideExtent(x, y, extent) { function initializeUnitsSelector() { // Get display unit preferences from local storage if (!localStorage.getItem('displayUnits')) { - localStorage['displayUnits'] = "nautical"; + localStorage['displayUnits'] = "imperial"; } var displayUnits = localStorage['displayUnits']; DisplayUnits = displayUnits;