- FastAPI service (port 8510) wrapping scraper + trust scorer - Playwright+Xvfb+stealth transport to bypass eBay Kasada bot protection - li.s-card selector migration (eBay markup change from li.s-item) - Three-layer caching: HTML (5min), phash (permanent), market comp (6h SQLite) - Batch DB writes (executemany + single commit) — warm requests <1s - Unique Xvfb display counter (:200–:299) prevents lock file collisions - Vue 3 nginx web service (port 8509) proxying /api/ to FastAPI - Auction card de-emphasis: opacity 0.72 for listings with >1h remaining - 35 scraper unit tests updated for new li.s-card fixture markup - tests/ volume-mounted in compose.override.yml for live test editing
21 lines
492 B
YAML
21 lines
492 B
YAML
services:
|
|
api:
|
|
build:
|
|
context: ..
|
|
dockerfile: snipe/Dockerfile
|
|
network_mode: host
|
|
volumes:
|
|
- ../circuitforge-core:/app/circuitforge-core
|
|
- ./api:/app/snipe/api
|
|
- ./app:/app/snipe/app
|
|
- ./data:/app/snipe/data
|
|
- ./tests:/app/snipe/tests
|
|
environment:
|
|
- RELOAD=true
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/web/Dockerfile
|
|
volumes:
|
|
- ./web/src:/app/src # not used at runtime but keeps override valid
|