| Link | Description |
|---|---|
| Dashboard | Full pyramid — filter epic selenoid in awesome |
| Awesome | Hub test details |
| selenoid-tests | Orchestrator + merged Allure |
Prod hub/cm: релизы с
main→ v3.0.0+ (selenoid.qa.guru). UI — отдельная v3.x линия наselenoid-uimain.Pin-ветки 2.x (
selenoid2-…-react16/react18) — заморожены, только rollback reference; не использовать для новых релизов.
Ветка Semver Назначение mainv3.0.0+ Активная prod-линия hub selenoid2-1.55-…-react18v2.3.0 frozen maintenance pin selenoid2-1.45-…-react16v2.2.1 frozen rollback reference
Основной репозиторий экосистемы. Форк aerokube/selenoid с нативной поддержкой Playwright.
| GitHub | qa-guru/selenoid |
| Docker Hub | qaguru/selenoid |
| Текущий релиз | v3.0.0 — docs/RELEASE_v3.0.0.md · qaguru/selenoid:v3.0.0 · Selenoid 3 hub |
| Selenoid 3 | selenoid.qa.guru — hub v3.0.0 + UI v3.0.x |
Selenoid — лёгкий Selenium hub на Go, который поднимает браузеры в Docker-контейнерах. В этом форке добавлен native Playwright: клиент подключается по WebSocket, hub стартует Playwright-образ и проксирует соединение.
Тест (Selenium) ──► /wd/hub ──► qaguru/webdriver-chrome (Chrome)
Тест (Playwright) ──► /playwright/... ──► qaguru/playwright-* (browser-image)
flowchart TB
cm["cm<br/>установка на сервер"]
hub["selenoid hub"]
ui["selenoid-ui"]
bi["browser-image<br/>browser containers"]
wd["qaguru/webdriver-chrome<br/>Selenium Chrome"]
cm -->|"бинарники + browsers.json"| hub
ui <--> hub
hub --> bi
hub --> wd
- cm — one-command install на сервере с Docker
- selenoid (hub) — Selenium
/wd/hub+ Playwright WebSocket - selenoid-ui — web UI сессий и capabilities
- browser-image — Playwright и WebDriver browser nodes
WebDriver Chrome — qaguru/webdriver-chrome (browser-image/webdriver/). Playwright-образы — qaguru/playwright-*. Hub — qaguru/selenoid.
Twilio (twilio/selenoid) — legacy cold WebDriver-образы, не Playwright. Текущий стек: Microsoft MCR + qaguru wrapper для Playwright; Chrome for Testing + qaguru wrapper для WebDriver. Таблица: docs/browser-versions.md.
| Ресурс | Ссылка | Роль |
|---|---|---|
| selenoid (этот) | github.com/qa-guru/selenoid | Hub |
| selenoid-ui | github.com/qa-guru/selenoid-ui | Web UI |
| cm | github.com/qa-guru/cm | Установщик |
| browser-image | github.com/qa-guru/browser-image | Docker browser nodes |
| selenoid-tests | github.com/qa-guru/selenoid-tests | E2e/integration ethalon |
| Docker Hub | hub.docker.com/u/qaguru | Образы qaguru/* |
WebSocket endpoint (схема URL совместима с Moon):
ws://localhost:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true
Опционально: -playwright-access-key=… → обязательный query ?accessKey=. Несколько ключей задаются через запятую (на демо: user1:1234,qa_engineer:aAb_-4gs53FD). Local без flag — без ключа.
Документация и smoke-тест:
- docs/playwright.md
- examples/playwright
- docs/browser-versions.md — политика стека, правила совместимости
- docs/driver-versions-catalog.md — полный каталог версий (official / aerokube / Twilio / qaguru)
| Компонент | Версия | Зачем |
|---|---|---|
| Go | 1.26.x | Сборка hub (.go-version — 1.26.5, go.mod toolchain go1.26.5) |
| Docker Engine | 29.x (рекомендуется 29.6+) | Совместим с DOCKER_API_VERSION=1.55 (moby client MaxAPIVersion) |
| Docker API | 1.55 | Версия API, с которой hub ходит к daemon (DOCKER_API_VERSION) |
| Docker SDK | moby | github.com/moby/moby/client + github.com/moby/moby/api (не github.com/docker/docker) |
Проверка:
./scripts/check-toolchain.sh
docker version | grep -E 'Version:|API'
# Engine: 29.x, API version: 1.55
go version # go1.26.xHub и cm фиксируют DOCKER_API_VERSION=1.55 (скрипт ./scripts/start-selenoid.sh, образ, CI). На Linux/CI: Engine 29.x (./scripts/check-toolchain.sh). Hub без env пина может снизить API через negotiation (main.go).
Сборка без локального Go использует образ golang:1.26 (см. ./scripts/build-selenoid.sh).
./scripts/build-selenoid.sh
docker pull qaguru/webdriver-chrome:149 qaguru/webdriver-chrome:149-min qaguru/video-recorder:latest
docker pull qaguru/playwright-chromium:1.61.1 # или сборка в browser-image
./scripts/start-selenoid.shИли вручную:
go build -o selenoid .
DOCKER_API_VERSION=1.55 ./selenoid -conf config/browsers.json -limit 5SSOT: ../dev/browsers.json (полный каталог).
Sync: ../dev/scripts/sync-cm-browsers.sh → config/browsers.json, CM embed, CI fixture, UI.
Smoke-тест Playwright: examples/playwright (npm install && npm test).
Текущий релиз hub: v2.3.0 — docs/RELEASE_v2.3.0.md (moby API 1.55, React 17/CRA5 UI).
Предыдущий: docs/RELEASE_v2.2.1.md. Docker: qaguru/selenoid:v2.3.0.
Два стека — WebDriver (Selenium) и Playwright (WebSocket). Каталог = SSOT ../dev/browsers.json. Полная таблица — docs/browser-versions.md.
| Браузер в hub | Default | Версии (sample) | Docker-образ | Протокол |
|---|---|---|---|---|
chrome |
149.0 |
149/148 (+-min) |
qaguru/webdriver-chrome:<tag> |
WebDriver, path: / |
firefox |
151.0 |
151/150 (+-min) |
qaguru/webdriver-firefox:<tag> |
WebDriver |
msedge |
145.0 |
145/144 (+-min) |
qaguru/webdriver-msedge:<tag> |
WebDriver |
playwright-chromium |
1.61.1 |
1.61.1, 1.61.1-min | qaguru/playwright-chromium:<версия> |
Playwright |
playwright-{firefox,webkit,chrome,msedge} |
1.61.1 |
1.61.1 | qaguru/playwright-*:<версия> |
Playwright |
Playwright-образы: порт 3000, protocol: "playwright", shmSize: 2GB. Версия npm-клиента @playwright/test должна совпадать с playwrightVersion в конфиге.
# WebDriver Chrome (qaguru) — default 149.0; 148.* optional regression
docker pull qaguru/webdriver-chrome:149 qaguru/webdriver-chrome:149-min
# Playwright — pull или сборка в browser-image
docker pull qaguru/playwright-chromium:1.61.1
# ./playwright/scripts/build.sh all 1.61.1 (в репозитории browser-image)
# Видеозапись сессий
docker pull qaguru/video-recorder:latest# WebDriver
http://127.0.0.1:4444/wd/hub
# Playwright
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1?enableVNC=true&enableVideo=true
ws://127.0.0.1:4444/playwright/playwright-chromium/1.61.1-min
Записи с enableVideo=true сохраняются в каталог video/ (или http://127.0.0.1:4444/video/).
| Переменная | Описание |
|---|---|
DOCKER_API_VERSION |
API Docker для hub (канон 1.55) |
DOCKER_HOST |
Адрес Docker daemon (стандартный Docker client) |
GGR_HOST |
Хост GGR (если hub за GGR) |
OVERRIDE_VIDEO_OUTPUT_DIR |
Переопределение каталога video |
Клиентские PLAYWRIGHT_WS_ENDPOINT / PW_TEST_CONNECT_WS_ENDPOINT — не env процесса hub; см. docs/playwright.md и examples/playwright.
Форк aerokube/selenoid (upstream UNMAINTAINED). Оригинальная документация: aerokube.com/selenoid/latest и AsciiDoc в docs/*.adoc (upstream-only, не дублируют qa-guru quick start).