{"id":33073876,"url":"https://github.com/TilBlechschmidt/WebGrid","last_synced_at":"2025-11-19T04:01:54.736Z","repository":{"id":41598957,"uuid":"249260119","full_name":"TilBlechschmidt/WebGrid","owner":"TilBlechschmidt","description":"Decentralized, scalable and robust implementation of a selenium-grid equivalent. Based on the WebDriver specification by the W3C.","archived":false,"fork":false,"pushed_at":"2024-03-04T13:47:26.000Z","size":12336,"stargazers_count":34,"open_issues_count":14,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-05-02T04:18:45.407Z","etag":null,"topics":["docker","helm-chart","kubernetes","rust","scaleable","selenium","selenium-grid","selenium-node","w3c","webdriver"],"latest_commit_sha":null,"homepage":"https://webgrid.dev","language":"Rust","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/TilBlechschmidt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"TilBlechschmidt"}},"created_at":"2020-03-22T19:48:01.000Z","updated_at":"2024-03-05T12:38:50.000Z","dependencies_parsed_at":"2024-04-15T06:31:30.748Z","dependency_job_id":"0e32a0db-6366-4016-ae7e-204b517340eb","html_url":"https://github.com/TilBlechschmidt/WebGrid","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/TilBlechschmidt/WebGrid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilBlechschmidt%2FWebGrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilBlechschmidt%2FWebGrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilBlechschmidt%2FWebGrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilBlechschmidt%2FWebGrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TilBlechschmidt","download_url":"https://codeload.github.com/TilBlechschmidt/WebGrid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilBlechschmidt%2FWebGrid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285181688,"owners_count":27128334,"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","status":"online","status_checked_at":"2025-11-19T02:00:05.673Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","helm-chart","kubernetes","rust","scaleable","selenium","selenium-grid","selenium-node","w3c","webdriver"],"created_at":"2025-11-14T10:00:27.823Z","updated_at":"2025-11-19T04:01:54.727Z","avatar_url":"https://github.com/TilBlechschmidt.png","language":"Rust","readme":"\u003ch1 align=\"center\"\u003eWebGrid\u003c/h1\u003e\n\n\u003c!-- Logo \u0026 Summary --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"75%\" src=\"https://placekitten.com/882/250\" alt=\"Banner\"\u003e\n\u003c/p\u003e\n\n\u003c!-- Navigation --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e\n  \u003ca href=\"#install\"\u003e\n    Install\n  \u003c/a\u003e\n  \u003cspan\u003e | \u003c/span\u003e\n  \u003ca href=\"#usage\"\u003e\n    Usage\n  \u003c/a\u003e\n  \u003cspan\u003e | \u003c/span\u003e\n  \u003ca href=\"https://webgrid.dev\"\u003e\n    Docs\n  \u003c/a\u003e\n  \u003c/b\u003e\n\u003c/p\u003e\n\n\u003c!-- Badges --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TilBlechschmidt/WebGrid/blob/main/CODE_OF_CONDUCT.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg\" alt=\"Contributor Covenant\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/TilBlechschmidt/WebGrid/blob/main/LICENSE.md\"\u003e\n    \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/TilBlechschmidt/WebGrid\"\u003e\n  \u003c/a\u003e\n\n  \u003cbr\u003e\n\n  \u003ca href=\"\"\u003e\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/maintenance/yes/2022\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/TilBlechschmidt/WebGrid/commits/main\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/TilBlechschmidt/WebGrid\"\u003e\n  \u003c/a\u003e\n\n  \u003cbr/\u003e\n  \u003csub\u003eYou have an idea for a logo? \u003ca href=\"https://github.com/TilBlechschmidt/WebGrid/issues/1\"\u003eSubmit it here!\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\n---\n\n\u003c!-- Bullet points --\u003e\n* **Cluster ready.** Designed with concurrency and on-demand scalability\u003csup\u003e1\u003c/sup\u003e in mind\n* **Debuggable.** Provides browser screen recordings, extensive logs, and tracing\n* **Fast.** Built for speed and performance on a single grid instance\n* **[W3C Specification](https://www.w3.org/TR/webdriver1/) compilant.** Fully compatible with existing Selenium 4 clients\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003e\u003csup\u003e1\u003c/sup\u003eAll the way down to zero, obviously\u003c/sub\u003e\n\u003c/p\u003e\n\n---\n\n## Install\n\nBelow are quick-start tutorials to get you started. For a more detailed introduction visit the dedicated [Getting Started guide](https://webgrid.dev/getting-started/)!\n\n### 🐳 Docker\n\nTo run a basic grid in Docker you can use Docker Compose. Below is a bare-bones example of getting all required components up and running!\n\n```bash\n# Create prerequisites\ndocker network create webgrid\n\n# Download compose file\ncurl -fsSLO webgrid.dev/docker-compose.yml\n\n# Launch the grid\ndocker-compose up\n```\n\nYou can now point your Selenium client to [`localhost:8080`](http://localhost/) and browse the API at [`/api`](http://localhost/api).\n\n### ☸️ Kube\n\nFor deployment to Kubernetes a Helm repository is available. The default values provide a good starting point for basic cluster setups like [K3s](https://k3s.io) or [microk8s](https://microk8s.io).\n\n```bash\n# Add the repository\nhelm repo add webgrid https://webgrid.dev/\n\n# List all available versions\nhelm search repo --versions --devel webgrid/demo\n\n# Install the chart\nhelm install example webgrid/demo --version \"\u003cpick-a-version-from-the-list\u003e\"\n\n# Make it accessible locally for evaluation\nkubectl port-forward service/example-webgrid 8080:80\n```\n\nYour grid is now available at [`localhost:8080`](http://localhost:8080/).\n\nIf you are deploying to a RBAC enabled cluster you might have to tweak some settings. Take a look at the [documentation](https://webgrid.dev/kubernetes/configuration/) on how to use your own ServiceAccount and PersistentVolumeClaims.\n\n## Usage\n\nOnce you have your grid up and running there is a couple of things you can do!\n\n### 🚀 Launch browser instances\n\nPoint your selenium client to [`http://localhost:8080`](http://localhost:8080) to create a new browser container/pod and interact with it! You can use all features supported by Selenium.\n\n### 🔍 Browse the API\n\nThe grid provides a GraphQL API at [`/api`](http://localhost:8080/api) with a Playground for you to explore. It exposes all available metadata about sessions, grid health and advanced features like video recordings.\n\n### 📺 Watch your browsers\n\nYou can take a **live** look at what your browsers are doing by taking the [Session ID](https://webgrid.dev/features/screen-recording/#session-id) of a instance and visiting [`localhost:8080`](http://localhost:8080). You can also embed the videos in your existing tools! Head over to the \u003ca href=\"https://webgrid.dev/features/screen-recording/#embedding\"\u003eembedding documentation\u003c/a\u003e to learn how.\n\n\n\u003csub\u003e\n  \u003cb\u003eNote:\u003c/b\u003e\n  \u003cbr/\u003e\n  Video recordings are disabled by default in K8s as every cluster has specific requirements for file storage. The \u003ca href=\"https://webgrid.dev/kubernetes/storage/\"\u003estorage documentation\u003c/a\u003e explains how to enable it.\n\u003c/sub\u003e\n\n## Developing\n\nIf you want to build the project locally you can use the [Makefile](https://github.com/TilBlechschmidt/WebGrid/blob/main/Makefile). To create Docker images for every component and run them locally run these commands:\n\n```bash\n# Build docker images\nmake\n\n# Start components in docker\nmake install\n```\n\nTo start individual components outside of Docker or setup the development environment, see the [development environment documentation](https://webgrid.dev/contribute/dev-environment/).\n\n## License\n\nThis project is licensed under the MIT License. While this does grant you a lot of freedom in how to use the software and keeps the legal headache to a minimum, it also no longer requires you to publish modifications made to the project. The original intention behind the AGPL license was to encourage contributions by users who added features for their own use.\n\nSince this project is so small at this stage, it heavily relies on feedback and contributions from the community (thats you!). So *please* strongly consider contributing any changes you make for the benefit of all users 🙂","funding_links":["https://github.com/sponsors/TilBlechschmidt"],"categories":["Resources"],"sub_categories":["Containers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTilBlechschmidt%2FWebGrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTilBlechschmidt%2FWebGrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTilBlechschmidt%2FWebGrid/lists"}