Speedtest Tracker
Internet speed monitoring dashboard.
Overview
Speedtest Tracker is a self-hosted web application that automatically monitors your internet connection speed by running periodic speed tests against multiple testing servers. Built with PHP and Laravel, it provides a comprehensive dashboard for tracking bandwidth performance over time, identifying connectivity issues, and generating detailed reports of your network's performance history. The application integrates with popular speed testing services like Ookla Speedtest and LibreSpeed to ensure accurate measurements across different testing methodologies.
This stack combines Speedtest Tracker with SQLite as the embedded database solution, creating a lightweight monitoring system that requires minimal resource overhead while maintaining full functionality. SQLite eliminates the need for a separate database server, making the deployment incredibly simple while still providing robust data storage for historical speed test results, configuration settings, and performance analytics. The combination ensures fast data retrieval for dashboard visualizations and efficient storage of time-series network performance data.
Home lab enthusiasts, small business owners, and network administrators will find this stack invaluable for documenting ISP performance, troubleshooting connectivity issues, and maintaining SLA compliance records. The SQLite backend makes it perfect for single-user deployments or small teams who need reliable network monitoring without the complexity of managing separate database infrastructure, while still providing enterprise-grade monitoring capabilities.
Key Features
- Automated speed tests scheduled at configurable intervals using cron-style scheduling
- Multi-server testing support with automatic server selection based on geographic proximity
- Historical performance graphs showing download, upload, and latency trends over customizable time periods
- SQLite database integration providing zero-configuration data persistence with automatic schema management
- Threshold-based alerting system for detecting performance degradation below specified bandwidth limits
- Export functionality for speed test data in CSV and JSON formats for external analysis
- Mobile-responsive dashboard optimized for monitoring network performance on smartphones and tablets
- API endpoints for integrating speed test data with external monitoring systems and automation tools
Common Use Cases
- 1Home office workers documenting internet performance for remote work productivity analysis
- 2Small businesses monitoring ISP service level agreement compliance and performance guarantees
- 3Content creators tracking upload bandwidth consistency for streaming and video production workflows
- 4IT support teams troubleshooting intermittent connectivity issues with historical performance data
- 5Home lab administrators monitoring network infrastructure changes and optimization efforts
- 6Property managers providing internet performance transparency to tenants in shared connectivity environments
- 7Network enthusiasts comparing ISP performance across different time periods and usage patterns
Prerequisites
- Docker Engine 20.10+ and Docker Compose V2 for container orchestration support
- Minimum 512MB RAM allocated for Speedtest Tracker container and SQLite operations
- Available TCP port 8080 for web dashboard access without conflicts from other services
- Stable internet connection capable of handling automated speed tests without data cap concerns
- Basic understanding of cron scheduling syntax for configuring automated test intervals
- Web browser with JavaScript enabled for accessing the responsive monitoring dashboard
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 speedtest: 3 image: lscr.io/linuxserver/speedtest-tracker:latest4 container_name: speedtest-tracker5 restart: unless-stopped6 environment: 7 PUID: 10008 PGID: 10009 TZ: UTC10 DB_CONNECTION: sqlite11 volumes: 12 - speedtest_config:/config13 ports: 14 - "8080:80"1516volumes: 17 speedtest_config: .env Template
.env
1# Runs speedtest every hourUsage Notes
- 1Access at http://localhost:8080
- 2Scheduled speed tests
- 3Historical graphs
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 speedtest:5 image: lscr.io/linuxserver/speedtest-tracker:latest6 container_name: speedtest-tracker7 restart: unless-stopped8 environment:9 PUID: 100010 PGID: 100011 TZ: UTC12 DB_CONNECTION: sqlite13 volumes:14 - speedtest_config:/config15 ports:16 - "8080:80"1718volumes:19 speedtest_config:20EOF2122# 2. Create the .env file23cat > .env << 'EOF'24# Runs speedtest every hour25EOF2627# 3. Start the services28docker compose up -d2930# 4. View logs31docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/speedtest-tracker/run | bashTroubleshooting
- Speed tests failing with 'No servers available': Configure firewall to allow outbound connections on ports 8080 and 5060, and verify DNS resolution is working properly
- Dashboard shows 'Database connection failed': Check that the speedtest_config volume has proper write permissions and sufficient disk space for SQLite database growth
- Scheduled tests not running automatically: Verify the TZ environment variable matches your local timezone and check container logs for cron service status
- High memory usage during speed tests: Reduce concurrent test frequency in settings and ensure container has adequate memory allocation for peak testing periods
- Historical data missing after container restart: Confirm the speedtest_config volume is properly mounted and persistent across container lifecycle events
- Web interface loading slowly: Clear browser cache and check that SQLite database file hasn't grown excessively large, consider archiving old test results
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
speedtest-trackersqlite
Tags
#speedtest#bandwidth#monitoring#network
Category
Monitoring & ObservabilityAd Space
Shortcuts: C CopyF FavoriteD Download