{"id":22620533,"url":"https://github.com/dbrennand/speeder","last_synced_at":"2025-04-11T15:33:54.082Z","repository":{"id":49587043,"uuid":"329599276","full_name":"dbrennand/speeder","owner":"dbrennand","description":"Python script to monitor your internet speed! 🚀  Periodically run librespeed/speedtest-cli and send results to InfluxDB.","archived":false,"fork":false,"pushed_at":"2024-09-03T07:47:11.000Z","size":943,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T22:39:04.493Z","etag":null,"topics":["docker","docker-compose","grafana","influxdb","internet-speed","internet-speed-tester","python","speeder","speedtest"],"latest_commit_sha":null,"homepage":"","language":"Python","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/dbrennand.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":"2021-01-14T11:47:42.000Z","updated_at":"2025-01-22T12:36:02.000Z","dependencies_parsed_at":"2024-08-25T18:54:40.320Z","dependency_job_id":null,"html_url":"https://github.com/dbrennand/speeder","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrennand%2Fspeeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrennand%2Fspeeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrennand%2Fspeeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrennand%2Fspeeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbrennand","download_url":"https://codeload.github.com/dbrennand/speeder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248432045,"owners_count":21102306,"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","docker-compose","grafana","influxdb","internet-speed","internet-speed-tester","python","speeder","speedtest"],"created_at":"2024-12-08T22:14:13.504Z","updated_at":"2025-04-11T15:33:54.054Z","avatar_url":"https://github.com/dbrennand.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Speeder\n\n![Build](https://github.com/dbrennand/speeder/actions/workflows/build.yml/badge.svg)\n![Lint](https://github.com/dbrennand/speeder/actions/workflows/lint.yml/badge.svg)\n\nPython script to monitor your internet speed! 🚀\n\nPeriodically run [librespeed/speedtest-cli](https://github.com/librespeed/speedtest-cli) and send results to [InfluxDB](https://www.influxdata.com/products/influxdb/).\n\n# Quick Start\n\n\u003e **Note**\n\u003e The assumption is made that you've already setup `InfluxDB 2.x.x`. Alternatively, you can use the [Docker Compose](#docker-compose-stack---influxdb-and-grafana) method where this is setup for you.\n\nList available server IDs:\n\n```bash\ndocker run --rm -it ghcr.io/dbrennand/speeder:latest /librespeed --list\n```\n\nNext, start and configure speeder using the environment variables:\n\n```bash\ndocker run -itd --rm --name speeder \\\n    -e \"SPEEDER_SPEEDTEST_INTERVAL=300\" \\\n    -e \"SPEEDER_SPEEDTEST_SERVER_ID=49\" \\\n    -e \"SPEEDER_INFLUXDB_HOST=influx.example.com\" \\\n    -e \"SPEEDER_INFLUXDB_TOKEN=\u003cToken\u003e\" \\\n    -e \"SPEEDER_INFLUXDB_ORG=speeder\" \\\n    -e \"SPEEDER_INFLUXDB_BUCKET=speeder\" \\\n    ghcr.io/dbrennand/speeder:latest\n```\n\n# Environment Variables\n\nThe [speeder](speeder.py) script is configured using the below environment variables:\n\n| Name                          | Description                                                                                | Default Value |\n| ----------------------------- | ------------------------------------------------------------------------------------------ | ------------- |\n| `SPEEDER_SPEEDTEST_INTERVAL`  | Interval in seconds to run speedtests on.                                                  | 300           |\n| `SPEEDER_SPEEDTEST_SERVER_ID` | Server ID to run speedtests against. Supports multiple IDs using a comma separated string. | \"\"            |\n| `SPEEDER_INFLUXDB_HOST`       | InfluxDB hostname.                                                                         | influxdb      |\n| `SPEEDER_INFLUXDB_PORT`       | InfluxDB port.                                                                             | 8086          |\n| `SPEEDER_INFLUXDB_TOKEN`      | InfluxDB token.                                                                            | root          |\n| `SPEEDER_INFLUXDB_ORG`        | InfluxDB organisation name.                                                                | speeder       |\n| `SPEEDER_INFLUXDB_BUCKET`     | InfluxDB bucket name to write speedtest results to.                                        | speeder       |\n\n# Docker Compose Stack - InfluxDB and Grafana\n\nThe [docker-compose.yml](docker-compose.yml) file in this repository will deploy speeder, InfluxDB `2.7.1` and Grafana containers. Grafana will be provisioned with InfluxDB as the [data source](grafana-config/datasources/datasource.yml) and the pre-created [dashboard](grafana-config/dashboards/dashboard.json):\n\n![Dashboard](images/dashboard.png)\n\n![Dashboard 1](images/dashboard1.png)\n\n1. Set the `SPEEDER_SPEEDTEST_SERVER_ID` environment variable located in the [.env](.env) file to the server IDs to perform speedtests against.\n\n    \u003e **Note**\n    \u003e\n    \u003e If you don't know any server IDs, run the following command to list them:\n    \u003e ```bash\n    \u003e docker run --rm -it ghcr.io/dbrennand/speeder:latest /librespeed --list\n    \u003e ```\n\n2. Set the `DOCKER_INFLUXDB_INIT_PASSWORD`, `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN` and `GF_SECURITY_ADMIN_PASSWORD` environment variables located in the [.env](.env) file.\n\n3. Start the compose stack:\n\n    ```bash\n    docker compose up -d\n    ```\n\nGrafana will be accessible at [`http://localhost:3000`](http://localhost:3000) and your host's IP address.\n\n## Disclaimer\n\nI did **NOT** create the LibreSpeed project or CLI. The great folks over at [LibreSpeed](https://github.com/librespeed) did.\n\nIf you like this project then please give their repositories a star! ⭐\n\n## Authors -- Contributors\n\n[**Daniel Brennand**](https://github.com/dbrennand) - *Author*\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrennand%2Fspeeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbrennand%2Fspeeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrennand%2Fspeeder/lists"}