{"id":13459163,"url":"https://github.com/shadowsocks/shadowsocks-manager","last_synced_at":"2025-04-28T15:41:11.388Z","repository":{"id":23283848,"uuid":"26642716","full_name":"shadowsocks/shadowsocks-manager","owner":"shadowsocks","description":"A shadowsocks manager tool for multi user and traffic control.","archived":false,"fork":false,"pushed_at":"2024-02-24T14:33:24.000Z","size":15663,"stargazers_count":4119,"open_issues_count":12,"forks_count":1521,"subscribers_count":194,"default_branch":"master","last_synced_at":"2025-04-24T13:39:31.696Z","etag":null,"topics":["nodejs","shadowsocks"],"latest_commit_sha":null,"homepage":"https://shadowsocks.github.io/shadowsocks-manager/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shadowsocks.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}},"created_at":"2014-11-14T14:47:01.000Z","updated_at":"2025-04-23T21:15:52.000Z","dependencies_parsed_at":"2024-01-07T22:48:19.178Z","dependency_job_id":"fc28eab6-6793-4b9f-8a24-a3e4743969f8","html_url":"https://github.com/shadowsocks/shadowsocks-manager","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/shadowsocks%2Fshadowsocks-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadowsocks","download_url":"https://codeload.github.com/shadowsocks/shadowsocks-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251340520,"owners_count":21573918,"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":["nodejs","shadowsocks"],"created_at":"2024-07-31T09:01:07.359Z","updated_at":"2025-04-28T15:41:11.351Z","avatar_url":"https://github.com/shadowsocks.png","language":"JavaScript","readme":"[![NPM version][npm-image]][npm-url]\n[![npm license][license-image]][download-url]\n\n[npm-image]: https://img.shields.io/npm/v/shadowsocks-manager.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/shadowsocks-manager\n[download-url]: https://npmjs.org/package/shadowsocks-manager\n[license-image]: https://img.shields.io/npm/l/shadowsocks-manager.svg\n\n# shadowsocks-manager\n\nA shadowsocks manager tool for multi user and traffic control.  \nBase on Node.js and SQLite.\n\nFor more details, you can see [docs](https://shadowsocks.github.io/shadowsocks-manager/).\n\nIf you want to use the old version, please switch to [this branch](https://github.com/shadowsocks/shadowsocks-manager/tree/version1).\n\n\n## Dependencies\n\n* Node.js 12.*\n* Redis\n\n## Install\n\n### From source:\n\n```\ngit clone https://github.com/shadowsocks/shadowsocks-manager.git\ncd shadowsocks-manager\nnpm i\n```\nuse `node server.js` to run this program.  \n\n### From npm:\n```\nnpm i -g shadowsocks-manager\n```\nYou may need to use the `--unsafe-perm` flag if you receive an permission error\n```\nnpm i -g shadowsocks-manager --unsafe-perm\n```\nuse `ssmgr` to run this program.\n\n### From docker:\n```\ndocker run --name ssmgr -idt -v ~/.ssmgr:/root/.ssmgr --net=host gyteng/ssmgr [ssmgr params...]\n```\n\n### Build docker image:\n\nhere is the `Dockerfile`\n\n```\nFROM ubuntu:18.04\nMAINTAINER gyteng \u003cigyteng@gmail.com\u003e\nRUN apt-get update \u0026\u0026 \\\n    export DEBIAN_FRONTEND=noninteractive \u0026\u0026 \\\n    apt-get install tzdata iproute2 curl git sudo software-properties-common python-pip -y \u0026\u0026 \\\n    pip install git+https://github.com/shadowsocks/shadowsocks.git@master \u0026\u0026 \\\n    curl -sL https://deb.nodesource.com/setup_8.x | bash - \u0026\u0026 \\\n    apt-get install -y nodejs shadowsocks-libev \u0026\u0026 \\\n    npm i -g shadowsocks-manager --unsafe-perm \u0026\u0026 \\\n    echo \"Asia/Shanghai\" \u003e /etc/timezone \u0026\u0026 \\\n    rm /etc/localtime \u0026\u0026 \\\n    dpkg-reconfigure -f noninteractive tzdata\nCMD [\"/usr/bin/ssmgr\"]\n```\n\n### Usage\n1. Start shadowsocks with [manager API](https://github.com/shadowsocks/shadowsocks/wiki/Manage-Multiple-Users), it supports `shadowsocks-python` and `shadowsocks-libev`.\nFor example, you can run this command:  \n```\nss-manager -m aes-256-cfb -u --manager-address 127.0.0.1:6001\n or\nssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001\n```\n2. run ssmgr with type s:\n\n  config file:  \n  ```\n  type: s\n\n  shadowsocks:\n    address: 127.0.0.1:6001\n  manager:\n    address: 0.0.0.0:4001\n    password: '123456'\n  db: 'ss.sqlite'\n  ```\n\n  If you want to use MySQL, the `db` must like this:\n\n  ```\n  db:\n    host: '1.1.1.1'\n    user: 'root'\n    password: 'abcdefg'\n    database: 'ssmgr'\n  ```\n\n  And you have to close `only_full_group_by` when the version of MySQL is greater than 5.7\n\n  command:  \n  `ssmgr -c /your/config/file/path.yml`\n\n3. If you have several servers, you have to run step 1 and step 2 in every server.  \nThe listening address in `--manager-address` of step 1 and in `shadowsocks -\u003e address` of step 2's config file must be same. For security reseon, we recommend you to use `127.0.0.1` instead of `0.0.0.0`.\n4. Now you can use the plugins to manage them. You can read the details in plugins readme page.\n\n```\n+-------------+    +-------------+       +------+\n| Shadowsocks |    | Shadowsocks |  ...  |      |\n| manager API |    | manager API |       |      |\n+-------------+    +-------------+       +------+\n       |                 |                  |\n       |                 |                  |\n+-------------+    +-------------+       +------+\n| ssmgr       |    | ssmgr       |  ...  |      |\n| with type s |    | with type s |       |      |\n+-------------+    +-------------+       +------+\n       |                 |                  |\n       +------------+----+--------  ...  ---+\n                    |\n                    |\n             +---------------+\n             | ssmgr plugins |\n             |  with type m  |\n             +---------------+\n```\n\n### Plugins\n\n[telegram](https://github.com/shadowsocks/shadowsocks-manager/blob/master/plugins/telegram/README.md)  \n[freeAccount](https://github.com/shadowsocks/shadowsocks-manager/blob/master/plugins/freeAccount/README.md)  \n[webgui](https://github.com/shadowsocks/shadowsocks-manager/blob/master/plugins/webgui/README.md)  \n\n### Parameter\n\n`ssmgr --help` will show startup parameters info.\n\n```\nUsage: ssmgr [options]\n\n  Options:\n\n    -h, --help                   output usage information\n    -V, --version                output the version number\n    -c, --config [file]          config file, default: ~/.ssmgr/default.yml\n    -d, --db [file]              sqlite3 file, sample: ~/.ssmgr/db.sqlite\n    -t, --type [type]            type, s for server side, m for manager side\n    -s, --shadowsocks [address]  ss-manager address, sample: 127.0.0.1:6001\n    -m, --manager [address]      manager address, sample: 0.0.0.0:6002\n    -p, --password [password]    manager password, both server side and manager side must be equals\n    -r, --run [type]             run shadowsocks from child_process, sample: libev / libev:aes-256-cfb / python / python:aes-256-cfb\n    --debug                      show debug message\n```\n\nFirst, ssmgr will read the config file in `--config`, and other parameters(`-detsmp`) will replace the config file values.\n\n### Translate\n\nIf your want to help to translate it to other languages, please edit files [here](https://github.com/shadowsocks/shadowsocks-manager/tree/dev/plugins/webgui/public/translate) and give me a pull request.\n","funding_links":[],"categories":["JavaScript","\u003ca id=\"1a9934198e37d6d06b881705b863afc8\"\u003e\u003c/a\u003e通信\u0026\u0026代理\u0026\u0026反向代理\u0026\u0026隧道","Software","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","HarmonyOS","1. language"],"sub_categories":["\u003ca id=\"f932418b594acb6facfc35c1ec414188\"\u003e\u003c/a\u003eSocks\u0026\u0026ShadowSocksXx","\u003ca id=\"cb16466a31a167bb61f39e2a4a85f449\"\u003e\u003c/a\u003eShadowsocks","Windows Manager","1.2 javascript"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowsocks%2Fshadowsocks-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowsocks%2Fshadowsocks-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowsocks%2Fshadowsocks-manager/lists"}