{"id":17527096,"url":"https://github.com/jsdelivr/globalping-probe","last_synced_at":"2025-12-29T23:46:14.432Z","repository":{"id":37082554,"uuid":"467132098","full_name":"jsdelivr/globalping-probe","owner":"jsdelivr","description":"The globalping probe code that runs on your hardware and connects to the global community network of probes","archived":false,"fork":false,"pushed_at":"2024-04-04T18:32:02.000Z","size":3774,"stargazers_count":64,"open_issues_count":10,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-04-14T07:10:25.502Z","etag":null,"topics":["benchmark","devops","globalping","network-analysis","ripe-atlas"],"latest_commit_sha":null,"homepage":"https://www.jsdelivr.com/globalping","language":"TypeScript","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/jsdelivr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"jsdelivr","open_collective":"jsdelivr","custom":["https://www.jsdelivr.com/sponsors"]}},"created_at":"2022-03-07T14:38:48.000Z","updated_at":"2024-05-09T14:48:32.619Z","dependencies_parsed_at":"2024-01-31T10:39:55.494Z","dependency_job_id":"2a700f50-4bab-4c96-bc4d-392c75890f9e","html_url":"https://github.com/jsdelivr/globalping-probe","commit_stats":{"total_commits":288,"total_committers":12,"mean_commits":24.0,"dds":0.7361111111111112,"last_synced_commit":"bcf95e75927b89834fc17af982665990de67a112"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsdelivr%2Fglobalping-probe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsdelivr%2Fglobalping-probe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsdelivr%2Fglobalping-probe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsdelivr%2Fglobalping-probe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsdelivr","download_url":"https://codeload.github.com/jsdelivr/globalping-probe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241512115,"owners_count":19974523,"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":["benchmark","devops","globalping","network-analysis","ripe-atlas"],"created_at":"2024-10-20T15:03:09.552Z","updated_at":"2025-12-29T23:46:14.426Z","avatar_url":"https://github.com/jsdelivr.png","language":"TypeScript","funding_links":["https://github.com/sponsors/jsdelivr","https://opencollective.com/jsdelivr","https://www.jsdelivr.com/sponsors"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cimg width=\"1000\" alt=\"Globalping Probe Header\" src=\"https://user-images.githubusercontent.com/1834071/163672135-c96edfe9-7b66-4fe9-92e7-6d225e05f5f3.png\"\u003e\n\n# Globalping Probe\nThe [Globalping platform](https://github.com/jsdelivr/globalping) relies on a globally distributed network of community-hosted probes, allowing anyone to run network testing commands like ping or traceroute from any location.\n\n## Join the Globalping probe community\nGlobalping thrives on the contribution of its community – with your support, we can continuously enhance the platform and provide improved, reliable measurement results to all users free of charge.\nWe'd be happy to welcome you to our community by hosting a probe!\n\n### Set up a virtual probe\nTo join the Globalping probe network, all you need to do is run our Docker container, which works on both x86 and ARM architectures. \n\nUse the following command:\n\n\n```\ndocker run -d --log-driver local --network host --restart=always --name globalping-probe globalping/globalping-probe\n```\n\n\u003e [!TIP]\n\u003e For automation, consider using our [universal installation script for Linux servers](https://gist.github.com/jimaek/7b8312c2c37f9002a5cc0108ebfd43e1) and adapting it as needed.\n\n### Podman alternative\nFor users opting for Podman, [follow the instructions here](https://linuxhandbook.com/autostart-podman-containers/) to make sure the container automatically starts on boot. Also, check the container logs to see if it started successfully, as Podman may still require additional permissions.\nRun the container with the following command:\n```\nsudo podman run --cap-add=NET_RAW -d --network host --restart=always --name globalping-probe globalping/globalping-probe\n```\n\n### Alternative registry\nIn case the main Docker Hub registry is inaccessible to your server for any reason, you can use our official GitHub Packages mirror.\n\n```\ndocker run -d --log-driver local --network host --restart=always --name globalping-probe ghcr.io/jsdelivr/globalping-probe\n```\nNote that ghcr.io does not support IPv6 at the moment.\n\n## Adopt your probes\nEvery new probe that comes online is a great help to our platform and the community, and we want to encourage everyone to start new probes on every available hardware!\n\nIf you're also an active user of Globalping who needs higher than free limits, we recommend you register on the [Globalping Dashboard](https://dash.globalping.io/) and adopt your probes.\n\nEvery adopted probe will generate additional daily credits that you can use to run even more tests.\n\nLearn more about [Globalping credits](https://globalping.io/credits)\n\n### Automated adoption\n\nYou can also make the adoption process fully automated by setting an environment variable\n`GP_ADOPTION_TOKEN` to your unique adoption token. Simply check the [Dashboard](https://dash.globalping.io/probes?view=start-a-probe) for a personalized command that includes the token.\n\nNote that anyone who knows your adoption token will be able to register new probes under your account.\n\n## Where to run\nYou can run the virtual probe on anything that can run a Docker container, supporting x86 and ARM architectures. This includes any Linux server hosted with a cloud provider, your home server, or even a Raspberry Pi lying around at your office. \n\nNo configuration is needed; just run the container with a stable internet connection.\n\n## How to update \nYou don't need to worry about updates: The probe automatically updates to the latest version as soon as it becomes available. It's pulled directly from GitHub and installed within the container.\n\n\u003e [!NOTE]\n\u003e The container itself isn't updated automatically, only the code it runs.\n\n### Optional: Container update\nAs the automatic update doesn’t update the container, we recommend you pull a fresh version of the container regularly.\n\nTo update the container, run the following:\n\n```\ndocker pull globalping/globalping-probe\ndocker stop globalping-probe\ndocker rm globalping-probe\ndocker run -d --log-driver local --network host --restart=always --name globalping-probe globalping/globalping-probe\n```\n\n## Limitations\n- You can run only one (1) probe per IP address.\n- We disconnect probes that we can't reliably resolve to a physical location.\n- We block probes whose traffic is routed through anonymous proxies, Tor exit nodes, or VPN services.\n\n\n## Security\n- The probe only connects to our API over a secure connection; it doesn't open ports on your device or accepts any incoming connections.\n- We use regularly updated lists and databases of [domains](https://github.com/jsdelivr/globalping/blob/master/src/lib/malware/domain.ts) and [IP addresses](https://github.com/jsdelivr/globalping/blob/master/src/lib/malware/ip.ts) associated with malware or potentially dangerous content and ban them on the API level.\n- We block private IP addresses as targets.\n- We rate-limit all users on the API level to prevent network abuse.\n\n## Adjusting the number of tests\nThe amount of measurement tests your probe can process scales with the available CPU cores and average CPU load over the past few minutes. Our code is very lightweight and doesn't take up too many resources, so in most cases, **we recommend running our probe as is**.\n\nHowever, if you still want to control resource usage, add the docker parameter `--cpuset-cpus=\"0-2\"` to your `docker run` command and set the number of CPUs within the quotes.\n\n## Hardware Probes\n\u003cimg src=\"https://user-images.githubusercontent.com/1834071/183153051-5c741c3c-5e8c-4372-ba12-82a602cb7cb6.png\" alt=\"globalping probe\" height=\"200px\" align=\"right\"/\u003e\n\nAs a GitHub Sponsor contributing $10+ per month, you can request a hardware probe and install it at home or in your office.\n\n### How does it work?\nConnect the probe to your switch or router, and you are done! No need to set up the Docker container yourself or have a computer running 24/7.\n\nThe hardware probe package includes everything you need to get started:\n- ARM-based mini computer in a metal housing\n- Power supply\n- SD card with pre-installed OS and probe container\n- Ethernet patch cable\n\nTo request a probe, become a GitHub Sponsor and [fill out this form](https://docs.google.com/forms/d/e/1FAIpQLSetKnI7CheDuwgl8QeARu2XzhXTXmek0GdKkpN5MW7WV3pVtw/viewform).\n\n\u003e [!TIP]\n\u003e You can also explore the hardware probe's firmware and build your own version. Learn more [here](https://github.com/jsdelivr/globalping-hwprobe).\n\n### Become a hardware probe provider\nWe offer companies to sponsor co-branded hardware probes to hand out at conferences or ship to your users with your own stickers and swag included.\n\nLearn more about [becoming a hardware probe provider](https://docs.google.com/document/d/1xIe-BaZ-6mmkjN1yMH5Kauw3FTXADrB79w4pnJ4SLa4/edit?usp=sharing).\n\n## Support and feedback\n\nIf you are stuck or want to give us your feedback, please [open a new issue](https://github.com/jsdelivr/globalping-probe/issues).\n\n## Development\nPlease refer to [CONTRIBUTING.md](CONTRIBUTING.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsdelivr%2Fglobalping-probe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsdelivr%2Fglobalping-probe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsdelivr%2Fglobalping-probe/lists"}