Manages HTTP proxies, performs health checks, stores their state in SQLite, and provides authenticated endpoints for allocation and monitoring.
- Proxy allocation and monitoring API
- Automatic health checks for proxies
- Maintains proxy stats: alive/dead status, score, usage, success/fail counts, latency
- SQLite database storage
- Optional web dashboard for visualization and proxy management
- CLI-friendly: interact via
curlor any HTTP client
- Clone the repository
git clone https://github.com/yourusername/proxy-pool.git
cd proxy-pool- Install Go dependencies
go mod tidy- Create your configuration file
Create config.yaml in the project root. You can refer to config.example.yaml for the required structure — make sure you enter your own proxy URLs.
- Create your env file
Create .env file in the project root. You can copy .env.example for the required variables.
Start the API server with:
make runThis starts the API server on http://localhost:8080.
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}'curl -X POST http://localhost:8080/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}'curl -H "Authorization: Bearer <TOKEN>" http://localhost:8080/proxiescurl -X POST -H "Authorization: Bearer <TOKEN>" http://localhost:8080/allocatecurl -H "Authorization: Bearer <TOKEN>" http://localhost:8080/proxies/statsmake webThe web dashboard allows you to:
- View proxies and their status
- Allocate a proxy with one click
- View historical proxy stats