{"id":20030034,"url":"https://github.com/hongkongkiwi/docker-shadowsocks-libev","last_synced_at":"2026-05-08T02:05:06.858Z","repository":{"id":150836222,"uuid":"94452451","full_name":"hongkongkiwi/docker-shadowsocks-libev","owner":"hongkongkiwi","description":"Docker for setting up a shadowsocks-libev client or server (Private SOCKS5 Proxy).","archived":false,"fork":false,"pushed_at":"2017-06-17T03:33:37.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-24T08:12:28.375Z","etag":null,"topics":["docker","proxy","shadowsocks","shadowsocks-libev"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hongkongkiwi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-06-15T15:20:28.000Z","updated_at":"2017-09-09T00:51:39.000Z","dependencies_parsed_at":"2023-05-21T21:00:19.146Z","dependency_job_id":null,"html_url":"https://github.com/hongkongkiwi/docker-shadowsocks-libev","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongkongkiwi%2Fdocker-shadowsocks-libev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongkongkiwi%2Fdocker-shadowsocks-libev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongkongkiwi%2Fdocker-shadowsocks-libev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongkongkiwi%2Fdocker-shadowsocks-libev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hongkongkiwi","download_url":"https://codeload.github.com/hongkongkiwi/docker-shadowsocks-libev/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241460204,"owners_count":19966519,"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":["docker","proxy","shadowsocks","shadowsocks-libev"],"created_at":"2024-11-13T09:24:13.944Z","updated_at":"2026-05-08T02:05:01.795Z","avatar_url":"https://github.com/hongkongkiwi.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hongkongkiwi/docker-shadowsocks\n![](https://images.microbadger.com/badges/version/hongkongkiwi/shadowsocks-libev.svg)\n![](https://images.microbadger.com/badges/image/hongkongkiwi/shadowsocks-libev.svg)\n![Docker Pulls](https://img.shields.io/docker/pulls/hongkongkiwi/shadowsocks-libev.svg)\n![Docker Stars](https://img.shields.io/docker/stars/hongkongkiwi/shadowsocks-libev.svg)\n\nShadowsocks-libev is a lightweight secured SOCKS5 proxy for embedded devices and low-end boxes.\n\nIt is a port of Shadowsocks created by @clowwindy, and maintained by @madeye and @linusyang.\n\nShadowsocks-libev is written in pure C and depends on libev. It's designed to be a lightweight implementation of shadowsocks protocol, in order to keep the resource usage as low as possible.\n\nFor a full list of feature comparison between different versions of shadowsocks, refer to the Wiki page.\n\n[![shadowsocks-libev logo](https://gaukas.wang/wp-content/uploads/2015/11/Shadowsocks.png)](https://github.com/shadowsocks/shadowsocks-libev)\n\n## Usage\n\n### Creating a Server\n```\ndocker create \\\n--name=\"shadowsocks-libev-server\" \\\n--device=\"/dev/urandom\" \\\n-v \u003cpath to server config file\u003e:/config/ss_config.json \\\n-e SS_MODE=\"server\" \\\n-p 8080:8080 \\\nhongkongkiwi/shadowsocks-libev\n```\n\n### Creating a Client\n```\ndocker create \\\n--name=\"shadowsocks-libev-client\" \\\n--device=\"/dev/urandom\" \\\n-v \u003cpath to client config file\u003e:/config/ss_config.json \\\n-e SS_MODE=\"client\" \\\n-p 1080:1080 \\\nhongkongkiwi/shadowsocks-libev\n```\n\n### Testing the client\n```\ncurl --socks5-hostname YOUR_SERVER_IP:1080 \"http://www.google.com\"\n```\n\n## Parameters\n\n`The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side.\nFor example with a port -p external:internal - what this shows is the port mapping from internal to external of the container.\nSo -p 1080:1090 would expose port 1080 from inside the container to be accessible from the host's IP on port 1090\nhttp://192.168.x.x:1090 would show you what's running INSIDE the container on port 1080.`\n\n\n* `-p 1080:1080` or `-p 8080:8080` - the port(s)\n* `-v /config/ss_config.json` - location of configuration file\n* `-e SS_MODE` for setting whether we are running as a server or client. Set to either \"server\" or \"client\"\n* `-e PGID` for GroupID - see below for explanation\n* `-e PUID` for UserID - see below for explanation\n* `-e TZ` for setting timezone information, eg Asia/Hong_Kong\n\nIt is based on a minimal alpine linux build, for shell access whilst the container is running do `docker exec -it \"shadowsocks-libev-client\" /bin/bash` or `docker exec -it \"shadowsocks-libev-server\" /bin/bash`.\n\n### User / Group Identifiers\n\nSometimes when using data volumes (`-v` flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user `PUID` and group `PGID`. Ensure the data volume directory on the host is owned by the same user you specify and it will \"just work\" ™.\n\nIn this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as below:\n\n```\n  $ id \u003cdockeruser\u003e\n    uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)\n```\n\n## Setting up the application\n\nYou will need to setup a config file to use for each kind of server. You can use some default settings as below:\n\n\n### Server\n```\n{\n    \"server\": \"0.0.0.0\",\n    \"server_port\": 8080,\n    \"local_address\": \"0.0.0.0\",\n    \"local_port\":1080,\n    \"password\": \"YOUR_PASSWORD\",\n    \"timeout\": 300,\n    \"method\": \"rc4-md5\",\n    \"fast_open\": false\n}\n```\nNote: Change YOUR_PASSWORD to whatever you want\n\n### Client\n```\n{\n    \"server\": \"YOUR_LOCAL_IP\",\n    \"server_port\": 8080,\n    \"local_address\": \"0.0.0.0\",\n    \"local_port\":1080,\n    \"password\": \"YOUR_PASSWORD\",\n    \"timeout\": 300,\n    \"method\": \"rc4-md5\",\n    \"fast_open\": false\n}\n```\nNote: Change YOUR_LOCAL_IP and YOUR_PASSWORD to whatever you want\n\n## Info\n\n* To monitor the logs of the container in realtime `docker logs -f \"shadowsocks-libev-client\"` or `docker logs -f \"shadowsocks-libev-server\"`.\n\n## Versions\n\n+ **16.06.17:** Initial Release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongkongkiwi%2Fdocker-shadowsocks-libev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhongkongkiwi%2Fdocker-shadowsocks-libev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongkongkiwi%2Fdocker-shadowsocks-libev/lists"}