C'EST QUOI ?
Rota est une plateforme de rotation de proxies à auto-héberger. Le cœur est un serveur proxy écrit en Go qui écoute sur le port 8000 : tes clients s'y connectent comme sur n'importe quel proxy, et chaque requête ressort par une IP différente du pool selon la stratégie configurée. Autour, un dashboard Next.js suit l'état du pool en direct et TimescaleDB garde l'historique des requêtes pour l'analyse.
POURQUOI C'EST INTÉRESSANT ?
- Quatre stratégies de rotation : aléatoire, round-robin, moins de connexions actives, ou rotation à intervalle fixe. Les pools nommés ajoutent un mode
stickyqui garde la même IP sur N requêtes. - Import automatique des listes : tu déclares des URL pointant vers des listes
ip:port, chacune avec son protocole et son intervalle de rafraîchissement en minutes. Un scheduler rattrape les sources en retard toutes les minutes. - Géolocalisation et pools filtrés : chaque proxy est géolocalisé via ip-api.com, avec pays, région, ville, ISP et coordonnées. Les pools se construisent en mélangeant pays, villes, sous-chaînes d'ISP et tags maison, en synchronisation auto ou manuelle.
- Comptes proxy avec failover : des utilisateurs à mot de passe bcrypt, chacun rattaché à un pool principal et à des replis ordonnés.
http://user:pass@host:8000route dans cette chaîne, et une requête bascule sur le pool suivant quand le premier n'a plus d'IP vivante. - Health checks et alertes : vérifications asynchrones contre l'URL de ton choix, planification cron par pool (
*/30 * * * *), et webhook déclenché quand le nombre de proxies actifs tombe sous un seuil, avec cooldown réglable. - Multi-protocole et chaînage : HTTP, HTTPS, SOCKS4, SOCKS4a et SOCKS5, avec possibilité de chaîner vers un proxy amont type Burp Suite ou OWASP ZAP.
- Garde-fous côté auth : JWT sur toute l'API, blocage par IP après N échecs de login, verrou global au-delà d'un seuil de trafic, et validation d'origine sur les WebSockets. Le drapeau
TRUST_PROXY_HEADERSdécide siX-Forwarded-Forest cru, pour que le rate limit ne se contourne pas avec un en-tête forgé.
CAS D'USAGE
- Faire tourner des campagnes de collecte web derrière un pool d'IP qui se renouvelle tout seul.
- Répartir des tests de charge sur plusieurs points de sortie.
- Router du trafic de recherche en sécurité à travers une chaîne de proxies, avec Burp ou ZAP en amont.
- Donner à chaque équipe ou projet son propre compte proxy, avec un pool géographique dédié et des replis.
- Surveiller un parc de proxies achetés ou collectés et purger automatiquement les IP mortes.
Le déploiement par défaut tient dans un docker compose up -d, sans fichier de configuration : Caddy sert le dashboard, l'API et les WebSockets sur une seule origine, prend en charge le certificat TLS dès que SITE_ADDRESS porte un domaine, et le mot de passe admin initial est généré puis écrit dans les logs.
