# LibreSpeed — Self-Hosted Internet Speed Test > LibreSpeed is a free, open-source HTML5 speed test that you can host on your own server. It measures download, upload, ping, and jitter without relying on third-party services or Flash. ## Install Save as a script file and run: # LibreSpeed — Self-Hosted Internet Speed Test ## Quick Use ```bash docker run -d --name speedtest -p 80:80 adolfintel/speedtest # Open http://localhost in your browser ``` ## Introduction LibreSpeed is a lightweight, self-hosted speed test tool that runs entirely in the browser using HTML5 and JavaScript. It gives network administrators and ISPs a private alternative to cloud-based speed tests, ensuring that measurement data never leaves your infrastructure. ## What LibreSpeed Does - Measures download speed, upload speed, ping latency, and jitter from the browser - Runs entirely client-side with no Flash, Java, or external dependencies - Supports multiple test servers with automatic closest-server selection - Stores results in a database with an optional telemetry backend - Provides an embeddable widget for integration into dashboards and status pages ## Architecture Overview The frontend is pure HTML5, CSS, and vanilla JavaScript that performs speed measurements using XMLHttpRequest and the Web Workers API. Test data is generated and consumed client-side against configurable server endpoints. The backend can be a simple PHP, Node.js, or Go server that handles garbage data generation for downloads and data sinking for uploads. An optional telemetry module logs results to a MySQL or PostgreSQL database. ## Self-Hosting & Configuration - Deploy via Docker with a single command or drop PHP files into any web server directory - Configure test parameters (chunk sizes, test duration, parallel streams) in speedtest_worker.js - Set up the optional telemetry backend by configuring database credentials in telemetry_settings.php - Enable multiple test points by deploying server backends at different locations and listing them in the config - Customize the UI appearance by editing the HTML template or using the example configurations ## Key Features - Zero external dependencies with no calls to third-party servers during tests - Support for multiple server endpoints with distance-based automatic selection - Configurable test parameters including stream count, chunk size, and duration - Optional result logging with IP geolocation and historical result browsing - Available as Docker image, standalone PHP, Node.js, or Go implementations ## Comparison with Similar Tools - **Speedtest by Ookla** — proprietary cloud service, not self-hostable, collects user data - **fast.com** — Netflix-operated, measures only download speed, no self-hosting option - **OpenSpeedTest** — similar concept but less configurable and smaller community - **iPerf3** — network benchmarking tool for LAN testing, not browser-based - **Netdata** — full monitoring suite with bandwidth charts, not a dedicated speed test ## FAQ **Q: Does LibreSpeed require a powerful server?** A: No. The server only needs to serve static files and handle HTTP connections. A small VPS can saturate a 1 Gbps link for single-user tests. **Q: Can I test internal network speed?** A: Yes. Deploy LibreSpeed on your LAN to measure throughput between client devices and your server without any internet traffic. **Q: Does it support HTTPS?** A: Yes. LibreSpeed works over HTTPS. Configure your web server with TLS certificates as you would for any other site. **Q: How accurate are the results compared to Ookla Speedtest?** A: Results are comparable for most connections. Differences arise from server proximity, test methodology (parallel streams vs. single stream), and CDN effects that cloud services may leverage. ## Sources - https://github.com/librespeed/speedtest - https://librespeed.org --- Source: https://tokrepo.com/en/workflows/381c26a3-3b87-11f1-9bc6-00163e2b0d79 Author: Script Depot