feat: implement custom proxy subscription management and enhance configuration

- Added support for importing Clash/V2ray subscriptions, including automatic format detection and integration with sing-box for protocol conversion.
- Introduced five proxy usage modes in the configuration, allowing flexible selection between mixed, custom-only, and free-only modes.
- Enhanced `.env.example` and `docker-compose.yml` to include new environment variables for custom proxy settings.
- Updated `CHANGELOG.md` to document new features and improvements related to subscription management.
- Improved WebUI for managing subscriptions and displaying proxy statistics.
- Implemented a background process for refreshing subscriptions and probing disabled proxies for reactivation.
This commit is contained in:
isboyjc
2026-04-04 22:25:54 +08:00
parent 2d118688a5
commit f03c3300b4
23 changed files with 5394 additions and 1488 deletions

View File

@@ -30,6 +30,18 @@ PROXY_AUTH_PASSWORD= # 代理认证密码(留空=不启用认证)
# WebUI 认证配置
WEBUI_PASSWORD=goproxy # ⚠️ 生产环境请修改为强密码
# 订阅代理配置
# 代理使用模式(可在 WebUI 设置中切换,支持 5 种策略):
# mixed默认 - 混合·平等(不区分来源,按延迟/随机选择)
# mixed + 订阅优先 - 优先使用订阅代理无可用时降级到免费WebUI 设置)
# mixed + 免费优先 - 优先使用免费代理无可用时降级到订阅WebUI 设置)
# custom_only - 仅订阅代理(只使用订阅导入的代理)
# free_only - 仅免费代理(只使用公开抓取的代理)
CUSTOM_PROXY_MODE=mixed
# sing-box 二进制路径Docker 内置本地运行需安装brew install sing-box
# 用于 vmess/vless/trojan/ss/hysteria2/anytls 等加密协议节点转换为本地 SOCKS5
SINGBOX_PATH=sing-box
# 数据存储配置(仅 docker run 本地开发需要)
# docker-compose.yml 使用 Named Volume无需此配置
# DATA_DIR=./data