MySpeed: The Open-Source Tool That Proves Your ISP Is Throttling You (And How to Deploy It Now) + Video

Listen to this Post

Featured Image

Introduction:

In the ongoing battle between users and Internet Service Providers (ISPs), subjective complaints of “slow internet” are easily dismissed. MySpeed shifts the balance of power by providing objective, continuous, and visual proof of network performance. This self-hosted monitoring solution runs automated speed tests around the clock, storing historical data to document throttling, congestion, or service degradation, empowering users with undeniable evidence for technical troubleshooting or ISP disputes.

Learning Objectives:

  • Understand the architectural difference between on-demand speed tests and continuous network monitoring.
  • Learn how to deploy a self-hosted monitoring stack using Docker and automation tools.
  • Acquire the skills to configure multi-server testing and integrate alerting mechanisms for real-time network anomaly detection.

You Should Know:

1. Deploying MySpeed via Docker for Persistent Monitoring

The quickest way to establish a continuous monitoring presence is through containerization. This isolates the application and ensures it runs persistently on a home server or a lightweight device like a Raspberry Pi. The following commands pull the image and run the container, mapping the necessary ports and ensuring the container restarts automatically if the system reboots.

Step‑by‑step guide:

 Pull the latest MySpeed image from GitHub Container Registry
docker pull ghcr.io/gnmyt/myspeed:latest

Create a directory for persistent data storage
mkdir ~/myspeed-data

Run the container, mapping port 5216 and attaching the data volume
docker run -d \
--name=myspeed \
-p 5216:5216 \
-v ~/myspeed-data:/app/data \
--restart unless-stopped \
ghcr.io/gnmyt/myspeed:latest

Once executed, access the web interface at `http://

:5216`. This setup ensures that even if the container crashes or the host reboots, the service and its historical data are preserved.

<h2 style="color: yellow;">2. Automating Speed Tests with Cron Scheduling</h2>

MySpeed utilizes cron expressions to run tests at specific intervals. By default, it might run hourly, but for evidential purposes against an ISP, running tests every 30 minutes during peak hours provides granular data. This is configured directly in the web UI under Settings, but it relies on the host's cron daemon to trigger the container's internal scheduler.

<h2 style="color: yellow;">Step‑by‑step guide:</h2>

To set a custom schedule, navigate to Settings > Scheduling. A cron expression like `/30    ` will execute a test every 30 minutes. For users wanting to trigger a test manually via the Linux command line (useful for scripting), you can use curl to hit the internal API:
[bash]
 Trigger a manual speed test via the API
curl -X POST http://localhost:5216/api/trigger-test \
-H "Content-Type: application/json" \
-d '{"testId": "default"}'

This command bypasses the UI and forces an immediate test, logging the result directly into the database.

3. Multi-Server Testing for Comparative Analysis

To determine if the issue is local or regional, MySpeed allows adding multiple test servers (Ookla-based). By testing against different geographical endpoints, you can identify if throttling is specific to certain routes or if it is a blanket slowdown.

Step‑by‑step guide:

  1. In the MySpeed dashboard, go to the “Servers” tab.
  2. Click “Add Server” and search for servers by location or provider ID.
  3. Select a mix of local servers (provided by your ISP) and international servers (like those in major data centers).
  4. The system will now rotate through these servers, allowing you to compare latency and throughput. If your local ISP server is slow but an international server is fast, it suggests ISP-side shaping or peering issues rather than a local line fault.

4. Configuring Proactive Alerts (Telegram & Signal)

The true power of monitoring is being notified the moment a threshold is breached. MySpeed supports webhook integrations with popular messaging platforms. This allows a DevOps engineer or a concerned user to receive instant alerts when download speeds drop below a contracted threshold.

Step‑by‑step guide for Telegram:

First, create a Telegram bot via @BotFather and get the token. Then, get your Chat ID. With that information, configure the alert in MySpeed Settings > Notifications > Telegram.

 Example of the underlying HTTP call MySpeed makes to send an alert
curl -X POST https://api.telegram.org/bot<YOUR_BOT_TOKEN>/sendMessage \
-d "chat_id=<YOUR_CHAT_ID>" \
-d "text=⚠️ Alert: Download speed dropped below 50 Mbps at $(date)"

Set thresholds in the UI (e.g., alert if download < 50 Mbps). The system will now ping you the moment your connection fails the test.

5. Integrating with Grafana for Advanced Visualization

While MySpeed provides basic graphs, integrating with Prometheus and Grafana unlocks professional-level analytics. This is crucial for homelab enthusiasts who want to correlate network slowdowns with other metrics like CPU load or external temperature.

Step‑by‑step guide:

MySpeed exposes metrics in a Prometheus-friendly format. Add the following scrape configuration to your prometheus.yml:

scrape_configs:
- job_name: 'myspeed'
static_configs:
- targets: ['<YOUR_MYSPEED_IP>:5216']
metrics_path: '/api/metrics'

After restarting Prometheus, you can import a pre-built Grafana dashboard (find dashboard IDs on sites like Grafana Labs) or create your own panels to visualize download/upload speeds and ping over time, layered with annotations for network changes.

What Undercode Say:

  • Evidence Over Emotion: MySpeed transforms subjective user experience into objective data, a critical step in holding service providers accountable for advertised speeds.
  • Self-Hosting is Sovereignty: By keeping data on your own hardware, you avoid the privacy pitfalls of third-party speed test services that may sell your data or provide skewed results.
  • Proactive Over Reactive: The alerting feature shifts network management from a reactive “call the ISP when it’s broken” model to a proactive “document the degradation as it happens” methodology.

Prediction:

As ISPs increasingly rely on traffic shaping and deep packet inspection to manage bandwidth, tools like MySpeed will evolve from niche homelab utilities to essential consumer rights tools. We will likely see the integration of blockchain-based timestamping for test results, creating an immutable ledger of evidence that could be used in automated class-action lawsuits or regulatory complaints against telecom monopolies. The future of internet accountability lies in decentralized, user-owned verification.

▶️ Related Video (74% Match):

🎯Let’s Practice For Free:

IT/Security Reporter URL:

Reported By: Nusretonen Opensource – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky