Skip to content

Docker based Internet Speedtest Dashboard powered by InfluxDB, Chronograf, and Speedtest-CLI

License

Notifications You must be signed in to change notification settings

thinkonezero/docker-internet-speedtest-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Internet Speedtest Dashboard

This project is designed to provide you an easy dashboard for consistently monitoring the speed of your Internet connection. It won't help you diagnose any issues, or notify anyone of issues, it's purely designed to provide historical reporting. It was also built as a standalone piece to integrate with my Docker based HTPC Standup.

Huge thanks to Pedro Azevedo for his Speedtest Dashboard project which was the base for this project.

Speedtest Dashboard

Running Containers

The only requirement to run this is having Docker Compose installed. Further information on the install process can be found in the docs. After installed, the only thing you need to do is export any appropriate variables and configure the volume for persistent data, then run docker-compose up -d.

$ git clone https://github.com/phikai/docker-internet-speedtest-dashboard
$ cd docker-internet-speedtest-dashboard

$ docker-compose up -d 

Once the containers have come up, navigate to http://localhost:8888/sources/0/dashboards/1 to view your Speedtest Dashboard.

Docker Compose

Docker Compose is a tool to help orchestrate and run multi-container applications. It's used here to connect the requred Database, Dashboard and Speedtest Client containers to make everything work. They are described below:

InfluxDB

InfluxDB is a database tool based on time-series, so every event is registered with their timestamp.

This project uses the official InfluxDB image hosted in the Docker Hub Library.

You can edit or remove the volumes section of the docker-compose.yml file to reflect where you want you persistent data to live, or you can remove it if you like. If you remove the volume mount you will lose all of your data if the container is removed. INFLUXDB_DB is required to be speedtest for associated scripts in other containers to work.

Chronograf

Chronograf is a tool to create and manage dashboards and graphs; built by the same team who built InfluxDB.

This project uses the official Chronograf image from the Docker Hub Library.

SpeedTest

This image was created to run a custom script that calls speedtest-cli to test your internet connection speed and post the data to the running InfluxDB instance. SpeedTest CLI is a client for the popular Speedtest service. It tests your internet connectivity speed by sending requests to download and upload data from a geographically close testing server.

This project uses a custom Speedtest Container available via the Docker Hub Library.

The only variable to customize on this image is a variable to set the frequency that this script will run.

Variables Default Function
TIME_INTERVAL 5 Time (in sec.) to set how long will sleep the script until run again.

Credits


If this project has helped you in anyway, and you'd like to say thanks...

Donate Donate with Bitcoin


Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Releases

No releases published

Packages

No packages published

Languages