Deploying Speed Test by OpenSpeedTest
Introduction
OpenSpeedTest is a free, open-source HTML5 network speed test application that runs entirely in your browser without requiring Flash, Java, or any plugins. Unlike commercial speed test services, OpenSpeedTest gives you complete control over your testing infrastructure and ensures your speed test data remains private.
Built with pure HTML5 and JavaScript, OpenSpeedTest measures download speed, upload speed, ping latency, and jitter with accuracy comparable to commercial alternatives. The lightweight nature of the application makes it perfect for self-hosting scenarios.
Key highlights of OpenSpeedTest:
- Pure HTML5: No plugins, Flash, or Java required
- Privacy-Focused: No data collection or tracking
- Accurate Results: Tests up to 10 Gbps connections accurately
- Mobile Friendly: Works on any device with a modern browser
- No Ads: Clean interface without advertisements
- Lightweight: Minimal resource requirements
- Customizable: Modify test parameters and appearance
- Docker Ready: Official Docker image available
- Cross-Platform: Works on any operating system
- Open Source: MIT licensed for maximum flexibility
This guide walks through deploying OpenSpeedTest on Klutch.sh using Docker for a private, self-hosted speed testing solution.
Why Deploy OpenSpeedTest on Klutch.sh
Deploying OpenSpeedTest on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh handles the container deployment automatically.
HTTPS by Default: Secure connections with automatic SSL certificates.
Custom Domains: Use your own domain for branded speed tests.
GitHub Integration: Version control your configuration and deploy updates automatically.
No Third-Party Data: Your speed test results stay private.
Internal Testing: Test speeds between your infrastructure and clients.
Always Available: Speed test service runs 24/7 without maintenance.
Low Resource Usage: Lightweight application needs minimal resources.
Prerequisites
Before deploying OpenSpeedTest on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker
- (Optional) A custom domain for your speed test
Deploying OpenSpeedTest on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 3000
Create a GitHub Repository
Create a new GitHub repository for your OpenSpeedTest deployment.
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM openspeedtest/latest:latest
# The base image includes everything needed# OpenSpeedTest runs on port 3000 by default
# Optional: Set custom environment variablesENV TITLE="My Speed Test"ENV SUBTITLE="Powered by OpenSpeedTest"
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD curl -f http://localhost:3000/ || exit 1Push Your Repository to GitHub
Commit and push your Dockerfile.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “speedtest” or similar.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
In the deployment settings:
Deploy Your Application
Click Deploy to build and start OpenSpeedTest.
Access Your Speed Test
Once deployment completes, access your speed test at https://your-app-name.klutch.sh.
Using OpenSpeedTest
Running a Speed Test
- Navigate to your OpenSpeedTest URL
- Click Start to begin the test
- Wait for download, upload, ping, and jitter measurements
- Review your results
Understanding Results
| Metric | Description |
|---|---|
| Download | Data transfer speed from server to client (Mbps) |
| Upload | Data transfer speed from client to server (Mbps) |
| Ping | Round-trip time for packets (milliseconds) |
| Jitter | Variation in ping times (milliseconds) |
Test Parameters
OpenSpeedTest automatically adjusts test parameters based on connection speed:
- Low-speed connections: Smaller test file sizes
- High-speed connections: Larger test file sizes
- Automatic multi-threading for faster connections
Customization
Branding
Customize the appearance with environment variables:
| Variable | Description |
|---|---|
TITLE | Main title displayed on the page |
SUBTITLE | Subtitle text |
Advanced Configuration
For more customization, modify the HTML/CSS/JS files directly by extending the Docker image:
FROM openspeedtest/latest:latest
# Copy custom stylingCOPY custom.css /usr/share/nginx/html/css/custom.css
# Copy custom logoCOPY logo.png /usr/share/nginx/html/images/logo.pngUse Cases
ISP Speed Verification
- Test actual speeds versus advertised speeds
- Document speed issues for support tickets
- Track speed changes over time
Internal Network Testing
- Test speeds between office locations
- Verify VPN performance
- Benchmark new network equipment
Customer-Facing Speed Test
- Provide customers with your own branded speed test
- Test connectivity to your services
- Support troubleshooting
Server Performance
- Test upload/download speeds to your hosting
- Verify CDN performance
- Benchmark different cloud regions
Performance Considerations
Accurate Results
For most accurate results:
- Run multiple tests at different times
- Close other applications during tests
- Use wired connections when possible
- Consider server location relative to users
Server Capacity
- OpenSpeedTest is very lightweight
- A single instance can handle many simultaneous tests
- Scale resources if serving many concurrent users
Troubleshooting
Test Won’t Start
- Clear browser cache and cookies
- Try a different browser
- Check that JavaScript is enabled
Inaccurate Results
- Verify no other applications are using bandwidth
- Check for VPN or proxy interference
- Test at different times of day
Page Not Loading
- Verify deployment is running
- Check Klutch.sh logs for errors
- Confirm port configuration is correct
Additional Resources
- OpenSpeedTest Official Site
- OpenSpeedTest GitHub Repository
- OpenSpeedTest Docker Hub
- Klutch.sh Deployments
Conclusion
Deploying OpenSpeedTest on Klutch.sh gives you a private, reliable speed testing solution without third-party data collection. Whether you’re verifying ISP speeds, testing internal network performance, or providing customers with a branded speed test, OpenSpeedTest on Klutch.sh delivers accurate results with minimal setup. The lightweight nature of the application means excellent performance even with limited resources.