Sign inSign up

selenwright/gridlane

By selenwright

•Updated 4 months ago

HTTP/WebSocket router and load balancer for the Selenwright browser-automation grid

Image
Developer tools
0

488

selenwright/gridlane repository overview

⁠Gridlane

Stdlib-only Go router and load balancer that sits in front of N Selenwright⁠ backends and proxies:

  • Selenium WebDriver (HTTP) — /wd/hub/session, /session, /session/...
  • Playwright JSON protocol (WebSocket) — /playwright/<browser>/<version>
  • Side endpoints — VNC, DevTools, video, logs, downloads, clipboard, history settings

Enforces BasicAuth + guest + admin-token scopes, per-user session quotas, weighted region routing, backend health with cooldown, and SIGHUP fail-closed config reload.

⁠Image

  • Multi-stage Alpine build (golang:1.26.2-alpine → alpine:3.23)
  • CGO_ENABLED=0, -trimpath -ldflags="-s -w"
  • Runs unprivileged as 65532:65532
  • Exposes 4444 (main listener) and 9090 (optional metrics listener)
  • ENTRYPOINT is the gridlane binary — every argument becomes a CLI flag

⁠Tags

TagPublished On
latestEvery push to main
latest-releaseEvery GitHub release
<version> (e.g. 0.3.1)Per-release semver tag

Pin production deployments to a specific semver tag, not latest-release.

⁠Quick start

docker run -d --name gridlane \
  -p 4444:4444 -p 9090:9090 \
  -v $(pwd)/router.json:/etc/gridlane/router.json:ro \
  -e GRIDLANE_ALICE_PASSWORD=wonderland \
  -e GRIDLANE_ADMIN_TOKEN=root-token \
  selenwright/gridlane:latest-release \
  -config /etc/gridlane/router.json \
  -metrics-listen :9090 \
  -log-format json

Tag summary

Content type

Image

Digest

sha256:93b4f1c48…

Size

7 MB

Last updated

4 months ago

docker pull selenwright/gridlane