Overview#
I migrated my internet speed monitoring from Speedtest Tracker to MySpeed after learning that Speedtest Tracker was deprecating native Discord notifications. Rather than adding an Apprise sidecar container for notifications, I opted for MySpeed which has built-in Discord support.
Why Migrate?#
| Factor | Speedtest Tracker | MySpeed |
|---|---|---|
| Stack | Laravel/PHP | Node.js |
| Discord | Deprecated (needs Apprise) | Native support |
| Complexity | nginx + php-fpm + SQLite | Single Docker container |
| Updates | Manual | WUD opt-in monitoring |
Architecture Comparison#
Prerequisites#
- Existing LXC or VM with network connectivity
- Docker and docker-compose installed
- Reverse proxy configuration (Caddy/nginx)
- DNS records configured
Migration Steps#
Step 1: Backup Existing Data#
Before removing Speedtest Tracker, I preserved the historical data:
| |
Step 2: Stop Old Services#
| |
Step 3: Install Docker (if not present)#
| |
Step 4: Deploy MySpeed#
Create the deployment directory and compose file:
| |
Start the containers:
| |
Step 5: Update Reverse Proxy#
For Caddy, update your site configuration:
| |
Validate and reload:
| |
Step 6: Update DNS#
Add an A record pointing your hostname to the server IP:
| |

Verification#
| |
Configuring Discord Notifications#
This was the whole point of the migration! MySpeed makes it simple:
- Access the MySpeed web UI
- Navigate to Settings → Notifications
- Add your Discord webhook URL
- Configure triggers (test failures, speed drops, etc.)
- Send a test notification to verify
What I Learned#
- Built-in integrations matter: Choosing apps with native features saves complexity
- Docker simplifies migrations: Swapping container-based services is trivial
- Always backup first: Even if data isn’t directly importable, it’s good to have
- HA deployments need attention: Remember to update ALL reverse proxy nodes
Troubleshooting#
Container won’t start#
Check logs: sudo docker logs myspeed --tail 50
Can’t access web UI#
Verify the port isn’t blocked and container is healthy:
| |
Discord notifications not working#
- Verify webhook URL is correct
- Check MySpeed logs for API errors
- Test webhook directly with curl
Resources#
- MySpeed GitHub
- Speedtest Tracker Archive (for reference)