diff --git a/.env.example b/.env.example index e2770a3..5711766 100644 --- a/.env.example +++ b/.env.example @@ -19,9 +19,13 @@ ALIYUN_SLS_ENDPOINT=cn-hangzhou.log.aliyuncs.com ALIYUN_SLS_PROJECT=your_project_name ALIYUN_SLS_LOGSTORE=your_logstore_name -# 账号同步脚本配置 (sync-accounts.sh) +# Deploy Configuration (sync-accounts.sh) SYNC_SERVER=user@your-server.com SYNC_REMOTE_PATH=/opt/droid2api DEPLOY_TYPE=docker-compose DOCKER_SERVICE_NAME=droid2api PM2_APP_NAME=droid2api + +# Cloudflare Tunnel Configuration (Optional) +# Get token from: https://one.dash.cloudflare.com/ -> Networks -> Tunnels +TUNNEL_TOKEN= diff --git a/README.md b/README.md index 223ee91..df674ed 100644 --- a/README.md +++ b/README.md @@ -285,6 +285,29 @@ Docker部署支持以下环境变量: - `PORT` - 服务端口(默认3000) - `NODE_ENV` - 运行环境(production/development) +### Cloudflare Tunnel 部署 (推荐) + +本项目支持通过 Cloudflare Tunnel 进行安全暴露,无需在服务器防火墙开放端口,即可享受 DDoS 防护和 SSL 加密。 + +1. **获取 Tunnel Token** + - 访问 [Cloudflare Zero Trust Dashboard](https://one.dash.cloudflare.com/) + - 进入 `Networks` -> `Tunnels` -> `Create a tunnel` + - 选择 `Cloudflared` 部署模式 + - 在 Public Hostname 中设置你的域名,指向 `http://droid2api:3000` + +2. **配置环境变量** + 在 `.env` 或服务器环境变量中设置 Token: + ```bash + export TUNNEL_TOKEN="your_tunnel_token_here" + ``` + +3. **启动服务** + ```bash + docker-compose up -d + ``` + + 系统会自动启动 `cloudflared` 容器并建立安全隧道。 + ### Claude Code集成 #### 配置Claude Code使用droid2api diff --git a/docker-compose.yml b/docker-compose.yml index e4055c9..44b9195 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,3 +29,15 @@ services: timeout: 10s retries: 3 start_period: 40s + + # Cloudflare Tunnel (可选) + # 需要在 .env 中设置 TUNNEL_TOKEN + tunnel: + image: cloudflare/cloudflared:latest + container_name: droid2api_tunnel + restart: unless-stopped + command: tunnel run + environment: + - TUNNEL_TOKEN=${TUNNEL_TOKEN} + depends_on: + - droid2api