Spaces:
Paused
Paused
File size: 1,513 Bytes
f26e640 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | services:
solver:
build: .
container_name: violetics-solver
restart: unless-stopped
depends_on:
byparr:
condition: service_healthy
ports:
- "9988:9988"
environment:
MAX_WORKERS: "8"
PORT: "9988"
# Byparr (Camoufox + playwright-captcha) replaces FlareSolverr.
# FS v3.4.6 times out on current CF interactive challenges; Byparr
# uses a stealthier fingerprint and actively tracks CF changes.
# Protocol is FlareSolverr-compatible except `max_timeout` is in
# seconds (not ms) — solver.py handles this.
CHALLENGE_PROXY_URL: "http://byparr:8191"
CHALLENGE_PROXY_KIND: "byparr"
volumes:
- solver-profile:/tmp/ts_profile
shm_size: "1gb"
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:9988/health',timeout=2).status==200 else 1)"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
byparr:
image: ghcr.io/thephaseless/byparr:latest
container_name: violetics-byparr
restart: unless-stopped
environment:
LOG_LEVEL: "WARNING"
TZ: "Asia/Jakarta"
shm_size: "1gb"
healthcheck:
test: ["CMD-SHELL", "python3 -c 'import urllib.request,sys; sys.exit(0 if urllib.request.urlopen(\"http://127.0.0.1:8191/docs\",timeout=3).status==200 else 1)'"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
volumes:
solver-profile:
|