How bariskisir/torrotatinghttpproxy works
TorRotatingHttpProxy accepts unauthenticated HTTP and CONNECT proxy traffic, routes it through verified Tor exits, and rotates or reuses those exits according to policy. Its companion dashboard exposes live instance status, IP history, and a built-in proxy load test. The graph follows the documented workflow and sampled ownership; Tor circuit and proxy details are partly documented but not fully shown in the excerpts.
Main entry points: run.go Runtime orchestration · web.go Dashboard API · proxy.go HTTP proxy · tor.go Tor workers
Components 18
Application runtime
- CLI entry
cmd/torproxy/main.go - Configuration
internal/app/config.go - Runtime orchestration
internal/app/run.go
Tor lifecycle
- Tor workers
internal/app/tor.go - Control protocol
internal/app/control.go
Proxy routing
- Verified exit pool
internal/app/pool.go - HTTP proxy
internal/app/proxy.go
Dashboard and state
- SQLite history
- IP history store
internal/app/store.go - Dashboard API
internal/app/web.go - Proxy load tester
internal/app/loadtest.go - Dashboard UI
internal/app/static/app.js
Other components
- Operator
- Proxy client
- Dashboard browser
- HTTP destination
- IP check service
- Tor processes
Connections 26
- Operator → CLI entry: starts
- CLI entry → Configuration: loads
- CLI entry → Runtime orchestration: runs
- Runtime orchestration → IP history store: opens
- Runtime orchestration → Verified exit pool: creates
- Runtime orchestration → Tor workers: starts
- Runtime orchestration → HTTP proxy: serves
- Runtime orchestration → Dashboard API: serves
- Runtime orchestration → Proxy load tester: creates
- Tor workers → Tor processes: starts
- Tor workers → Control protocol: commands
- Tor workers → IP check service: checks exits
- Tor workers → Verified exit pool: publishes exits
- Verified exit pool → IP history store: reserves IPs
- IP history store → SQLite history: reads/writes
- Proxy client → HTTP proxy: sends requests
- HTTP proxy → Verified exit pool: acquires lease
- HTTP proxy → Tor processes: dials via lease
- HTTP proxy → HTTP destination: forwards traffic
- Dashboard browser → Dashboard API: requests API
- Dashboard API → Verified exit pool: snapshots
- Dashboard API → IP history store: lists IPs
- Dashboard API → Proxy load tester: starts/stops
- Dashboard API → Dashboard UI: serves assets
- Dashboard UI → Dashboard API: fetches updates
- Proxy load tester → HTTP proxy: tests via proxy