{"id":16536540,"url":"https://github.com/giggio/speedtest","last_synced_at":"2025-04-07T12:08:30.563Z","repository":{"id":44361093,"uuid":"314906974","full_name":"giggio/speedtest","owner":"giggio","description":"A way to run speed tests on Docker.","archived":false,"fork":false,"pushed_at":"2024-11-29T00:36:52.000Z","size":109,"stargazers_count":93,"open_issues_count":0,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-31T11:01:58.230Z","etag":null,"topics":["docker","speed-test","speedtest"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/giggio/speedtest","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giggio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-21T21:31:00.000Z","updated_at":"2025-02-14T19:22:27.000Z","dependencies_parsed_at":"2025-02-28T04:10:56.215Z","dependency_job_id":"9bd2eca3-0006-49a9-abf9-814c839a8d72","html_url":"https://github.com/giggio/speedtest","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giggio%2Fspeedtest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giggio%2Fspeedtest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giggio%2Fspeedtest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giggio%2Fspeedtest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giggio","download_url":"https://codeload.github.com/giggio/speedtest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648978,"owners_count":20972945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","speed-test","speedtest"],"created_at":"2024-10-11T18:31:59.994Z","updated_at":"2025-04-07T12:08:30.541Z","avatar_url":"https://github.com/giggio.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Speed test\n\n[![Docker Stars](https://img.shields.io/docker/stars/giggio/speedtest.svg)](https://hub.docker.com/r/giggio/speedtest/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/giggio/speedtest.svg)](https://hub.docker.com/r/giggio/speedtest/)\n\nThis app runs a speed test and saves the history in .json files and an aggregate .csv\nfile. It can also alert you with an e-mail if it finds that the bandwidth is bellow\nan specified value.\n\nThis can be run on Linux for AMD64 and ARMv7.\n\n## Upstream Links\n\n* Docker Registry @ [giggio/speedtest](https://hub.docker.com/r/giggio/speedtest/)\n* GitHub @ [giggio/speedtest](https://github.com/giggio/speedtest)\n\n## Quick Start\n\nYou need to mount a volume to `/data`, and the files will be saved there.\nRun it like this:\n\n````bash\ndocker run --rm -ti -v `pwd`/data:/data giggio/speedtest run\n````\n\nAfter running will have a .json file with a date/time structure\n(e.g. 202011212124.json) and a `speed.csv` file.\n\n## Add a cron\n\nTo have a history a good idea is to add a cron job (with `crontab -e`) like\nthis:\n\n````cron\n0 */3 * * * docker run --rm -ti -v /path/to/my/data:/data giggio/speedtest run\n````\n\n### Detailed commands\n\nThere are two commands: `run` and `alert`. The former runs the speed test, the\nsecond alerts you for a bandwidth bellow specification.\n\nAll commands have a `-v` option for verbose output, and you can get help by\nrunning `docker run --rm giggio/speedtest --help`.\n\n#### Running a speed test\n\nTo view available args run:\n\n````bash\ndocker run --rm giggio/speedtest run --help\n````\n\nThis command has a simulated argument, which will make it simply drop some results\ninto the data folder. It is useful to help you setup your infrastructure without\nhaving to wait for a full speed test to run and also does not use any bandwidth.\nIt simply saves the files.\n\nThis command can optionally sends an e-mail when the measurement fails and will\nrequire mail parameters if you want to use that functionality (see bellow).\n\n#### Alerting\n\nTo view available args run:\n\n````bash\ndocker run --rm giggio/speedtest alert --help\n````\n\nThis command sends e-mails and will require mail parameters (see bellow).\nIt also has a simulate argument. It will not send the email, but simply write to\nthe terminal on stdout what it would send through in an e-mail.\n\nIt will take the last 8 results (customizable with `--count`) and average them.\nIf the value is above the threshold the e-mail is sent.\n\nYou need to supply the expected upload and download bandwidth, and you may\noptionally supply a threshold to when the e-mail should be sent (defaults to 20%).\n\n#### E-mail options\n\nCommands that send e-mail will do so using SMTP. You have to supply the values\nlike server, port, sender and destination e-mail addresses etc. Authentication\ninformation is optional, but most mail servers will require it.\n\n## Background\n\nThis project was previosly made up of a few bash scripts and a Node.js tool\nto measure the results.\nThis new version is written in Rust and is using the official\n[CLI from Ookla](https://www.speedtest.net/apps/cli). It is much faster\n(Rust \u003c3) and, due to using the official Ookla CLI, more acurate. The\ncontainer is also much smaller, simply containing the binaries, written from\nscratch, without any distro files.\n\nOokla's tool does not support a some of the information that the Node.js tool\nsupported (server latitude, longitude, distance and server ping). It still\nsupplies the most important values, like upload and download bandwidth, ping\nlatency, ISP, server host, city and country. The columns in the CSV file that\nhad that information are now null and will be eventually removed.\n\nAlso, the .json files format is now in a different format from before.\n\n## Contributing\n\nQuestions, comments, bug reports, and pull requests are all welcome.  Submit them at\n[the project on GitHub](https://github.com/giggio/speedtest/).\n\nBug reports that include steps-to-reproduce (including code) are the\nbest. Even better, make them in the form of pull requests.\n\n## Author\n\n[Giovanni Bassi](https://github.com/giggio)\n\n## License\n\nLicensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiggio%2Fspeedtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiggio%2Fspeedtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiggio%2Fspeedtest/lists"}