{"id":13424516,"url":"https://github.com/ericmann/speed-logger","last_synced_at":"2025-04-23T07:45:52.278Z","repository":{"id":56321482,"uuid":"20792218","full_name":"ericmann/speed-logger","owner":"ericmann","description":"Log network speed to a CSV routinely.","archived":false,"fork":false,"pushed_at":"2020-11-14T15:48:27.000Z","size":35,"stargazers_count":28,"open_issues_count":3,"forks_count":19,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-29T22:51:13.484Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-13T04:37:15.000Z","updated_at":"2024-02-15T10:51:43.000Z","dependencies_parsed_at":"2022-08-15T16:40:22.618Z","dependency_job_id":null,"html_url":"https://github.com/ericmann/speed-logger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmann%2Fspeed-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmann%2Fspeed-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmann%2Fspeed-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmann%2Fspeed-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericmann","download_url":"https://codeload.github.com/ericmann/speed-logger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250393959,"owners_count":21423358,"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":[],"created_at":"2024-07-31T00:00:55.485Z","updated_at":"2025-04-23T07:45:52.262Z","avatar_url":"https://github.com/ericmann.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\nSpeed Logger\n============\n\nLog network speed to a CSV routinely.\n\nRequires the speedtest-cli Python CLI tool: https://github.com/sivel/speedtest-cli\n\n- Install speedtest-cli (`pip install speedtest-cli` or `easy_install speedtest-cli`)\n- Install requirement (`npm install`)\n- Run the app (`node speed.js`)\n- Check `log.csv` after a few hours \n\n### Web Interface auto update + history\n![Web interface](https://i.snag.gy/nd8ERc.jpg)\n\n### Console Graph\n![Console graph](https://i.snag.gy/i7gObk.jpg)\n\n## Options\nAll in the first line of speed.js\n\n```javascript\n  interval: 60,                    // Interval of test in second\n  logger: true,                    // Save test result\n  loggerFileName: 'log.csv',       // Name of file to save history\n\n  enableWebInterface: true,        // Web interface of result\n  webInterfacePort: 3131,          // Port of web interface, WARNING you must update indes.html\n  webInterfaceListenIp: \"0.0.0.0\", // IP to start server, WARNING you must update indes.html\n\n  enableCLICharts: true,           // Show graph in CLI\n  clearCLIBetweenTest: true,       // Clear screen between test\n  consoleLog: false,               // Output logging to console\n  \n  secureDomains: null,             // Array of strings [ 'www.example.com' ]\n  secureAdminEmail: 'youremail@here.com' //The admin for the secure email confirmation\n```\n\n## Secure http connection\n\nYou can secure the http connection by creating a [letsencrypt](https://letsencrypt.org/) key as explained below. Configure the secureDomains and secureAdminEmail\n\n```sh\n # Install software letsencrypt \n wget https://dl.eff.org/certbot-auto\n chmod a+x certbot-auto\n # Create dns entry and add _acme-challenge as TXT with key value\n ./certbot-auto certonly --agree-tos --renew-by-default --manual --preferred-challenges=dns -d www.example.com \n # Copy keys to certs: cp /etc/letsencrypt/* ./certs/ -r\n # To renew key if required\n ./certbot-auto renew\n```\n\n \n \n\n## Goals\n\nTo determine whether ISPs are actually throttling Internet (or just congested) at certain periods of time. By taking measurements every 10 minutes, we can track trends throughout the day. By comparing various ISPs (and regions) we can detect greater trends across the market as well.\n\n- Please run the script for at least 24 hours (more time means more data, would prefer multiple weekdays + weekends).\n- Email the generated CSV file (plus your ISP and the speed you pay for) to eric+speedtest@eamann.com\n \nAfter results are in, I'll compile some numbers and publish a review at http://eamann.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericmann%2Fspeed-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericmann%2Fspeed-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericmann%2Fspeed-logger/lists"}