docs: Add Evomi residential proxy API documentation
- Document priority order (Evomi API first, DB fallback) - List environment variables and defaults - Show K8s secret location - Explain proxy URL format with geo targeting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
29
CLAUDE.md
29
CLAUDE.md
@@ -248,6 +248,35 @@ All other browsers are filtered out. Uses `intoli/user-agents` library for reali
|
||||
|
||||
These binaries mimic real browser TLS fingerprints to avoid detection.
|
||||
|
||||
### Evomi Residential Proxy API
|
||||
|
||||
Workers use Evomi's residential proxy API for geo-targeted proxies on-demand.
|
||||
|
||||
**Priority Order**:
|
||||
1. Evomi API (if EVOMI_USER/EVOMI_PASS configured)
|
||||
2. DB proxies (fallback if Evomi not configured)
|
||||
|
||||
**Environment Variables**:
|
||||
| Variable | Description | Default |
|
||||
|----------|-------------|---------|
|
||||
| `EVOMI_USER` | API username | - |
|
||||
| `EVOMI_PASS` | API key | - |
|
||||
| `EVOMI_HOST` | Proxy host | `rpc.evomi.com` |
|
||||
| `EVOMI_PORT` | Proxy port | `1000` |
|
||||
|
||||
**K8s Secret**: Credentials stored in `scraper-secrets`:
|
||||
```bash
|
||||
kubectl get secret scraper-secrets -n dispensary-scraper -o jsonpath='{.data.EVOMI_PASS}' | base64 -d
|
||||
```
|
||||
|
||||
**Proxy URL Format**: `http://{user}_{session}_{geo}:{pass}@{host}:{port}`
|
||||
- `session`: Worker ID for sticky sessions
|
||||
- `geo`: State code (e.g., `arizona`, `california`)
|
||||
|
||||
**Files**:
|
||||
- `src/services/crawl-rotator.ts` - `getEvomiConfig()`, `buildEvomiProxyUrl()`
|
||||
- `src/tasks/task-worker.ts` - Proxy initialization order
|
||||
|
||||
---
|
||||
|
||||
## Bulk Task Workflow (Updated 2025-12-13)
|
||||
|
||||
Reference in New Issue
Block a user