Skip to content

Latest commit

 

History

History
 
 

speedtest-tracker

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

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 Ookla's speedtest cli package to get the data and uses Chart.js to plot the results.

Features

  • Automatically run a speedtest every hour
  • Graph of previous speedtests going back x days
  • Backup/restore data in JSON/CSV format
  • Slack/Discord/Telegram notifications
  • healthchecks.io integration
  • Organizr integration
  • InfluxDB integration (currently v1 only, v2 is a WIP)

A demo can be found here

Parameters

Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
OOKLA_EULA_GDPR Set to 'true' to accept the Ookla EULA and privacy agreement. If this is not set, the container will not start
SLACK_WEBHOOK Optional. Put a slack webhook here to get slack notifications when a speedtest is run. To use discord webhooks, just append /slack to the end of your discord webhook URL
TELEGRAM_BOT_TOKEN Optional. Telegram bot API token.
TELEGRAM_CHAT_ID Optional. Telegram chat ID.
AUTH Optional. Set to 'true' to enable authentication for the app
INFLUXDB_RETENTION Optional. Sets the InfluxDB retention period, defaults to 30d
`INFLUXDB_HOST_TAG Optional. Sets the InfluxDB host tag value, defaults to speedtest

Authentication

Authentication is optional. When enabled, unauthenticated users will only be able to see the graphs and tests table. To be able to queue a new speedtest, backup/restore data and update instance settings you will need to log in. To enable authentication, pass the AUTH=true environment variable in docker or run php artisan speedtest:auth --enable for manual installs (same command with --disable to turn it off).

The default credentials are:

Field Function
username admin@admin.com
password password

After enabling, you should change the password through the web UI.

Manual Install

For manual installations, please follow the instructions here.

Kubernetes

There is a 3rd party helm chart available here.