feat: add environment variable support for proxy authentication and geo-blocking

- Introduced `.env.example` for environment variable configuration.
- Updated `docker-compose.yml` to utilize environment variables for proxy settings.
- Implemented proxy authentication with Basic Auth and geo-blocking based on country codes.
- Added `GEO_FILTER.md` for documentation on geo-filtering configuration.
- Enhanced logging to indicate authentication status and blocked countries during proxy server startup.
This commit is contained in:
isboyjc
2026-03-29 04:11:38 +08:00
parent 7a5061b101
commit a70df0d505
14 changed files with 1088 additions and 120 deletions

35
.env.example Normal file
View File

@@ -0,0 +1,35 @@
# Docker 容器配置
CONTAINER_NAME=goproxy
# 端口绑定配置
# PROXY_HOST: 代理服务绑定地址
# - 127.0.0.1 = 仅本地访问(推荐,最安全)
# - 0.0.0.0 = 对外开放(如启用需配合认证或防火墙)
PROXY_HOST=127.0.0.1
STABLE_PORT=7776 # 最低延迟代理端口
RANDOM_PORT=7777 # 随机轮换代理端口
# 地理过滤配置
# 屏蔽指定国家代码的出口代理(逗号分隔,如 CN,RU,KP
# 留空 = 不屏蔽任何国家
# 默认屏蔽中国大陆CN香港HK、澳门MO、台湾TW不受影响
BLOCKED_COUNTRIES=CN
# 代理服务认证配置
# ⚠️ 当 PROXY_HOST=0.0.0.0(对外开放)时,强烈建议启用认证!
# 使用方式curl -x http://username:password@host:port https://example.com
PROXY_AUTH_ENABLED=false # 是否启用代理认证true/false
PROXY_AUTH_USERNAME=proxy # 代理认证用户名
PROXY_AUTH_PASSWORD= # 代理认证密码(留空=不启用认证)
# 示例PROXY_AUTH_PASSWORD=my_secure_password_123
# WebUI 配置
WEBUI_HOST=0.0.0.0 # WebUI 可对外访问(有登录认证保护)
WEBUI_PORT=7778
WEBUI_PASSWORD=goproxy # ⚠️ 生产环境请修改为强密码
# 数据存储
DATA_DIR=./data
# 时区配置
TZ=Asia/Shanghai