{"id":20152406,"url":"https://github.com/wrike/callisto","last_synced_at":"2025-04-09T21:22:58.154Z","repository":{"id":91363100,"uuid":"240512994","full_name":"wrike/callisto","owner":"wrike","description":"Callisto is an open-source Kubernetes-native implementation of Selenium Grid.","archived":false,"fork":false,"pushed_at":"2023-11-10T12:01:44.000Z","size":307,"stargazers_count":101,"open_issues_count":3,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-01-25T05:11:45.422Z","etag":null,"topics":["kubernetes","python","selenium","selenium-grid","selenium-server","selenoid","webdriver"],"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/wrike.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-02-14T13:21:11.000Z","updated_at":"2024-04-15T06:31:09.068Z","dependencies_parsed_at":"2023-11-10T13:24:25.329Z","dependency_job_id":"e8465368-845a-4b1e-9e57-7589654a1047","html_url":"https://github.com/wrike/callisto","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrike%2Fcallisto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrike%2Fcallisto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrike%2Fcallisto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrike%2Fcallisto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wrike","download_url":"https://codeload.github.com/wrike/callisto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248112977,"owners_count":21049764,"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":["kubernetes","python","selenium","selenium-grid","selenium-server","selenoid","webdriver"],"created_at":"2024-11-13T23:11:36.358Z","updated_at":"2025-04-09T21:22:58.125Z","avatar_url":"https://github.com/wrike.png","language":"Python","funding_links":[],"categories":["Resources"],"sub_categories":["Containers"],"readme":"# Callisto\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/wrike/callisto.svg)](https://hub.docker.com/r/wrike/callisto)\n\nCallisto is an open-source Kubernetes-native implementation of [Selenium Grid](https://en.wikipedia.org/wiki/Selenium_(software)).\n\nHere you can get more information about Callisto:\n\n* [Callisto: An Easy Way To Run Selenium Tests in the Cloud](https://medium.com/wriketechclub/callisto-an-easy-way-to-run-selenium-tests-in-the-cloud-6c1bc39c49ae) [ENG]\n* [Callisto. Why did we come up with a replacement for Selenium Grid](https://habr.com/ru/companies/wrike/articles/539682/) [RUS]\n\n## Current status\n\nCallisto is a production-ready tool, which lets us run hundreds of thousands selenium tests per day inside Wrike.\nIt completely satisfies our needs, so currently we're not actively developing it.\n\n## Architecture\n\n#### Callisto architecture\n\n![Callisto architecture](docs/img/callisto_architecture.png)\n\n#### Components\n\n* Nginx proxies requests for creating/deleting sessions to Callisto. All other requests are proxied to browser pods directly.\n* Callisto creates/deletes browser pods, watches the status of pods, and creates sessions via the webdriver.\n* Browser pods contain a webdriver and a browser.\n\nNginx and Callisto must be running inside a Kubernetes cluster in order to access browser pods directly.\n\n## Features\n\n* No Selenium Grid components used\n* [Selenoid images](https://github.com/aerokube/images) can be used\n* [Selenoid UI](https://github.com/aerokube/selenoid-ui) can be used\n\n## Installation\n\nSee [helm chart](https://github.com/wrike/callisto-chart) to get started.\n\n## Configuration\n\n| Name | Type | Required | Default | Description |\n| ---- | ---- | -------- | ------- | ----------- |\n| WEB_API_HOST | str | No | 127.0.0.1 | a host to run web api |\n| WEB_API_PORT | int | No | 8080 | a port to run web api |\n| LOG_LEVEL | str | No | INFO | log level |\n| GRAYLOG_HOST | str | No | | Graylog host address. Logging to Graylog is disabled if left empty |\n| GRAYLOG_PORT | int | No | 12201 | Graylog port |\n| K8S_NAMESPACE | str | No | default | k8s namespace to spawn pods |\n| POD_WEBDRIVER_PATH | str | No | | webdriver path location. On selenoid images `/wd/hub` for firefox, empty for others |\n| POD_WEBDRIVER_PORT | int | No | 4444 | webdriver port |\n| POD_MANIFEST | str | No | /etc/callisto/pod_manifest.yaml | Path to pod manifest file |\n| SENTRY_DSN | str | No | | Sentry DSN. Sentry disabled if left empty |\n\nResources requests/limits, browser image, screen resolution and other parameters can be configured via pod_manifest.yaml.\n\n## Troubleshooting\n\nEach request is marked with a unique trace id (tid). This information is available in the logs. Also, for debugging, it is recommended to set the `LOG_LEVEL` to `DEBUG`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrike%2Fcallisto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwrike%2Fcallisto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrike%2Fcallisto/lists"}