{"id":13776043,"url":"https://github.com/xfoxfu/clover","last_synced_at":"2025-05-11T08:34:44.580Z","repository":{"id":77226006,"uuid":"61873119","full_name":"xfoxfu/clover","owner":"xfoxfu","description":"Shadowsocks and v2ray User Interface","archived":true,"fork":false,"pushed_at":"2022-04-07T12:40:05.000Z","size":1637,"stargazers_count":33,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-17T11:47:42.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xfoxfu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-06-24T09:22:58.000Z","updated_at":"2023-12-02T02:04:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"913d4a15-6fbf-4541-8fd5-9cefa24b4f95","html_url":"https://github.com/xfoxfu/clover","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xfoxfu%2Fclover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xfoxfu%2Fclover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xfoxfu%2Fclover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xfoxfu%2Fclover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xfoxfu","download_url":"https://codeload.github.com/xfoxfu/clover/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253540622,"owners_count":21924522,"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":[],"created_at":"2024-08-03T17:01:58.439Z","updated_at":"2025-05-11T08:34:44.237Z","avatar_url":"https://github.com/xfoxfu.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","TypeScript (64)"],"sub_categories":["\u003ca id=\"8ff91c8095e77fe88dcac1cff78d79c6\"\u003e\u003c/a\u003e安装\u0026\u0026配置\u0026\u0026管理"],"readme":"Clover\n=====\n\n[![Build Status](https://img.shields.io/travis/coderfox/clover.svg?style=flat-square)](https://travis-ci.org/coderfox/clover)\n[![Coveralls](https://img.shields.io/coveralls/coderfox/clover.svg?style=flat-square)](https://coveralls.io/github/coderfox/clover)\n[![license](https://img.shields.io/github/license/coderfox/clover.svg?style=flat-square)](https://github.com/coderfox/clover/blob/master/LICENSE.md)\n[![TypeScript](https://img.shields.io/badge/TypeScript-v2.4.2-blue.svg?style=flat-square)](https://www.typescriptlang.org/)\n\nYet another [shadowsocks](https://shadowsocks.org) multiuser frontend.\n\nConfig\n-----\n\nUse environment variables, and dotenv files are also supported.\n\n| Key                   | Default                          | Description                              |\n| --------------------- | -------------------------------- | ---------------------------------------- |\n| DB_PATH               | ./clover.db                      |                                          |\n| LOG_LEVEL             | debug                            |                                          |\n| PORT                  | 3000                             |                                          |\n| PASSWORD_HASH_ROUNDS  | 12                               |                                          |\n| SITE_TITLE            | Clover                           |                                          |\n| OPEN_REGISTER         | false                            | true/false                               |\n| SENDGRID_KEY          | KEY                              | get one at \u003chttp://sendgrid.com/\u003e        |\n| SENDGRID_EMAIL        | clover@example.com               | email address used for sending announces and password recovery emails |\n| JWT_KEY               | 527877cb                         | JSON Web Token key used by generation of referrence codes |\n| SITE_URL              | http://127.0.0.1:3000            |                                          |\n| ADMIN_EMAIL           | user@example.com                 | administrator contact email              |\n| PROXY_HOST            | 127.0.0.1                        | shared host of shadowsocks and v2ray     |\n| SS_ENABLED            | true                             | true/false                               |\n| DEFAULT_ENCRYPTION    | chacha20-ietf-poly1305           | shadowsocks default encryption method    |\n| PORT_START            | 10000                            | start of shadowsocks port range          |\n| MU_TOKEN              | d6d0fbdc9483c27e6b653457879d3fbd | token of shadowsocks MU API v2           |\n| VMESS_ENABLED         | true                             | true/false                               |\n| VMESS_DEFAULT_ALTERID | 16                               |                                          |\n| VMESS_PORT            | 443                              |                                          |\n| VMESS_PORT_DYNAMIC    |                                  | leave it blank to disable the feature    |\n| VMESS_NETWORK         | ws                               | tcp, kcp or ws                           |\n| VMESS_TCP_HEADER_TYPE | none                             | none/http                                |\n| VMESS_KCP_HEADER      | none                             | none/srtp/utp/wechat-video               |\n| VMESS_KCP_UP_CAP      | 5                                |                                          |\n| VMESS_KCP_DOWN_CAP    | 20                               |                                          |\n| VMESS_KCP_CONGESTION  | false                            | true/false                               |\n| VMESS_WS_PATH         | /                                |                                          |\n| VMESS_WS_HOST         | the same as PROXY_HOST           |                                          |\n| VMESS_WS_HEADERS      | {}                               | JSON representing all the header keys, `Host` excluded |\n| VMESS_TLS             | out                              | `off` for disable / `in` for using v2ray TLS / `out` for using TLS provided outside v2ray |\n| VMESS_TLS_SERVER      | the same as PROXY_HOST           | hostname for TLS                         |\n| VMESS_TLS_CERT_TRUST  | true                             | true/false, false for insecure(not-trusted) certs |\n| VMESS_TLS_CERT        | server.crt                       | path of TLS cert file, used only `VMESS_TLS` is `in` |\n| VMESS_TLS_KEY         | server.key                       | path of TLS key file, used only `VMESS_TLS` is `in` |\n| SENTRY_URL            | empty                            | log tracing of \u003chttps://sentry.io\u003e       |\n\nCurrently, VMESS_PORT_DYNAMIC is not implemented.\n\nThe user with email ADMIN_EMAIL will automatically become the admin.\n\nStart\n-----\n\n```sh\ntsc\nnpm start\n```\n\nConnect With Proxy Servers\n-----\n\n### Shadowsocks\n\nUse any server implementions support MU API v2.\n\n### v2ray\n\nUse docker to deploy v2ray, and the container name should be `v2ray`.\n\n*Clover* will generate `v2ray_server.json` as server config in root path of *Clover*.\n\n*Clover* will connect to docker daemon automatically and restart the server on demand.\n\nIf you run *Clover* inside a container, you may create 2 volumes: `/var/run/docker.sock:/var/run/docker.sock:ro` and `./v2ray_server.json:/app/v2ray_server.json` to make the connection.\n\n### Docker\n\n1. Modify docker-compose.yml, set the env vars to your value.\n3. `touch clover.db v2ray.json \u0026\u0026 docker-compose up -d`\n\nLicense\n-----\n\nAGPL v3+\n\n```\nclover generic proxy frontend\nCopyright (C) 2017-2018  coderfox\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as\npublished by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxfoxfu%2Fclover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxfoxfu%2Fclover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxfoxfu%2Fclover/lists"}