{"id":15432583,"url":"https://github.com/chriscarini/speedtest-to-gsheet","last_synced_at":"2025-08-04T12:34:27.805Z","repository":{"id":76816090,"uuid":"299516705","full_name":"ChrisCarini/speedtest-to-gsheet","owner":"ChrisCarini","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-10T19:54:19.000Z","size":79,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T20:48:00.309Z","etag":null,"topics":["speedtest","speedtest-cli","speedtest-py","speedtest-python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ChrisCarini.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-29T05:48:21.000Z","updated_at":"2025-04-10T19:54:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b51ba36-ad44-4d4b-930c-92dfdbef0755","html_url":"https://github.com/ChrisCarini/speedtest-to-gsheet","commit_stats":{"total_commits":53,"total_committers":2,"mean_commits":26.5,"dds":0.2075471698113207,"last_synced_commit":"e988b98c2551f805594bf10b6c9a118bf234a697"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisCarini%2Fspeedtest-to-gsheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisCarini%2Fspeedtest-to-gsheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisCarini%2Fspeedtest-to-gsheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisCarini%2Fspeedtest-to-gsheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChrisCarini","download_url":"https://codeload.github.com/ChrisCarini/speedtest-to-gsheet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249752052,"owners_count":21320426,"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":["speedtest","speedtest-cli","speedtest-py","speedtest-python"],"created_at":"2024-10-01T18:27:30.244Z","updated_at":"2025-04-19T17:45:54.019Z","avatar_url":"https://github.com/ChrisCarini.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `speedtest` to gSheet\n\nThis application will perform a network speed test (using the `speedtest` CLI provided by Ookla (speedtest.net)) and\nstore the results in a Google Sheet.\n\n## Prerequisites\n\n1. `docker-compose`\n1. A Google account\n\n## Setup\n\n### Create Google Sheet\n\n1. Create a new Google Sheet to use\n1. Update `config.yaml` variable `GSHEET_DOC_KEY` with the document key for your new document.\n\n### Create Service Account\n\n1. Head to https://console.developers.google.com/cloud-resource-manager?pli=1\n1. Click `Create Project`\n1. Name your project `speedtest-to-gsheet` (or whatever you wish)\n1. Click `Create`\n1. Follow the steps here to enable `Drive + Sheet API` access -\u003e https://gspread.readthedocs.io/en/latest/oauth2.html#enable-api-access\n    1. Under “APIs \u0026 Services \u003e Library”, search for “Drive API” and enable it.\n    2. Under “APIs \u0026 Services \u003e Library”, search for “Sheets API” and enable it.\n    3. Enable API Access for a Project if you haven’t done it yet.\n    4. Go to “APIs \u0026 Services \u003e Credentials” and choose “Create credentials \u003e Service account key”.\n    5. Fill out the form\n    6. Click “Create key”\n    7. Select “JSON” and click “Create”\n    8. **Save the file as `speedtest-to-gsheet-service-account-key.json` in the root of this project!!!**\n    9. Very important! Go to your spreadsheet and share it with a client_email from the step above. Just like you do\n       with any other Google account. If you don’t do this, you’ll get a gspread.exceptions.SpreadsheetNotFound\n       exception when trying to access this spreadsheet from your application or a script.\n\n### Configure\n\n1. Edit the `config.yaml` file with the desired settings.\n\n### Build\n\n1. `docker-compose -f docker-compose.yml build`\n\n### Run\n\n1. `docker-compose up speedtest_to_gsheet -d`\n\n## Maintainer Notes\n\n### Developing Quick Start\n\nThe below commands to get the basic setup for developing on this repository.\n\n```shell \npython3 -m venv venv\nln -s venv/bin/activate activate\nsource activate\npip install --upgrade pip\npip install -r requirements.txt\n```\n\n### Building the `Dockerfile`\n\n```shell\ndocker-compose -f docker-compose.yml build\ndocker-compose -f docker-compose.yml up -d\n```\n\n### Publish the Docker image to Docker Hub\n\n```shell\ndocker login --username chriscarini\n\nVERSION=0.0.3\nIMAGE=\"chriscarini/speedtest-to-gsheet\"\n\n# Give the image two tags; one version, and one `latest`.\ndocker build -t \"$IMAGE:latest\" -t \"$IMAGE:$VERSION\" .\n\ndocker push \"$IMAGE:latest\" \u0026\u0026 docker push \"$IMAGE:$VERSION\"\n```\n\n## References\n\nThe `speedtest` CLI is as provided by Ookla (speedtest.net).\n\nYou can find [installation instructions for your platform here](https://www.speedtest.net/apps/cli).\n\nThis project pulls in this CLI into a docker container for easier use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriscarini%2Fspeedtest-to-gsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchriscarini%2Fspeedtest-to-gsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriscarini%2Fspeedtest-to-gsheet/lists"}