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
Pre-Requisites!! Just Get Docker 🐋👇
You can install it for any PC/mac/Linux at home or in any cloud provider that you wish.
It will just take few moments, this one. If you are in Linux, just
apt-get update && sudo apt-get upgrade && curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
#sudo apt install docker-compose -y
And install also Docker-compose with:
apt install docker-compose -y
And when the process finishes - you can use it to SelfHost other services as well.
You should see the versions with:
docker --version
docker-compose --version
#sudo systemctl status docker #and the status
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.
- You can see the details of Open Speed Test project on Github.
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.
Simply use WatchYourLan with Docker! 👇
---
version: "3"
services:
wyl:
image: aceberg/watchyourlan
container_name: watchyourlan
network_mode: "host"
volumes:
- /home/your_user/Docker/watchyourlan/wyl:/data
environment:
TZ: Europe/Paris # required: needs your TZ for correct time
IFACE: "eth0" # required: 1 or more interface, use the command 'ip link conf' and use the second entry
DBPATH: "/data/db.sqlite" # optional, default: /data/db.sqlite
GUIIP: "0.0.0.0" # optional, default: localhost
GUIPORT: "8840" # optional, default: 8840
TIMEOUT: "120" # optional, time in seconds, default: 60
SHOUTRRR_URL: "" # optional, set url to notify
THEME: "darkly" # optional
networks:
nginx_nginx_network:
restart: unless-stopped
networks:
nginx_nginx_network:
external: true
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.
This will give you the possibility to run these monitoring services with https locally.
How to Test Internet Speed with CLI Tools
How to Explore the traffic on a network interface with nload👇
apt install nload
Now, select the interface and use nload:
ifconfig
nload wlp0s20f3 #also works for docker container interfaces
How to show network speed per interface 👇
sudo apt install cbm
cbm
How to test network speed between 2 devices 👇
Install in both iperf:
sudo apt install iperf
Now, open the port in one of them:
iperf -s
And in paralel execute in the other device:
iperf -c 192.168.3.100 #other device IP
How to perform quick internet speed test with CLI👇
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt install -y nodejs
npm install --global fast-cli
#fast -u