{"id":13579101,"url":"https://github.com/henrywhitaker3/Speedtest-Tracker","last_synced_at":"2025-04-05T20:33:05.783Z","repository":{"id":36980996,"uuid":"254024234","full_name":"henrywhitaker3/Speedtest-Tracker","owner":"henrywhitaker3","description":"Continuously track your internet speed","archived":false,"fork":false,"pushed_at":"2024-02-14T22:05:22.000Z","size":90178,"stargazers_count":1579,"open_issues_count":211,"forks_count":122,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-01T01:41:44.899Z","etag":null,"topics":["docker","laravel","speedtest"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henrywhitaker3.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.json","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-04-08T08:06:15.000Z","updated_at":"2025-03-26T02:24:27.000Z","dependencies_parsed_at":"2024-08-01T15:30:14.790Z","dependency_job_id":"f9f12510-1544-4438-8bef-cf923c1feaff","html_url":"https://github.com/henrywhitaker3/Speedtest-Tracker","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrywhitaker3%2FSpeedtest-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrywhitaker3%2FSpeedtest-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrywhitaker3%2FSpeedtest-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrywhitaker3%2FSpeedtest-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henrywhitaker3","download_url":"https://codeload.github.com/henrywhitaker3/Speedtest-Tracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399819,"owners_count":20932875,"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","laravel","speedtest"],"created_at":"2024-08-01T15:01:36.562Z","updated_at":"2025-04-05T20:33:00.772Z","avatar_url":"https://github.com/henrywhitaker3.png","language":"PHP","funding_links":[],"categories":["PHP","置顶","laravel"],"sub_categories":["05、运维监控体系"],"readme":"# Speedtest Tracker\n\n[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker?style=flat-square)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Stable?label=master\u0026logo=github\u0026style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Dev?label=dev\u0026logo=github\u0026style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.12.0-success?style=flat-square) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)\n\nThis program runs a speedtest check every hour and graphs the results. The back-end is written in [Laravel](https://laravel.com/) and the front-end uses [React](https://reactjs.org/). It uses the [Ookla's speedtest cli](https://www.speedtest.net/apps/cli) package to get the data and uses [Chart.js](https://www.chartjs.org/) to plot the results.\n\nA demo can be found [here](https://speedtest.henrywhitaker.com)\n\nDisclaimer: You will need to accept Ookla's EULA and privacy agreements in order to use this container.\n\n![speedtest](https://user-images.githubusercontent.com/36062479/78822484-a82b8300-79ca-11ea-8525-fdeae496a0bd.gif)\n\n## Features\n\n- Automatically run a speedtest every hour\n- Graph of previous speedtests going back x days\n- Backup/restore data in JSON/CSV format\n- Slack/Discord/Telegram notifications\n- [healthchecks.io](https://healthchecks.io) integration\n- Organizr integration\n- InfluxDB integration (currently v1 only, v2 is a WIP)\n\n## Installation \u0026 Setup\n\n### Using Docker\n\nA docker image is available [here](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker), you can create a new conatiner by running:\n\n```bash\ndocker create \\\n      --name=speedtest \\\n      -p 8765:80 \\\n      -v /path/to/data:/config \\\n      -e OOKLA_EULA_GDPR=true \\\n      --restart unless-stopped \\\n      henrywhitaker3/speedtest-tracker\n```\n\n### Using Docker Compose\n\n```yml\nversion: '3.3'\nservices:\n    speedtest:\n        container_name: speedtest\n        image: henrywhitaker3/speedtest-tracker\n        ports:\n            - 8765:80\n        volumes:\n            - /path/to/data:/config\n        environment:\n            - TZ=\n            - PGID=\n            - PUID=\n            - OOKLA_EULA_GDPR=true\n        logging:\n            driver: \"json-file\"\n            options:\n                max-file: \"10\"\n                max-size: \"200k\"\n        restart: unless-stopped\n```\n\n#### Images\n\nThere are 2 different docker images:\n\n| Tag | Description |\n| :----: | --- |\n| latest | This is the stable release of the app |\n| dev | This release has more features, although could have some bugs |\n\n#### Parameters\n\nContainer images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `\u003cexternal\u003e:\u003cinternal\u003e` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.\n\n|     Parameter             |   Function    |\n|     :----:                |   --- |\n|     `-p 8765:80`          |   Exposes the webserver on port 8765  |\n|     `-v /config`          |   All the config files reside here.   |\n|     `-e OOKLA_EULA_GDPR`  |   Set to 'true' to accept the Ookla [EULA](https://www.speedtest.net/about/eula) and privacy agreement. If this is not set, the container will not start   |\n|     `-e SLACK_WEBHOOK`    |   Optional. Put a slack webhook here to get slack notifications when a speedtest is run. To use discord webhooks, just append `/slack` to the end of your discord webhook URL   |\n|     `-e TELEGRAM_BOT_TOKEN`    |   Optional. Telegram bot API token.   |\n|     `-e TELEGRAM_CHAT_ID`    |   Optional. Telegram chat ID.   |\n|     `-e PUID`             |   Optional. Supply a local user ID for volume permissions   |\n|     `-e PGID`             |   Optional. Supply a local group ID for volume permissions  |\n|     `-e AUTH`             |   Optional. Set to 'true' to enable authentication for the app |\n|     `-e INFLUXDB_RETENTION`|  Optional. Sets the InfluxDB retention period, defaults to `30d` |\n|     `-e INFLUXDB_HOST_TAG |   Optional. Sets the InfluxDB host tag value, defaults to `speedtest` |\n\n### Authentication\n\nAuthentication is optional. When enabled, unauthenticated users will only be able to see the graphs and tests table. To be able to queue a new speedtest, backup/restore data and update instance settings you will need to log in. To enable authentication, pass the `AUTH=true` environment variable in docker or run `php artisan speedtest:auth --enable` for manual installs (same command with `--disable` to turn it off).\n\nThe default credentials are:\n\n|   Field       |   Function        |\n|   ---         |   ---             |\n|   username    |   admin@admin.com |\n|   password    |   password        |\n    \nAfter enabling, you should change the password through the web UI.\n    \n### Manual Install\n\nFor manual installations, please follow the instructions [here](https://github.com/henrywhitaker3/Speedtest-Tracker/wiki/Manual-Installation).\n\n### Kubernetes\n\nThere is a 3rd party helm chart available [here](https://github.com/sOblivionsCall/charts).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrywhitaker3%2FSpeedtest-Tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenrywhitaker3%2FSpeedtest-Tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrywhitaker3%2FSpeedtest-Tracker/lists"}