services: # Selenium Grid with Chromium (or Chrome) selenium: build: ./selenium-patch container_name: selenium shm_size: 2gb ports: - "${GRID_DASHBOARD_PORT}:4444" environment: - SE_VNC_NO_PASSWORD=1 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:4444/status"] interval: 10s timeout: 5s retries: 5 start_period: 30s # Proxy needed for solving Cloudflare's anti-bot protection. # It uses a Chrome to get the necessary cookies and then forwards the WebSocket connection to Omegle omegle-proxy: build: ./proxy container_name: omegle-proxy depends_on: selenium: condition: service_healthy environment: - CF_WAIT_TIME=${CF_WAIT_TIME} - TARGET_URL=https://omegleweb.io - TARGET_WS_URL=wss://omegleweb.io:8443/socket.io/?EIO=4&transport=websocket - LOCAL_HOST=0.0.0.0 - LOCAL_PORT=8765 - HEADLESS=false - SELENIUM_URL=http://selenium:4444 omegle-bot: build: ./bot container_name: omegle-bot environment: - MATRIX_HOMESERVER=${MATRIX_HOMESERVER} - MATRIX_USERNAME=${MATRIX_USERNAME} - MATRIX_PASSWORD=${MATRIX_PASSWORD} - OMEGLE_WEBSOCKET_URL=ws://omegle-proxy:8765 - SELENIUM_URL=${SELENIUM_GRID_URL} - DB_PATH=/data/omegle.db volumes: - omegle-bot-data:/data depends_on: omegle-proxy: condition: service_started restart: unless-stopped volumes: omegle-bot-data: