| Link | Description |
|---|---|
| Dashboard | Full pyramid — filter epic selenoid-ui in awesome |
| Awesome | UI test details |
| selenoid-tests | Orchestrator + merged Allure |
Prod UI: selenoid.qa.guru — Selenoid 3 (
main/ v3-dev, React 19). Pin-ветки 2.x — заморожены (maintenance-only в git, без публичного стенда).
Ветка Semver Назначение mainv3.0.0+ Активная prod-линия UI selenoid2-1.55-…-react18v2.3.0 frozen maintenance pin (React 18) selenoid2-1.45-…-react16v2.2.1 frozen rollback reference (React 16) На
main—STACK-PIN.mdописывает живой v3 toolchain; на pin-ветках — v2.x pin. UI freeze для 2.x: только maintenance-фиксы; visual refresh → Selenoid 3 (ruleselenoid-2-maintenance-ui).
Web-интерфейс для qa-guru/selenoid — форк aerokube/selenoid-ui с поддержкой Playwright-сессий на странице New Session.
| GitHub | qa-guru/selenoid-ui |
| Docker Hub | qaguru/selenoid-ui |
| Текущий релиз | v3.0.26 — docs/RELEASE_v3.0.26.md · qaguru/selenoid-ui:v3.0.26 |
UI не заменяет hub — он подключается к уже запущенному Selenoid и даёт:
- Statistics (
#/statistics) — статус квот и обзор hub; - Sessions (
#/sessions) — живые сессии сверху и архив завершённых с артефактами (видео + логи + HAR, удаление сессии целиком). Заменяет прежнюю вкладку Videos; - New Session (
#/new-session) — создание сессии и сниппеты для WebDriver / Playwright (бывшая Capabilities); - VNC-просмотр браузера и логи сессии;
- прокси WebSocket
/playwright/→ hub (нужно для Create Session из браузера).
Браузер пользователя ──► selenoid-ui :8080 ──► selenoid hub :4444 ──► browser containers
| Ресурс | Ссылка | Роль |
|---|---|---|
| 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/* |
- В New Session отображаются Playwright-браузеры (
playwright-chromium,playwright-firefox, …) наряду с WebDriver (chrome,firefox). - Create Session для Playwright открывает WebSocket через прокси UI (
/playwright/…), а не POST/wd/hub/session. - Нужен тот же
browsers.json, что у hub — иначе Playwright-версии в UI не совпадут с hub. - SSE resilience: immediate
GET /status, fallback poll каждые 4s, reconnect с backoff, индикатор STALE вместо мгновенного сброса в UNKNOWN.
Upstream docs: aerokube/selenoid-ui · aerokube.com/selenoid-ui. AsciiDoc docs/*.adoc — deprecated (оставлены как upstream history); канон — этот README + docs/RELEASE_*.md.
Сначала поднимите hub (qa-guru/selenoid). Затем соберите и запустите UI:
yarn --cwd ui install && yarn --cwd ui build
go generate .
go build -o selenoid-ui .
./selenoid-ui \
-listen :8080 \
-selenoid-uri http://127.0.0.1:4444 \
-browsers-conf /path/to/browsers.jsonMonorepo dev: projects/selenoid-home/dev/scripts/build-selenoid-ui.sh.
Current main / v3-dev toolchain — STACK-PIN.md + ui/package.json (React 19 / react-router 7). Prod v2.3.0 / React 18 — только pin-ветка selenoid2-…-react18 (её STACK-PIN.md).
| Tool | Version |
|---|---|
| React | 19.x (^19.2.7) |
| Router | react-router-dom 7 (HashRouter / Routes / useNavigate) |
| Bundler | Vite 6 |
| Test | Vitest 3 + React Testing Library (jsdom) |
| Node (CI) | 24 |
yarn --cwd ui install
yarn --cwd ui test # 22 tests (unit + component)
yarn --cwd ui buildGuest hub auth (New Session): не хранится в git. CI подставляет при yarn build:
HUB_AUTH_USER/HUB_AUTH_PASS→VITE_HUB_AUTH_*— WebDriver Basic Auth (duoauthUser/authPass);HUB_ACCESS_KEY→VITE_HUB_ACCESS_KEY— Playwright?accessKey=(одно поле).
Если AUTH_* пусты, WD duo берёт user:pass из ACCESS_KEY (prod часто печёт только этот secret). Playwright никогда не собирается из AUTH_*.
Локально — ui/.env.example → ui/.env.local, либо пусто (поля auth вручную).
v1 (CRA) — git tag v2.2.x и ранее.
-browsers-conf — тот же config/browsers.json, что у hub (в monorepo: projects/selenoid-home/dev/browsers.json).
Nav: Statistics · Sessions · New Session
(#/ и #/capabilities редиректят на #/statistics и #/new-session.)
- WebDriver (chrome, firefox): Create Session → POST
/wd/hub/session - Playwright: сниппеты WebSocket; Create Session → прокси
ws://…/playwright/{browser}/{version}и переход в сессию по SSE/events
Прокси Playwright в UI: путь /playwright/ → Selenoid ws://host:4444/playwright/….
browsers.json должен быть смонтирован в UI по пути из --browsers-conf (тот же файл, что у hub). Корневой browsers.json — qaguru/dev-канон.
docker run -d --name selenoid-ui \
-p 8080:8080 \
-v "$PWD:/etc/selenoid:ro" \
qaguru/selenoid-ui:v2.2.1 \
--selenoid-uri http://host.docker.internal:4444 \
--browsers-conf /etc/selenoid/browsers.jsonCompose: docker-compose.yml монтирует $PWD в /etc/selenoid/ и для hub, и для UI.
- Соберите hub (
go build -o selenoid .в qa-guru/selenoid) и поднимите сconfig/browsers.json - Соберите UI (команды выше)
- Запустите UI с
-browsers-conf, указывающим на тот жеbrowsers.json - New Session → playwright-chromium: 1.61.1 → Create Session → должен открыться экран сессии с VNC
- Для chrome/firefox — создание сессии через WebDriver без изменений
Проверка только Go-backend (без React):
go build .Для полной сборки с UI нужны предварительные yarn --cwd ui build и go generate.