{"id":13585476,"url":"https://github.com/u1234x1234/torpool","last_synced_at":"2025-04-07T10:30:57.073Z","repository":{"id":73732784,"uuid":"176076944","full_name":"u1234x1234/torpool","owner":"u1234x1234","description":"Containerized pool of multiple Tor instances with load balancing and HTTP proxy.","archived":false,"fork":false,"pushed_at":"2022-03-20T06:38:01.000Z","size":21,"stargazers_count":51,"open_issues_count":2,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-06T03:42:48.416Z","etag":null,"topics":["alpine","docker","haproxy","privoxy","proxy","python","tor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/u1234x1234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-17T08:50:13.000Z","updated_at":"2024-01-21T16:12:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"862a0736-34ec-48e5-8d0e-8ae43bf8fc01","html_url":"https://github.com/u1234x1234/torpool","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u1234x1234%2Ftorpool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u1234x1234%2Ftorpool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u1234x1234%2Ftorpool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u1234x1234%2Ftorpool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/u1234x1234","download_url":"https://codeload.github.com/u1234x1234/torpool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247636023,"owners_count":20970847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","docker","haproxy","privoxy","proxy","python","tor"],"created_at":"2024-08-01T15:04:57.984Z","updated_at":"2025-04-07T10:30:57.065Z","avatar_url":"https://github.com/u1234x1234.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"[![Docker Pulls](https://img.shields.io/docker/cloud/build/u1234x1234/torpool.svg?style=flat-square)](https://hub.docker.com/r/u1234x1234/torpool/)\n[![Size](https://images.microbadger.com/badges/image/u1234x1234/torpool.svg)](https://hub.docker.com/r/u1234x1234/torpool/)\n\n# torpool\n\nContainerized pool of multiple Tor instances with load balancing and HTTP proxy.\n\n# Key features\n\n* Multiple [Tor](https://www.torproject.org/) instances with a single endpoint for the end user\n* Easy configured (IP rotation, country selection of the exit node, etc)\n* Lightweight alpine based Docker image\n* HTTP proxy with [Privoxy](https://www.privoxy.org/)\n* HTTP/Socks load balancing with [HAProxy](http://www.haproxy.org/)\n* Does not using root user inside Docker\n\n```\n              +-----------------------------------------------+           \n              | Docker                                        |           \n              |                                               |           \n              |                   +-------+            +----+ |           \n              |                   |Privoxy|------------|Tor1| |           \n              |                   +-------+        |   +----+ |           \n+------+      | +-------+         +-------+        |   +----+ |           \n|Client|--------|Haproxy|-------- |Privoxy|--------|---|Tor2| |           \n+------+      | +-------+         +-------+        |   +----+ |           \n              |     |             +-------+        |   +----+ |           \n              |     |             |Privoxy|--------|---|Tor3| |           \n              |     |             +-------+        |   +----+ |           \n              |     |                              |          |           \n              |     |                              |          |           \n              |     +------------------------------+          |           \n              |                                               |           \n              +-----------------------------------------------+           \n```\n\n# Usage\n\nStart 5 Tor instances:\n```bash\ndocker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --Tors=5\n```\n\nHTTP proxy is accessible at port 9300:\n```bash\ncurl --proxy localhost:9300 http://ipinfo.io/ip\n```\n\nSocks is accessible at port 9200: \n```bash\ncurl --socks5 localhost:9200 http://ipinfo.io/ip\n```\n\nTo make Tor instances rotate:\n```\ndocker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --MaxCircuitDirtiness 30 --NewCircuitPeriod 30\n```\n\nUse only US exit nodes:\n```\ndocker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --ExitNodes {us}\n```\n\n[List of available Tor options](https://www.torproject.org/docs/tor-manual.html.en)\n\nTo view HAProxy stats page:\n```\ndocker run -d -p 9200:9200 -p 9300:9300 -p 9500:9500 u1234x1234/torpool:1.0.3\n```\nThen open in browser http://localhost:9500/haproxy_stats and enter HAProxy username and password. The default username is `haproxy`, password is `password`, but it can be changed using using the volume mounting:\n```\necho \"pss\" \u003e pass_file\ndocker run -d -p 9200:9200 -p 9300:9300 -p 9500:9500 -v \"$PWD/pass_file\":/run/secrets/haproxy_password u1234x1234/torpool:1.0.3\n```\nExpected password location: `/run/secrets/haproxy_password`, username: `/run/secrets/haproxy_username`.\n\n#### Docker-compose example:\n```yaml\nversion: '3'\nservices:\n  torpool:\n    image: u1234x1234/torpool:1.0.3\n    command: ['--Tors', '2', '--NewCircuitPeriod', '30', '--MaxCircuitDirtiness', '30']\n    container_name: torpool\n    ports:\n      - \"9200:9200\"\n      - \"9300:9300\"\n      - \"9500:9500\"\n```\n\n# Why\n\nThere is a lot of great projects on github, but non of them provides all the options listed above. Some of them:\n\n* https://github.com/trimstray/multitor\n* https://github.com/evait-security/docker-multitor\n* https://github.com/zet4/alpine-tor\n* https://github.com/rdsubhas/docker-tor-privoxy-alpine\n* https://github.com/Negashev/docker-haproxy-tor\n* https://github.com/marcelmaatkamp/docker-alpine-tor\n* https://github.com/mattes/rotating-proxy\n* https://github.com/srounet/docker-tor\n* https://github.com/dperson/torproxy\n* https://github.com/srounet/docker-tor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fu1234x1234%2Ftorpool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fu1234x1234%2Ftorpool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fu1234x1234%2Ftorpool/lists"}