mirror of
https://github.com/henrywhitaker3/Speedtest-Tracker.git
synced 2025-12-21 21:33:08 +01:00
4f79645191cfbbf34428ff724e5be22fdcb5dc5c
Doesn't really need user account, no sensitive data held in DB, plus routes that do stuff are rate limited anyway. Shouldn't be accessible to untrusted users (i.e. should be behind a RP that handles user auth)
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.
Installation
Installing Dependencies
This program has some dependencies, to install them you need to run the following:
sudo apt update
sudo apt install software-properties-common
sudo add-apt [ONDREJ 7.4]
sudo apt install php7.4 composer python3 python3-pip
sudo pip 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
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:
* * * * * 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
Languages
JavaScript
89.7%
PHP
5.5%
CSS
4%
HTML
0.8%
