Rota

Rota

Serveur proxy Go devant une liste de proxies amont

Rota est un serveur proxy écrit en Go qui répartit le trafic sur une liste de proxies amont. Les clients se connectent à un seul proxy HTTP, sur le port 8000, et chaque requête ressort par un proxy du stock, choisi au hasard (réglage par défaut), en round-robin, d'après le nombre de connexions actives ou à intervalle fixe. Les proxies amont peuvent être HTTP, HTTPS, SOCKS4, SOCKS4a ou SOCKS5.

Rota prend les proxies qu'on lui donne, en listes ip:port publiées à une URL ou en fichier, les teste, les géolocalise et écarte ceux qui ne répondent plus.

Le comparatif des outils de web scraping open source place cette couche réseau à côté des frameworks de crawl et des navigateurs anti-détection.

Pools par pays ou FAI, comptes avec chaîne de repli

  • Sources rafraîchies seules : chaque URL de liste a son protocole et son intervalle de mise à jour. Les nouveaux proxies sont géolocalisés puis versés dans les pools en synchronisation automatique.
  • Pools par pays, ville, FAI ou tag : chaque pool a sa propre rotation, dont un mode sticky qui garde la même IP pendant N requêtes.
  • Comptes avec chaîne de repli : http://user:pass@hôte:8000 envoie la requête dans le pool principal du compte, puis dans le suivant quand le premier n'a plus d'IP vivante. Chaque nouvel essai prend un proxy qui n'a pas encore échoué.
  • Health checks et alertes : vérification planifiée par pool, et webhook quand le nombre de proxies actifs passe sous un seuil.
  • Installation en une commande : docker compose up -d, sans fichier de configuration, avec certificat TLS automatique dès que SITE_ADDRESS porte un domaine.

Brancher Crawlee, Camoufox ou Agent Reach sur le port 8000

Crawlee for Python fait déjà tourner ses proxies dans son propre processus, en round-robin, avec un proxy fixe par session. Rota sort cette rotation du programme : plusieurs scrapers partagent le même port et les mêmes health checks.

Camoufox, avec l'option geoip, cale fuseau horaire, langue et position sur l'IP de sortie de son proxy. Un compte Rota rattaché à un pool d'un seul pays garde chaque IP de sortie dans ce pays.

Agent Reach ne réclame un proxy que sur un réseau qui bloque Reddit ou Twitter, et le passe en HTTP_PROXY aux outils qu'il appelle. Le port 8000 de Rota se branche de la même façon, à condition d'avoir des proxies à mettre derrière.

Authentification coupée par défaut et TimescaleDB obligatoire

Les proxies restent à trouver. La base démarre vide, et le projet ne propose ni liste ni offre de proxies.

Le proxy est ouvert à l'installation. L'authentification du port 8000 est désactivée par défaut, et toute requête passe tant qu'aucun compte proxy n'existe. Le docker-compose.yml publie pourtant ce port sur l'hôte.

TimescaleDB est obligatoire, même sans Docker. Le binaire autonome publié avec la 2.3.0 contient le proxy et l'API, sans le tableau de bord, et attend une TimescaleDB installée à part.

La géolocalisation passe par ip-api.com. Par défaut, Rota envoie les adresses des proxies à l'API gratuite d'ip-api.com, que ses conditions d'utilisation réservent à un usage non commercial. L'autre voie est une base MaxMind GeoLite2 locale.

Deux limites de la 2.3.0, lues dans le code. Le plafond requests_per_minute par compte, cité dans le README, est enregistré mais jamais appliqué, et les mots de passe des proxies amont sont stockés en clair. La 3.0, en pull request brouillon depuis le 25 septembre 2026, annonce la correction des deux et ajoute le SOCKS5 en entrée. En 2.x, le port 8000 n'accepte que des clients proxy HTTP, tunnel CONNECT compris pour les sites en HTTPS.

Cinq versions depuis juillet 2026, après près de huit mois sans release. La 2.1.0 a apporté les sources, les pools, les comptes et la géolocalisation, pour l'essentiel par la pull request d'un contributeur extérieur. La 2.3.0 date du 20 septembre 2026.

SOURCES

DÉPÔThttps://github.com/alpkeskin/rota
LICENCEApache-2.0