2.9 KiB
2.9 KiB
Clean Proxys — "Pleiades"
Residential + dedicated proxy store, no-KYC, Bitcoin checkout. SOCKS5 & HTTP.
clean-proxys.thetempleofdoom.com (Cloudflare fleet tunnel). Node CT 777 @ 10.30.20.178.
What it is
A white-label proxy middleman. Customers (humans and AI agents) buy clean residential/ISP/datacenter proxies with Bitcoin. The gateway authenticates each user, geo-targets their egress through the IPRoyal upstream, and meters GB usage.
Three tiers:
- Residential rotating — per-GB, any country/city on the fly.
- ISP Dedicated — one clean residential-ISP IP (premium, $4/30d wholesale).
- Datacenter Dedicated — one static DC IP (budget, $1.80/30d wholesale).
Architecture
customer / agent
│ HTTPS
▼
CF tunnel → nginx → Flask storefront (gunicorn 127.0.0.1:5000, SQLite)
│ ├─ BTCPay webhook → activate on payment
│ ├─ /admin (revenue, users, orders, inventory)
│ └─ /api/v1/* (agent discovery + one-call purchase)
▼
gateway.py (SOCKS5 :1080 + HTTP CONNECT :8080) ← per-user auth → geo → IPRoyal
▼
IPRoyal upstream (geo.iproyal.com:12321 residential / dedicated IPs)
Components
gateway.py— asyncio SOCKS5 + HTTP CONNECT relay. Per-user scrypt auth, geo/sticky rewrite, GB byte metering. No traffic-content logging.app.py— Flask storefront + admin + agent API + BTCPay webhook.db.py— SQLite schema + auth helpers (scrypt).iproyal.py— IPRoyal reseller API wrapper (balance/products/orders).admin.py— CLI (create-user, set-country, add-balance, list).provision.py— dedicated-IP provisioning poll (systemdprovision.timer).
Services (systemd)
gateway.service, app.service, provision.timer (5-min poll).
Agent API
GET /llms.txt— machine-readable service descriptionGET /api/v1/info,GET /api/v1/plansPOST /api/v1/proxy— one-call purchase → creds + BTCPay checkout URLGET /api/v1/order/<id>— payment statusGET /api/v1/dedicated/locations?product=3|9— dedicated location catalog
Key facts (IPRoyal)
- Residential:
geo.iproyal.com:12321, geo suffix on the password (_country-US_city-NewYork_session-XXXXXXXX_lifetime-30m). - Dedicated: connect directly to the IP —
socks5://user:pass@IP:12324,http://user:pass@IP:12323. Order viaapid.iproyal.com/v1/reseller(X-Access-Token), pollGET /orders/{id}untilconfirmed, readproxy_data.proxies[0]= {username, password, ip}.
Deploy
cd ~/pleiades && tar czf /tmp/e.tar.gz . && scp /tmp/e.tar.gz root@10.30.20.85:/tmp/ \
&& ssh root@10.30.20.85 "pct push 777 /tmp/e.tar.gz /tmp/e.tar.gz && pct exec 777 -- \
bash -c 'cd /opt/pleiades && tar xzf /tmp/e.tar.gz && systemctl restart gateway app'"
config.json holds secrets (gitignored); see config.example.json.