{"id":13442984,"url":"https://github.com/osminogin/docker-tor-simple","last_synced_at":"2025-04-04T18:05:36.830Z","repository":{"id":50579811,"uuid":"49027076","full_name":"osminogin/docker-tor-simple","owner":"osminogin","description":"Simplest minimal container for Tor anonymity software based on Alpine","archived":false,"fork":false,"pushed_at":"2024-10-11T06:36:13.000Z","size":60,"stargazers_count":152,"open_issues_count":0,"forks_count":25,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-18T15:04:30.180Z","etag":null,"topics":["alpine","anonymize","docker","docker-image","docker-security","docker-services","minimalist","socksv5","tor","tor-anonymity","tor-hidden-services","tor-network","tor-nodes","tor-proxy","tor-relay"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/osminogin/tor-simple/","language":"Dockerfile","has_issues":false,"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/osminogin.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":"2016-01-04T22:27:15.000Z","updated_at":"2024-10-11T06:36:17.000Z","dependencies_parsed_at":"2023-11-12T10:25:19.190Z","dependency_job_id":"b8d0d2a3-0c66-493a-843c-4e2bb397ce36","html_url":"https://github.com/osminogin/docker-tor-simple","commit_stats":{"total_commits":123,"total_committers":7,"mean_commits":"17.571428571428573","dds":"0.26016260162601623","last_synced_commit":"5994f1d2a82f6f85d10dca808095e688fb8e7455"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osminogin%2Fdocker-tor-simple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osminogin%2Fdocker-tor-simple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osminogin%2Fdocker-tor-simple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osminogin%2Fdocker-tor-simple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osminogin","download_url":"https://codeload.github.com/osminogin/docker-tor-simple/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247226213,"owners_count":20904465,"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","anonymize","docker","docker-image","docker-security","docker-services","minimalist","socksv5","tor","tor-anonymity","tor-hidden-services","tor-network","tor-nodes","tor-proxy","tor-relay"],"created_at":"2024-07-31T03:01:54.357Z","updated_at":"2025-04-04T18:05:36.809Z","avatar_url":"https://github.com/osminogin.png","language":"Dockerfile","readme":"# docker-tor-simple\n\n[![build images](https://github.com/osminogin/docker-tor-simple/workflows/build%20images/badge.svg)](https://github.com/osminogin/docker-tor-simple/actions?query=workflow%3A%22build+images%22) [![](https://images.microbadger.com/badges/version/osminogin/tor-simple.svg)](https://microbadger.com/images/osminogin/tor-simple) [![latest version](https://github.com/osminogin/docker-tor-simple/actions/workflows/version.yml/badge.svg)](https://github.com/osminogin/docker-tor-simple/actions?query=workflow%3A%22latest+version%22) [![](https://img.shields.io/docker/stars/osminogin/tor-simple.svg)](https://hub.docker.com/r/osminogin/tor-simple) [![](https://images.microbadger.com/badges/image/osminogin/tor-simple.svg)](https://microbadger.com/images/osminogin/tor-simple) [![License: MIT](https://img.shields.io/badge/license-MIT-black.svg)](https://github.com/osminogin/docker-tor-simple/blob/master/LICENSE)\n\n**Smallest minimal docker container for Tor network proxy daemon.**\n\nSuitable for relay, exit node or hidden service modes with SOCKSv5 proxy enabled. It works well as a single self-contained container or in cooperation with other containers (like `nginx`) for organizing complex hidden services on the Tor network.\n\nThe image is based on great Alpine Linux distribution so it is has extremely low size (about 8 MB).\n\nService uses latest available version of [Tor package](https://pkgs.alpinelinux.org/package/edge/community/x86_64/tor) from [Edge repo](https://wiki.alpinelinux.org/wiki/Edge).\n\n## Port\n\n* `9050` SOCKSv5 (without auth)\n\n## Volumes\n\n* `/var/lib/tor` data dir.\n\n\n## Getting started\n\n### Installation\n\nAutomated builds of the image are available on [Docker Hub](https://hub.docker.com/r/osminogin/tor-simple/) and is the recommended method of installation.\n\n```bash\ndocker pull osminogin/tor-simple\n```\n\nAlternatively you can build the image yourself.\n\n```bash\nexport PROJECT_NAME=tor-node   # docker image name\nmake build DOCKER_IMAGE=$PROJECT_NAME\n```\n\n\n### Quickstart\n\n```bash\nexport PROJECT_NAME=tor-local   # changing default name\nmake build DOCKER_IMAGE=$PROJECT_NAME\nmake run\n\n# or with docker-compose ...\ndocker-compose up\n\n# or altenativly run docker directly ...\ndocker run --publish 127.0.0.1:9050:9050 -i $PROJECT_NAME\n```\n\nAfter start Tor proxy available on `localhost:9050`\n\n**Warning! Don't bind SOCKSv5 port 9050 to public network addresses if you don't know exactly what you are doing (is much better bind to `localhost` as in the example above)**.\n\n\n## Advanced usage\n\nYou can copy original tor config from container, modify and mount them back inside. Changing the configuration file is required for running Tor as exit node, relay or bridge. For some operation modes you need to expose additional ports (9001, 9030, 9051).\n\n```bash\n# Copy config  from running container\ndocker cp tor:/etc/tor/torrc $HOME/torrc\n# ... modify torrc and run again\n\n# Start more complex example with updated config\ndocker run --rm --name tor \\\n  --publish 127.0.0.1:9050:9050 \\\n  --expose 9001 --publish 9001:9001 \\ # ORPort\n  --expose 9030 --publish 9030:9030 \\\n  --expose 9051 --publish 9051:9051 \\\n  --volume $HOME/torrc:/etc/tor/torrc:ro \\\n  osminogin/tor-simple\n```\n\n## Unit file for systemd\n\n#### tor.service\n\n```ini\n[Unit]\nDescription=Tor service\nWants=network-online.target\nRequires=docker.service\nAfter=docker.service network.target network-online.target\n\n[Service]\nTimeoutStartSec=0\nRestart=always\nRestartSec=10s\nExecStartPre=/usr/bin/docker pull osminogin/tor-simple\nExecStart=/usr/bin/docker run --rm --name tor -p 127.0.0.1:9050:9050 osminogin/tor-simple\nExecStop=/usr/bin/docker stop tor\n\n[Install]\nWantedBy=multi-user.target\n```\n\n\n## Examples\n\nExample webserver deployment config with microservice architecture to setup Tor hidden service.\n\n\n#### docker-compose.yml\n\n```yaml\nversion: '3.7'\nservices:\n\n  tor-node:\n    image: osminogin/tor-simple\n    restart: always\n    depends_on:\n      - nginx\n\n  nginx:\n    image: nginx\n    restart: always\n```\n\n## License\n\nSee [LICENSE](https://github.com/osminogin/docker-tor-simple/blob/master/LICENSE)\n","funding_links":[],"categories":["Dockerfile"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosminogin%2Fdocker-tor-simple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosminogin%2Fdocker-tor-simple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosminogin%2Fdocker-tor-simple/lists"}