Home

Awesome

Clover

Build Status Coveralls license TypeScript

Yet another shadowsocks multiuser frontend.

Config

Use environment variables, and dotenv files are also supported.

KeyDefaultDescription
DB_PATH./clover.db
LOG_LEVELdebug
PORT3000
PASSWORD_HASH_ROUNDS12
SITE_TITLEClover
OPEN_REGISTERfalsetrue/false
SENDGRID_KEYKEYget one at http://sendgrid.com/
SENDGRID_EMAILclover@example.comemail address used for sending announces and password recovery emails
JWT_KEY527877cbJSON Web Token key used by generation of referrence codes
SITE_URLhttp://127.0.0.1:3000
ADMIN_EMAILuser@example.comadministrator contact email
PROXY_HOST127.0.0.1shared host of shadowsocks and v2ray
SS_ENABLEDtruetrue/false
DEFAULT_ENCRYPTIONchacha20-ietf-poly1305shadowsocks default encryption method
PORT_START10000start of shadowsocks port range
MU_TOKENd6d0fbdc9483c27e6b653457879d3fbdtoken of shadowsocks MU API v2
VMESS_ENABLEDtruetrue/false
VMESS_DEFAULT_ALTERID16
VMESS_PORT443
VMESS_PORT_DYNAMICleave it blank to disable the feature
VMESS_NETWORKwstcp, kcp or ws
VMESS_TCP_HEADER_TYPEnonenone/http
VMESS_KCP_HEADERnonenone/srtp/utp/wechat-video
VMESS_KCP_UP_CAP5
VMESS_KCP_DOWN_CAP20
VMESS_KCP_CONGESTIONfalsetrue/false
VMESS_WS_PATH/
VMESS_WS_HOSTthe same as PROXY_HOST
VMESS_WS_HEADERS{}JSON representing all the header keys, Host excluded
VMESS_TLSoutoff for disable / in for using v2ray TLS / out for using TLS provided outside v2ray
VMESS_TLS_SERVERthe same as PROXY_HOSThostname for TLS
VMESS_TLS_CERT_TRUSTtruetrue/false, false for insecure(not-trusted) certs
VMESS_TLS_CERTserver.crtpath of TLS cert file, used only VMESS_TLS is in
VMESS_TLS_KEYserver.keypath of TLS key file, used only VMESS_TLS is in
SENTRY_URLemptylog tracing of https://sentry.io

Currently, VMESS_PORT_DYNAMIC is not implemented.

The user with email ADMIN_EMAIL will automatically become the admin.

Start

tsc
npm start

Connect With Proxy Servers

Shadowsocks

Use any server implementions support MU API v2.

v2ray

Use docker to deploy v2ray, and the container name should be v2ray.

Clover will generate v2ray_server.json as server config in root path of Clover.

Clover will connect to docker daemon automatically and restart the server on demand.

If 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.

Docker

  1. Modify docker-compose.yml, set the env vars to your value.
  2. touch clover.db v2ray.json && docker-compose up -d

License

AGPL v3+

clover generic proxy frontend
Copyright (C) 2017-2018  coderfox

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.