jonathanfinley / Speedtest-Tracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Speedtest Tracker

This program runs a speedtest check every hour and graphs the results. The back-end is written in Laravel and the front-end uses React. It uses the speedtest-cli package to get the data and uses Chart.js to plot the results.

speedtest

Installation & Setup

Installing Dependencies

This program has some dependencies, to install them you need to run the following:

sudo apt update
sudo apt update
sudo apt install php-common php7.2 php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php-xml php-sqlite3 composer python3 python3-pip git
sudo apt install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs
sudo pip3 install speedtest-cli

Then, download the code by running:

git clone https://github.com/henrywhitaker3/Speedtest-Tracker.git

Install the composer and npm dependencies:

composer install
npm install && npm run production

Setting up the database

Run the following to set your database variables:

cp .env.example .env

Then update the DB_DATABASE value with the absolute path of your install, followed by /database/speed.db.

Finally, run the following to setup the tables in the database:

php artisan key:generate
php artisan migrate

Now run the following to make sure everything has been setup properly (it should output a speedtest result):

php artisan speedtest:run

Scheduling Setup

To get speed test results every hour, you need to add a cronjob, run sudo crontab -e and add an entry with the following (with the path you your install):

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Queue Setup

sudo apt install supervisor
sudo vim /etc/supervisor/conf.d/laravel-worker.conf

Add the following, updating the command and user values:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/project/artisan queue:work
autostart=true
autorestart=true
user=<user>
numprocs=8
redirect_stderr=true

Then run:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart all

About


Languages

Language:PHP 70.4%Language:HTML 29.6%