Key Highlights • Installation • Configuration • Quick Start • Contributing • What's Next
Rota is a lightning-fast, self-hosted proxy rotation powerhouse that revolutionizes how you manage and rotate proxies. Built with performance at its core, this robust tool handles thousands of requests per second while seamlessly rotating IPs to maintain your anonymity. Whether you're conducting intensive web scraping operations, performing security research, or need reliable proxy management, Rota delivers enterprise-grade proxy rotation capabilities in an open-source package.
- 🚀 Self-hosted solution with complete control over your proxy infrastructure
- ⚡ Blazing-fast performance optimized for high-throughput operations
- 🔄 Advanced proxy rotation with intelligent IP management
- 🌍 Supports HTTP, SOCKS v4(A) & v5 Protocols
- ✅ Built-in proxy checker to maintain a healthy proxy pool
- 🌐 Perfect companion for web scraping and data collection projects
- 🔍 Cross-platform compatibility (Windows, Linux, Mac, Raspberry Pi)
- 🔗 Easy integration with upstream proxies (e.g., Burp Suite) and proxy chains (e.g., OWASP ZAP)
go install -v github.com/alpkeskin/rota/cmd/rota@latest
docker pull ghcr.io/alpkeskin/rota:latest
docker run \
--name rota-proxy \
-p 8080:8080 \
-p 8081:8081 \
-v "$(pwd)/config.yml:/etc/rota/config.yml" \
-v "$(pwd)/proxies.txt:/etc/rota/proxies.txt" \
rota:latest --config /etc/rota/config.yml
note: If API is not enabled, dont use -p 8081:8081
Example configuration file can be found in config.yml
proxy_file
: Path to the proxy filefile_watch
: Watch for file changes and reload proxiesproxy
: Proxy configurationsport
: Proxy server portauthentication
: Authentication configurationsenabled
: Enable basic authenticationusername
: Usernamepassword
: Password
rotation
: Rotation configurationsmethod
: Rotation method (random, roundrobin)remove_unhealthy
: Remove unhealthy proxies from rotationfallback
: Recommended for continuous operation in case of proxy failuresfallback_max_retries
: Number of retries for fallback. If this is reached, the response will be returned "bad gateway"timeout
: Timeout for proxy requestsretries
: Number of retries to get a healthy proxy
api
: API configurationsenabled
: Enable API endpointsport
: API server port
healthcheck
: Healthcheck configurationsoutput
: Output method (file, stdout)file
: Path to the healthcheck filetimeout
: Timeout for healthcheck requestsworkers
: Number of workers to check proxiesurl
: URL to check proxiesstatus
: Status code to check proxiesheaders
: Headers to check proxies
logging
: Logging configurationsstdout
: Log to stdoutfile
: Path to the log filelevel
: Log level (debug, info, warn, error, fatal)
Proxies file should be in the following format:
scheme://ip:port
Example:
socks5://192.111.137.37:18762
rota --config config.yml
Default config file path is config.yml
so you can use rota
without any arguments.
rota --config config.yml --check
Contributions are welcome! Please feel free to submit a PR. If you have any questions, please feel free to open an issue or contact me on LinkedIn. Please ensure your pull requests are meaningful and add value to the project. Pull requests that do not contribute significant improvements or fixes will not be accepted.
- Dashboard for monitoring and managing proxies
- Add more proxy rotation methods (e.g., least_connections)
- Add CA certificates for Rota
- Performance and memory usage improvements
- Add more healthcheck methods (e.g., ping)
- Add database support for enterprise usage (Not planned)
Thanks for your interest in Rota. I hope you enjoy using it.