Skip to content

Quickstart (Local)

Get rayobrowse running locally in under 5 minutes. All you need is Docker and any CDP client (Playwright, Puppeteer, Selenium, etc.). No SDK required.

  1. Set up environment

    Terminal window
    git clone https://github.com/rayobyte-data/rayobrowse.git
    cd rayobrowse
    cp .env.example .env

    By using rayobrowse, you agree to the license. The default .env.example works for local development.

  2. Start the container

    Terminal window
    docker compose up -d

    Docker automatically pulls the correct image for your architecture (x86_64 or ARM64).

  3. Verify it’s running

    Terminal window
    curl http://localhost:9222/health
    # Should return: {"success": true, "data": {"status": "healthy", ...}}
  4. Request a browser, then connect

    /connect is an HTTP endpoint. It creates a fresh browser and returns a CDP WebSocket URL as plain text. Pass that returned URL to your automation client.

    # pip install httpx playwright && playwright install
    import httpx
    from playwright.sync_api import sync_playwright
    resp = httpx.get(
    "http://localhost:9222/connect",
    params={"headless": "false", "os": "windows", "vnc": "true"},
    timeout=120,
    )
    resp.raise_for_status()
    cdp_url = resp.text.strip()
    vnc_url = resp.headers.get("x-vnc-url") or "http://localhost:6080/vnc.html"
    with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(cdp_url)
    context = browser.contexts[0] if browser.contexts else browser.new_context()
    page = context.pages[0] if context.pages else context.new_page()
    page.goto("https://example.com")
    print(page.title())
    print(f"To view your browser in VNC go to: {vnc_url}")
    browser.close()

View the browser live at http://localhost:6080/vnc.html (noVNC).