Internet Speed Check

We’ve all experienced those frustrating moments when our home internet speed doesn’t quite live up to expectations.

Whether it’s slow webpage loading, buffering videos, or sluggish downloads, these issues can be a major inconvenience. That’s why I ewanted to find some open-source tools that could help me measure and understand my internet speed better.

In this blog, we’ll explore the importance of speed tests and I will show you how to install a couple the open-source solutions for measuring internet speed at home with Docker, so that they can help you to optimize your internet experience.

Why checking Internet Speed Matters?

  • Performance Evaluation: By measuring internet speed locally, you can evaluate the actual speed of your internet connection. It allows you to determine if you are receiving the expected bandwidth from your Internet Service Provider (ISP).

    • This information can help you troubleshoot any performance issues you may be experiencing and make informed decisions about your internet service.
  • Network Optimization: Local internet speed measurements can assist in optimizing your network setup. By understanding the actual speed of your connection, you can identify potential bottlenecks, weak points, or areas for improvement in your network infrastructure.

    • This can guide you in optimizing your router settings, upgrading your hardware if necessary, or adjusting network configurations to enhance overall performance.
  • Troubleshooting Network Issues: When experiencing network performance problems, measuring internet speed locally can serve as a diagnostic tool. It helps determine if the issue lies with your internet connection or if it is related to other factors such as a specific website, server, or application.

    • By ruling out the connection speed as a potential cause, you can focus your troubleshooting efforts in the right direction, saving time and effort.

Docker Containers to Measure Home Internet Speed

OpenSpeedTest with Docker

We can use this project directly from their web and you will be able to launch Open Speed Test in any browser.

Still, I would recommend to self-hosted as as a good practice and run it in your machine (one connected via ethernet to the Router or in the one that you are experiencing connectivity issues).

The docker-compose looks like this (the optional lines will make it work with NGINX Docker container to have SSL certificates):

version: '3'
services:
  openspeedtest:
    image: openspeedtest/latest
    container_name: openspeedtest
    ports:
      - "6040:3000"
      - "6041:3001"
    networks: #optional
      nginx_nginx_network:      #optional
    restart: unless-stopped

networks: #optional
  nginx_nginx_network: #optional
    external: true #optional

SpeedTest Tracker with Docker

Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla’s Speedtest service.

This service is performing tests regularly to your home connection and will provide graphs on:

  • Download/Upload Speed
  • Ping
  • Jitter

You can have a look to the speedtest-tracker project on alexjustesen Github account.

For our goal here, this is the docker-compose file that we have to use to have it deployed locally with Docker:

version: '3.3'
services:
    speedtest-tracker:
        image: ghcr.io/alexjustesen/speedtest-tracker:latest    
        container_name: speedtest-tracker
        ports:
            - 6050:80
            - 6443:443
        networks: ["nginx_nginx_network"]       #optional
        environment:
            - PUID=1000
            - PGID=1000
        volumes:
            - /home/Docker/speedtest:/config
        restart: unless-stopped

networks: #optional
  nginx_nginx_network: #optional
    external: true #optional

Be aware that by default the login is: admin@example.com / password and that I encourage you to change that inmediately.

FAQ

How can I check how many devices are connected to my home internet?

For this matter, you can use WatchYourLAN, which we also self-host with Docker as I explained here.

How to Deploy Nginx Proxy Manager

If you are interested in deploying a separated NGINX instance with Docker, I already created a guide for that here.