kopia lustrzana https://github.com/jprochazka/adsb-receiver
commit
9a606e414e
|
@ -4,13 +4,15 @@ The following is a history of the changes made to this project.
|
|||
|
||||
## v2.0.2 *(May 10th, 2016)*
|
||||
|
||||
* System information page now displays portal and patch versions.
|
||||
* SQLite database permissions set properly so flight data can be recorded. *(advanced)*
|
||||
* Adjusted the postback check function to possibly fix POST issues.
|
||||
* Non MySQL root users with the proper permissions can be used during install. *(advanced)*
|
||||
* Fixed bug where a malformed if statement was causing upgrade problems. *(advanced)*
|
||||
* Links to aggregate site stats pages now open in a new web browser windows.
|
||||
* The Postfix MTA package is now installed if not present.
|
||||
* The bash scripts now detect Ubuntu 16.04 LTS and install the proper PHP packages.
|
||||
* The cUrrent MySQL database size is displayed on the maintainance tab. *(advanced)*
|
||||
* The current MySQL database size is displayed on the maintainance tab. *(advanced)*
|
||||
|
||||
## v2.0.1 *(April 29th, 2016)*
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@ hard work and dedication this project would not have been possible.
|
|||
* Dump978: https://github.com/mutability/dump978
|
||||
* FlightAware's PiAware: http://flightaware.com
|
||||
* Plane Finder ADS-B Client: https://planefinder.net
|
||||
* Flightradar24 Client: https://www.flightradar24.com
|
||||
* Dump1090-Tools: https://github.com/mutability/dump1090-tools
|
||||
|
||||
* Bootstrap: http://getbootstrap.com/
|
||||
* jQuery: http://jquery.com/
|
||||
* jQuery Steps: http://www.jquery-steps.com
|
||||
|
|
|
@ -50,6 +50,25 @@ echo "https://github.com/mutability/dump1090"
|
|||
echo -e "\033[37m"
|
||||
read -p "Press enter to continue..." CONTINUE
|
||||
|
||||
## ASK WHICH WEB SERVER TO INSTALL
|
||||
|
||||
# Commented out temporarily until choice has been added to
|
||||
# the portal installations scipt as well.
|
||||
|
||||
#echo -e "\033[31m"
|
||||
#echo "Select Web Server"
|
||||
#echo -e "\033[33m"
|
||||
#echo "Select the web server you wish to use."
|
||||
#echo "Currently Lighttpd is the recommended web server."
|
||||
#echo ""
|
||||
#echo " 1) Lighttpd"
|
||||
#echo " 2) Nginx"
|
||||
#echo -e "\033[37m"
|
||||
#read -p "Which web server do you wish to use? [1] " WEBSERVER
|
||||
|
||||
# For now we will force Lighttpd as the web server chosen.
|
||||
WEBSERVER=1
|
||||
|
||||
## CHECK FOR PREREQUISITE PACKAGES
|
||||
|
||||
echo -e "\033[33m"
|
||||
|
@ -64,7 +83,13 @@ CheckPackage rtl-sdr
|
|||
CheckPackage librtlsdr-dev
|
||||
CheckPackage libusb-1.0-0-dev
|
||||
CheckPackage pkg-config
|
||||
CheckPackage lighttpd
|
||||
|
||||
if [[ $WEBSERVER != "2" ]]; then
|
||||
CheckPackage lighttpd
|
||||
else
|
||||
CheckPackage nginx
|
||||
fi
|
||||
|
||||
CheckPackage fakeroot
|
||||
|
||||
## DOWNLOAD OR UPDATE THE DUMP1090-MUTABILITY SOURCE
|
||||
|
@ -118,13 +143,22 @@ if [ $(dpkg-query -W -f='${STATUS}' dump1090-mutability 2>/dev/null | grep -c "o
|
|||
kill -9 `ps --pid $$ -oppid=`; exit
|
||||
fi
|
||||
|
||||
## CONFIGURE LIGHTTPD
|
||||
## CONFIGURE THE WEB SERVER
|
||||
|
||||
echo -e "\033[33m"
|
||||
echo "Configuring lighttpd..."
|
||||
echo -e "\033[37m"
|
||||
sudo lighty-enable-mod dump1090
|
||||
sudo /etc/init.d/lighttpd force-reload
|
||||
if [[ $WEBSERVER != "2" ]]; then
|
||||
echo -e "\033[33m"
|
||||
echo "Configuring lighttpd..."
|
||||
echo -e "\033[37m"
|
||||
sudo lighty-enable-mod dump1090
|
||||
sudo /etc/init.d/lighttpd force-reload
|
||||
else
|
||||
echo -e "\033[33m"
|
||||
echo "Configuring nginx..."
|
||||
echo -e "\033[37m"
|
||||
sudo rm /etc/nginx/sites-enabled/default
|
||||
sudo ln -s /etc/nginx/sites-available/dump1090-mutability /etc/nginx/sites-enabled/dump1090-mutability
|
||||
sudo /etc/init.d/nginx force-reload
|
||||
fi
|
||||
|
||||
## DUMP1090-MUTABILITY POST INSTALLATION CONFIGURATION
|
||||
|
||||
|
|
|
@ -109,17 +109,15 @@ sudo chmod a+s rtlsdr-ogn
|
|||
|
||||
# Check if kernel v4.1 or higher is being used.
|
||||
|
||||
################################################
|
||||
# ADD A WAY TO CHECK KERNEL #
|
||||
# THIS WILL NOT WORK AND IS ONLY A PLACEHOLDER #
|
||||
################################################
|
||||
KERNEL=`uname -r`
|
||||
VERSION="`echo $KERNEL | cut -d \. -f 1`.`echo $KERNEL | cut -d \. -f 2`"
|
||||
|
||||
if [[ `uname -r` == $SOMETHING ]]; then
|
||||
# Kernel is version 4.1 or newer.
|
||||
sudo mknod gpu_dev c 249 0
|
||||
else
|
||||
if [[ $VERSION < 4.1 ]]; then
|
||||
# Kernel is older than version 4.1.
|
||||
sudo mknod gpu_dev c 100 0
|
||||
else
|
||||
# Kernel is version 4.1 or newer.
|
||||
sudo mknod gpu_dev c 249 0
|
||||
fi
|
||||
|
||||
## CREATE THE CONFIGURATION FILE
|
||||
|
|
|
@ -88,7 +88,7 @@ if [ -f $DOCUMENTROOT/classes/settings.class.php ]; then
|
|||
DATABASEENGINE=1
|
||||
fi
|
||||
|
||||
if [ $HOST != "localhost" || $HOST != "127.0.0.1" ]; then
|
||||
if [ $HOST != "localhost" ] || [ $HOST != "127.0.0.1" ]; then
|
||||
LOCALDATABASE=1
|
||||
else
|
||||
LOCALDATABASE=2
|
||||
|
@ -121,7 +121,7 @@ else
|
|||
echo " 1) MySQL"
|
||||
echo " 2) SQLLite"
|
||||
echo -e "\033[37m"
|
||||
read -p "Use portal with advanced features? [1] " DATABASEENGINE
|
||||
read -p "Which database engine will be used? [1] " DATABASEENGINE
|
||||
|
||||
# Check if the user is using a remote MySQL database.
|
||||
if [[ $DATABASEENGINE != 2 ]]; then
|
||||
|
@ -131,7 +131,7 @@ else
|
|||
echo " 1) Locally"
|
||||
echo " 2) Remotely"
|
||||
echo -e "\033[37m"
|
||||
read -p "Use portal with advanced features? [1] " LOCALDATABASE
|
||||
read -p "Where will the database hosted? [1] " LOCALDATABASE
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -144,22 +144,61 @@ echo -e "\033[37m"
|
|||
CheckPackage cron
|
||||
CheckPackage collectd-core
|
||||
CheckPackage rrdtool
|
||||
CheckPackage lighttpd
|
||||
CheckPackage php5-cgi
|
||||
CheckPackage postfix
|
||||
CheckPackage lighttpd
|
||||
|
||||
# Check if this is Ubuntu 16.04 LTS.
|
||||
# This needs optimized and made to recognize releases made after 16.04 as well.
|
||||
if [ -f /etc/lsb-release ]; then
|
||||
. /etc/lsb-release
|
||||
if [ $DISTRIB_ID == "Ubuntu" ] && [ $DISTRIB_RELEASE == "16.04" ]; then
|
||||
CheckPackage php7.0-cgi
|
||||
else
|
||||
CheckPackage php5-cgi
|
||||
fi
|
||||
else
|
||||
CheckPackage php5-cgi
|
||||
fi
|
||||
|
||||
CheckPackage libpython2.7
|
||||
if [[ $ADVANCED =~ ^[yY]$ ]]; then
|
||||
if [[ $DATABASEENGINE == 2 ]]; then
|
||||
CheckPackage sqlite3
|
||||
|
||||
# Check if this is Ubuntu 16.04 LTS.
|
||||
# This needs optimized and made to recognize releases made after 16.04 as well.
|
||||
if [ -f /etc/lsb-release ]; then
|
||||
. /etc/lsb-release
|
||||
if [ $DISTRIB_ID == "Ubuntu" ] && [ $DISTRIB_RELEASE == "16.04" ]; then
|
||||
CheckPackage php7.0-sqlite
|
||||
else
|
||||
CheckPackage php5-sqlite
|
||||
fi
|
||||
else
|
||||
CheckPackage php5-sqlite
|
||||
fi
|
||||
|
||||
else
|
||||
if [[ $LOCALDATABASE != 2 ]]; then
|
||||
# Install MySQL locally.
|
||||
CheckPackage mysql-server
|
||||
fi
|
||||
CheckPackage mysql-client
|
||||
CheckPackage php5-mysql
|
||||
CheckPackage python-mysqldb
|
||||
|
||||
# Check if this is Ubuntu 16.04 LTS.
|
||||
# This needs optimized and made to recognize releases made after 16.04 as well.
|
||||
if [ -f /etc/lsb-release ]; then
|
||||
. /etc/lsb-release
|
||||
if [ $DISTRIB_ID == "Ubuntu" ] && [ $DISTRIB_RELEASE == "16.04" ]; then
|
||||
CheckPackage php7.0-mysql
|
||||
else
|
||||
CheckPackage php5-mysql
|
||||
fi
|
||||
else
|
||||
CheckPackage php5-mysql
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -184,13 +223,21 @@ if [[ $INSTALLED == "n" ]]; then
|
|||
# Ask for remote MySQL address if the database is hosted remotely.
|
||||
read -p "Remote MySQL Server Address: " DATABASEHOST
|
||||
fi
|
||||
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
|
||||
read -p "MySQL user login: [root] " MYSQLUSER
|
||||
read -p "Password for MySQL user: " MYSQLPASSWORD
|
||||
if [[ $LOCALDATABASE == "" ]]; then
|
||||
MYSQLUSER="root"
|
||||
fi
|
||||
|
||||
# Check that the supplied password is correct.
|
||||
while ! mysql -u root -p$MYSQLROOTPASSWORD -h $DATABASEHOST -e ";" ; do
|
||||
while ! mysql -u$MYSQLUSER -p$MYSQLPASSWORD -h $DATABASEHOST -e ";" ; do
|
||||
echo -e "\033[31m"
|
||||
echo -e "Unable to connect to the MySQL server using the supplied password.\033[37m"
|
||||
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
|
||||
echo -e "Unable to connect to the MySQL server using the supplied login and password.\033[37m"
|
||||
read -p "MySQL user login: [root] " MYSQLUSER
|
||||
read -p "Password for MySQL user: " MYSQLPASSWORD
|
||||
if [[ $LOCALDATABASE == "" ]]; then
|
||||
MYSQLUSER="root"
|
||||
fi
|
||||
done
|
||||
|
||||
read -p "New Database Name: " DATABASENAME
|
||||
|
@ -201,10 +248,10 @@ if [[ $INSTALLED == "n" ]]; then
|
|||
if [[ $DATABASEENGINE == 1 ]] || [[ $DATABASEENGINE == "" ]]; then
|
||||
echo -e "\033[33m"
|
||||
echo -e "Creating MySQL database and user...\033[37m"
|
||||
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE DATABASE ${DATABASENAME};"
|
||||
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE USER '${DATABASEUSER}'@'localhost' IDENTIFIED BY \"${DATABASEPASSWORD}\";";
|
||||
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "GRANT ALL PRIVILEGES ON ${DATABASENAME}.* TO '${DATABASEUSER}'@'localhost';"
|
||||
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "FLUSH PRIVILEGES;"
|
||||
mysql -u$MYSQLUSER -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE DATABASE ${DATABASENAME};"
|
||||
mysql -u$MYSQLUSER -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE USER '${DATABASEUSER}'@'localhost' IDENTIFIED BY \"${DATABASEPASSWORD}\";";
|
||||
mysql -u$MYSQLUSER -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "GRANT ALL PRIVILEGES ON ${DATABASENAME}.* TO '${DATABASEUSER}'@'localhost';"
|
||||
mysql -u$MYSQLUSER -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "FLUSH PRIVILEGES;"
|
||||
fi
|
||||
|
||||
echo -e "\033[31m"
|
||||
|
@ -409,6 +456,8 @@ echo "Please look over the output generated to be sure no errors were encountere
|
|||
echo -e "\033[37m"
|
||||
read -p "Press enter to continue..." CONTINUE
|
||||
|
||||
clear
|
||||
|
||||
# Display further portal setup instructions.
|
||||
echo -e "\033[31m"
|
||||
echo "PORTAL SETUP IS NOT YET COMPLETE"
|
||||
|
|
|
@ -523,6 +523,7 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Purge Positions</div>
|
||||
<div class="panel-body">
|
||||
<p>Current Database Size: <?php echo $common->getDatabaseSize("mb"); ?>MB</p>
|
||||
<div class="form-group">
|
||||
<label for="purgepositionspicker">Purge flight positions old than...</label><br />
|
||||
<input type="text" class="form-control" id="purgepositionspicker" name="purgepositionspicker" autocomplete="off" <?php ($settings::db_driver == "xml" ? print ' disabled' : ''); ?>>
|
||||
|
|
|
@ -205,13 +205,7 @@
|
|||
|
||||
// Check if page load is a post back.
|
||||
function postBack() {
|
||||
if (empty($_SERVER['HTTP_REFERER'])) {
|
||||
return FALSE;
|
||||
}
|
||||
$methodUsed = strtoupper($_SERVER['REQUEST_METHOD']);
|
||||
$referer = strtolower(preg_replace('/\?.*/', '', basename($_SERVER['HTTP_REFERER'])));
|
||||
$thisScript = strtolower(basename($_SERVER['SCRIPT_NAME']));
|
||||
if ($methodUsed == 'POST' && $referer == $thisScript) {
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
@ -291,5 +285,33 @@
|
|||
'X-Mailer: PHP/'.phpversion();
|
||||
return mail($to, $subject, $message, $headers);
|
||||
}
|
||||
|
||||
// Get the size of the database.
|
||||
function getDatabaseSize($measurment = "") {
|
||||
$databaseSize = 0;
|
||||
$dbh = $this->pdoOpen();
|
||||
$sql = "SHOW TABLE STATUS";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute();
|
||||
$databaseSize = $sth->fetch(PDO::FETCH_ASSOC)["Data_length"];
|
||||
$sth = NULL;
|
||||
$dbh = NULL;
|
||||
switch ($measurment) {
|
||||
case "kb":
|
||||
return round($databaseSize / 1024, 2);
|
||||
break;
|
||||
case "mb":
|
||||
return round($databaseSize / 1024 / 1024, 2);
|
||||
break;
|
||||
case "gb":
|
||||
return round($databaseSize / 1024 / 1024 /1024, 2);
|
||||
break;
|
||||
case "tb":
|
||||
return round($databaseSize / 1024 /1024 /1024 /1024, 2);
|
||||
break;
|
||||
default:
|
||||
return $databaseSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
// Check if the portal is installed or needs upgraded.
|
||||
if (!file_exists($_SERVER['DOCUMENT_ROOT']."/classes/settings.class.php")) {
|
||||
header ("Location: /install/install.php");
|
||||
} elseif ($common->getSetting("version") != "2.0.1"){
|
||||
} elseif ($common->getSetting("version") != "2.0.2"){
|
||||
header ("Location: /install/upgrade.php");
|
||||
}
|
||||
|
||||
|
|
|
@ -32,11 +32,17 @@
|
|||
$common = new common();
|
||||
|
||||
// The most current stable release.
|
||||
$thisVersion = "2.0.1";
|
||||
$thisVersion = "2.0.2";
|
||||
|
||||
// Begin the upgrade process if this release is newer than what is installed.
|
||||
if (file_exists("../classes/settings.class.php")) {
|
||||
if ($common-> getSetting("version") < $thisVersion) {
|
||||
// THis is an older version so forward the user to upgrade.php
|
||||
header ("Location: /install/upgrade.php");
|
||||
} else {
|
||||
// It would appear the this is a current version so forward the user to the index page.
|
||||
header ("Location: /");
|
||||
}
|
||||
}
|
||||
|
||||
// BEGIN FRESH INSTALLATION
|
||||
|
@ -348,6 +354,11 @@ EOF;
|
|||
$dbh = NULL;
|
||||
}
|
||||
|
||||
// Set permissions on SQLite file.
|
||||
if ($_POST['driver'] == "sqlite") {
|
||||
chmod($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR."portal.sqlite", 0666);
|
||||
}
|
||||
|
||||
// Add settings.
|
||||
$common->addSetting('version', $thisVersion);
|
||||
$common->addSetting('patch', '');
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
$settings = new settings();
|
||||
|
||||
// The most current stable release.
|
||||
$thisVersion = "2.0.1";
|
||||
$thisVersion = "2.0.2";
|
||||
|
||||
// Begin the upgrade process if this release is newer than what is installed.
|
||||
if ($common->getSetting("version") == $thisVersion) {
|
||||
|
@ -45,6 +45,11 @@
|
|||
$error = FALSE;
|
||||
#errorMessage = "No error message returned.";
|
||||
|
||||
///////////////////////
|
||||
// UPGRADE TO V2.0.1
|
||||
///////////////////////
|
||||
|
||||
if ($common->getSetting("version") == "2.0.0") {
|
||||
try {
|
||||
// Change tables containing datetime data to datetime.
|
||||
if ($settings::db_driver != "xml") {
|
||||
|
@ -180,12 +185,33 @@
|
|||
$common->addSetting("timeZone", date_default_timezone_get());
|
||||
|
||||
// update version and patch settings.
|
||||
$common->updateSetting("version", "2.0.1");
|
||||
$common->updateSetting("patch", "");
|
||||
} catch(Exception $e) {
|
||||
$error = TRUE;
|
||||
$errorMessage = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////
|
||||
// UPGRADE RO V2.0.2
|
||||
///////////////////////
|
||||
|
||||
if ($common->getSetting("version") == "2.0.1") {
|
||||
try {
|
||||
|
||||
// Set proper permissions on the SQLite file.
|
||||
if ($settings::db_driver == "sqlite") {
|
||||
chmod($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR."portal.sqlite", 0666);
|
||||
}
|
||||
|
||||
$common->updateSetting("version", $thisVersion);
|
||||
$common->updateSetting("patch", "");
|
||||
} catch(Exception $e) {
|
||||
$error = TRUE;
|
||||
$errorMessage = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
require_once('../admin/includes/header.inc.php');
|
||||
|
||||
|
|
|
@ -49,6 +49,10 @@
|
|||
$pageData['flightRadar24Link'] = "https://www.flightradar24.com/account/feed-stats/?id=".$common->getSetting('flightRadar24Id');
|
||||
$pageData['adsbExchangeLink'] = "http://www.adsbexchange.com";
|
||||
|
||||
// Get software information.
|
||||
$pageData['portalVersion'] = $common->getSetting('version');
|
||||
$pageData['portalPatch'] = $common->getSetting('patch');
|
||||
|
||||
// Get the current system uptime.
|
||||
$json = file_get_contents("http://localhost/api/system.php?action=getUptimeInformation");
|
||||
$uptimeData = json_decode($json, TRUE);
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
<h1>System Information</h1>
|
||||
<h2>Aggregate Sites Statistics</h2>
|
||||
<ul>
|
||||
{if setting:enableFlightAwareLink eq TRUE}<li><a href="{page:flightAwareLink}">FlightAware Stats</a></li>{/if}
|
||||
{if setting:enablePlaneFinderLink eq TRUE}<li><a href="{page:planeFinderLink}">Planefinder Stats</a></li>{/if}
|
||||
{if setting:enableFlightRadar24Link eq TRUE}<li><a href="{page:flightRadar24Link}">Flightradar24 Stats</a></li>{/if}
|
||||
{if setting:enableAdsbExchangeLink eq TRUE}<li><a href="{page:adsbExchangeLink}">ADS-B Exchange</a></li>{/if}
|
||||
{if setting:enableFlightAwareLink eq TRUE}<li><a href="{page:flightAwareLink}" target="_blank">FlightAware Stats</a></li>{/if}
|
||||
{if setting:enablePlaneFinderLink eq TRUE}<li><a href="{page:planeFinderLink}" target="_blank">Planefinder Stats</a></li>{/if}
|
||||
{if setting:enableFlightRadar24Link eq TRUE}<li><a href="{page:flightRadar24Link}" target="_blank">Flightradar24 Stats</a></li>{/if}
|
||||
{if setting:enableAdsbExchangeLink eq TRUE}<li><a href="{page:adsbExchangeLink}" target="_blank">ADS-B Exchange</a></li>{/if}
|
||||
</ul>
|
||||
<h2>System Charts</h2>
|
||||
<div id="chart_div" style="width: 400px; height: 120px;"></div>
|
||||
|
@ -36,6 +36,10 @@
|
|||
<strong>Uptime:</strong> <span id="uptime">{page:uptimeInSeconds}</span>
|
||||
</div>
|
||||
<h2>System Information</h2>
|
||||
<ul>
|
||||
<li><strong>Portal Version:</strong> {page:portalVersion}</li>
|
||||
<li><strong>Patch Version:</strong> {page:portalPatch}</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><strong>Name:</strong> {page:osNodeName}</li>
|
||||
<li><strong>Kernel:</strong> {page:osKernelRelease}</li>
|
||||
|
|
Ładowanie…
Reference in New Issue