{"id":19392092,"url":"https://github.com/j3lte/debian-torproxy","last_synced_at":"2026-05-03T12:32:12.889Z","repository":{"id":73229214,"uuid":"561613348","full_name":"j3lte/debian-torproxy","owner":"j3lte","description":"Tor + Haproxy + (optional) Privoxy = Anonymizer","archived":false,"fork":false,"pushed_at":"2023-03-31T14:17:08.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-07T10:11:41.747Z","etag":null,"topics":["debian","docker","proxy","tor","tor-proxy"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/j3lte.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":"2022-11-04T04:27:09.000Z","updated_at":"2024-12-06T13:57:32.000Z","dependencies_parsed_at":"2023-05-31T08:00:48.822Z","dependency_job_id":null,"html_url":"https://github.com/j3lte/debian-torproxy","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3lte%2Fdebian-torproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3lte%2Fdebian-torproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3lte%2Fdebian-torproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3lte%2Fdebian-torproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j3lte","download_url":"https://codeload.github.com/j3lte/debian-torproxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240557486,"owners_count":19820360,"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":["debian","docker","proxy","tor","tor-proxy"],"created_at":"2024-11-10T10:30:29.435Z","updated_at":"2026-05-03T12:32:07.786Z","avatar_url":"https://github.com/j3lte.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Docker Pulls](https://img.shields.io/docker/pulls/j3lte/debian-torproxy.svg)](https://hub.docker.com/r/j3lte/debian-torproxy/) [![Twitter Follow](https://img.shields.io/twitter/follow/j3lte.svg?style=social)](https://twitter.com/j3lte)\n\n# j3lte/debian-torproxy\n\n```\n               Docker Container\n               -------------------------------------\n               (Optional)           \u003c-\u003e Tor Proxy 1\nClient \u003c----\u003e   Privoxy \u003c-\u003e HAproxy \u003c-\u003e Tor Proxy 2\n                                    \u003c-\u003e Tor Proxy n\n```\n\n## Based on\n\n* [zet4/alpine-tor](https://github.com/zet4/alpine-tor)\n\n## Why?\n\n- Tor is a great tool to anonymize your traffic, but it's not a proxy.\n- Lots of IP addresses. One single endpoint for your client.\n- Load-balancing by HAproxy.\n- Optionaly adds support for [Privoxy](https://www.privoxy.org/) using\n`-e privoxy=1`, useful for http (default `8118`, changable via\n`-e privoxy_port=\u003cport\u003e`) proxy forward and ad removal.\n\n## Environment Variables\n\n| Variable                           | Type    | Description                                                        | Default           |\n| ---------------------------------- | ------- | ------------------------------------------------------------------ | ----------------- |\n| `tors`                             | Integer | Number of tor instances to run                                     | 20                |\n| `new_circuit_period`               | Integer | NewCircuitPeriod parameter value in seconds                        | 120               |\n| `max_circuit_dirtiness`            | Integer | MaxCircuitDirtiness parameter value in seconds                     | 600               |\n| `circuit_build_timeout`            | Integer | CircuitBuildTimeout parameter value in seconds                     | 60                |\n| `privoxy`                          | Boolean | Set to run insance of privoxy in front of haproxy.                 | 0                 |\n| `privoxy_port`                     | Integer | Port for privoxy                                                   | 8118              |\n| `privoxy_permit`                   | String  | Space-separated list of source addresses for permit-access option. | *Unset*           |\n| `privoxy_deny`                     | String  | Space-separated list of source addresses for deny-access option.   | *Unset*           |\n| `haproxy_port`                     | Integer | Port for haproxy                                                   | 5566              |\n| `haproxy_stats`                    | Integer | Port for haproxy monitor.                                          | 2090              |\n| `haproxy_login` and `haproxy_pass` | String  | BasicAuth config for haproxy monitor                               | admin *(both)*    |\n| `test_url`                         | String  | URL for health check throught Tor proxy.                           | http://google.com |\n| `test_status`                      | Integer | HTTP status code for `test_url` in working case.                   | 302               |\n\n## Usage\n\n```bash\n# build docker container\ndocker build -t j3lte/debian-torproxy:latest .\n\n# ... or pull docker container (Docker Hub)\ndocker pull j3lte/debian-torproxy:latest\n\n# ... or pull docker container (Github)\ndocker pull ghcr.io/j3lte/debian-torproxy:latest\n\n# start docker container\ndocker run -d -p 5566:5566 -p 2090:2090 -e tors=25 j3lte/debian-torproxy\n\n# start docker with privoxy enabled and exposed\ndocker run -d -p 8118:8118 -p 2090:2090 -e tors=25 -e privoxy=1 j3lte/debian-torproxy\n\n# test with ...\ncurl --socks5 localhost:5566 http://httpbin.org/ip\n\n# or if privoxy enabled ...\ncurl --proxy localhost:8118 http://httpbin.org/ip\n\n# or to run chromium with your new found proxy\nchromium --proxy-server=\"http://localhost:8118\" \\\n    --host-resolver-rules=\"MAP * 0.0.0.0 , EXCLUDE localhost\"\n\n# monitor\n# auth login:admin\n# auth pass:admin\nhttp://localhost:2090 or http://admin:admin@localhost:2090\n\n# start docket container with new auth\ndocker run -d -p 5566:5566 -p 2090:2090 -e haproxy_login=MySecureLogin \\\n    -e haproxy_pass=MySecurePassword j3lte/debian-torproxy\n```\n\n## Docker Compose\n\n```yaml\n---\nservices:\n  torproxy:\n    image: j3lte/debian-torproxy\n    restart: unless-stopped\n    ports:\n      - \"8118:8118\"\n      - \"5566:5566\"\n      - \"2090:2090\"\n    environment:\n      tors: 25\n      privoxy: 1\n```\n\n## Further Readings\n\n * [Tor Manual](https://www.torproject.org/docs/tor-manual.html.en)\n * [Tor Control](https://www.thesprawl.org/research/tor-control-protocol/)\n * [HAProxy Manual](http://cbonte.github.io/haproxy-dconv/index.html)\n * [Privoxy Manual](https://www.privoxy.org/user-manual/)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj3lte%2Fdebian-torproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj3lte%2Fdebian-torproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj3lte%2Fdebian-torproxy/lists"}