Keep Tabs on Your Internet with Speedtest Tracker
Ever had that moment where your video call glitches, your game lags, or a big download crawls, and you're left wondering: is it my internet, or something else? We've all been there. Instead of just complaining to your ISP or refreshing your router, what if you had concrete, historical data to back up your experience? That's where self-hosted tools come in handy, and Speedtest Tracker is a great example.
It takes the classic "speed test" we all run occasionally and automates it, turning sporadic checks into a long-term performance log for your connection. It's like having a personal network monitoring station right on your own server.
What It Does
Speedtest Tracker is a self-hosted web application that automatically runs internet speed tests (using the Ookla Speedtest CLI) at scheduled intervals. It doesn't just run a test and forget it; it saves every result to a database. This allows you to view your internet performance—download speed, upload speed, and ping—over time through clean charts and graphs. You can track your uptime, see patterns of slowdowns, and get a real picture of whether you're getting what you're paying for from your Internet Service Provider.
Why It's Cool
The real power here is in the historical data and ownership. While a one-off speed test gives you a snapshot, Speedtest Tracker builds a timeline. You can visually identify if your connection consistently drops at certain times of day, which is invaluable for diagnosing issues.
It's also built with a modern, developer-friendly stack (Laravel, Livewire, Chart.js) and offers some neat features:
- Multiple Connection Tracking: Got a home lab with a failover connection? You can set it up to test multiple internet interfaces.
- Health Checks: It can ping other devices or services on your network, giving you a more complete view of your local network health alongside your WAN performance.
- Notifications: Get alerts via Telegram, Discord, or email when your speeds drop below a threshold you define.
- API: It provides an API, so you can pull your speed data into other dashboards or tools (like Grafana) if you want.
You're not relying on a third-party service that might store your data; you host it, you control it. For the privacy-conscious or the homelab enthusiast, that's a significant win.
How to Try It
Getting Speedtest Tracker up and running is straightforward, especially if you're comfortable with Docker (which is the recommended method).
- Clone the repo:
git clone https://github.com/alexjustesen/speedtest-tracker.git - Navigate into the directory and check out the
docker-compose.ymlfile. You'll need to set a few environment variables like your timezone and app key. - Run
docker-compose up -dand access the web interface athttp://your-server-ip:8080(or whatever port you configure).
The project's GitHub repository has detailed setup instructions, including non-Docker options if you prefer a traditional LEMP stack install. There's no live demo (it's meant to be self-hosted on your network), but the documentation is solid.
Final Thoughts
As developers, we often focus on monitoring our applications and servers, but the quality of our own internet connection is a foundational piece that can easily be overlooked. Speedtest Tracker is a practical, no-nonsense tool that fills that gap. It's not overly complex, but it does one job very well: giving you data about your last mile of connectivity. Whether you're trying to hold your ISP accountable, optimizing your work-from-home setup, or just satisfying your own data-curiosity, it's a useful addition to your self-hosted toolkit. It turns a subjective feeling of "the internet feels slow today" into a chart you can point to, and that's always better.
Found this interesting? Follow @githubprojects for more cool, developer-focused projects.