Skip to content

Installation

  1. Clone the repository

    Terminal window
    git clone https://github.com/rayobyte-data/rayobrowse.git
    cd rayobrowse
  2. Configure environment

    Terminal window
    cp .env.example .env

    Open .env and set STEALTH_BROWSER_ACCEPT_TERMS=true to accept the license. The daemon will not create browsers until this is set.

  3. Start the container

    Terminal window
    docker compose up -d

    Docker automatically pulls the rayobyte/rayobrowse:latest image for your architecture (x86_64 or ARM64).

  4. Verify

    Terminal window
    curl http://localhost:9222/health

    Expected response:

    {"success": true, "data": {"status": "healthy", ...}}

After docker compose up -d, you have:

PortService
9222Daemon API + CDP WebSocket proxy
6080–6119Per-browser noVNC viewers (when STEALTH_BROWSER_NOVNC=true)

The docker-compose.yml from the repository:

  • Image: rayobyte/rayobrowse:latest
  • Restart policy: unless-stopped
  • Shared memory: 2g (required for Chromium)
  • Security: seccomp=unconfined (required for Chrome sandbox)
  • Volume: rayobrowse-data mounted at /data
  • Environment: loaded from .env

The /connect endpoint works without any SDK. For programmatic control, install the SDK:

Terminal window
# Python
pip install rayobrowse
# Node.js
npm install rayobrowse
Terminal window
curl http://localhost:9222/health

If this fails, check that the container is running:

Terminal window
docker compose ps
docker compose logs -f

Set STEALTH_BROWSER_ACCEPT_TERMS=true in your .env, then restart:

Terminal window
docker compose up -d

Environment variable changes not taking effect

Section titled “Environment variable changes not taking effect”

The container reads .env at startup. After editing, recreate the container:

Terminal window
docker compose up -d