Installation
-
Clone the repository
Terminal window git clone https://github.com/rayobyte-data/rayobrowse.gitcd rayobrowse -
Configure environment
Terminal window cp .env.example .envOpen
.envand setSTEALTH_BROWSER_ACCEPT_TERMS=trueto accept the license. The daemon will not create browsers until this is set. -
Start the container
Terminal window docker compose up -dDocker automatically pulls the
rayobyte/rayobrowse:latestimage for your architecture (x86_64 or ARM64). -
Verify
Terminal window curl http://localhost:9222/healthExpected response:
{"success": true, "data": {"status": "healthy", ...}}
What’s running
Section titled “What’s running”After docker compose up -d, you have:
| Port | Service |
|---|---|
9222 | Daemon API + CDP WebSocket proxy |
6080–6119 | Per-browser noVNC viewers (when STEALTH_BROWSER_NOVNC=true) |
Docker Compose details
Section titled “Docker Compose details”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-datamounted at/data - Environment: loaded from
.env
Install the SDK (optional)
Section titled “Install the SDK (optional)”The /connect endpoint works without any SDK. For programmatic control, install the SDK:
# Pythonpip install rayobrowse
# Node.jsnpm install rayobrowseTroubleshooting
Section titled “Troubleshooting”Can’t connect to daemon
Section titled “Can’t connect to daemon”curl http://localhost:9222/healthIf this fails, check that the container is running:
docker compose psdocker compose logs -fTERMS_REQUIRED error
Section titled “TERMS_REQUIRED error”Set STEALTH_BROWSER_ACCEPT_TERMS=true in your .env, then restart:
docker compose up -dEnvironment variable changes not taking effect
Section titled “Environment variable changes not taking effect”The container reads .env at startup. After editing, recreate the container:
docker compose up -d