feat: 集成限流器到服务 #178
23
CLAUDE.md
23
CLAUDE.md
@@ -112,9 +112,30 @@ go vet ./... # 静态分析
|
|||||||
|
|
||||||
> **注意**:前端目前没有测试基础设施(无 vitest 配置、无测试文件)。后端使用 `testing` + `testify`(assert/require/mock)测试,编译期接口检查 `var _ Interface = (*Impl)(nil)`。
|
> **注意**:前端目前没有测试基础设施(无 vitest 配置、无测试文件)。后端使用 `testing` + `testify`(assert/require/mock)测试,编译期接口检查 `var _ Interface = (*Impl)(nil)`。
|
||||||
|
|
||||||
|
## 配置环境切换
|
||||||
|
|
||||||
|
项目通过 `APP_ENV` 环境变量控制配置文件加载:
|
||||||
|
|
||||||
|
- **本地开发**(默认):`APP_ENV=dev` → 加载 `config/config.dev.yaml`
|
||||||
|
- Debug 日志、关闭限流、允许所有 CORS
|
||||||
|
- 使用 `backend/.env` 中的远程 Redis/PostgreSQL 地址
|
||||||
|
|
||||||
|
- **生产部署**:`APP_ENV=prod` → 加载 `config/config.prod.yaml`
|
||||||
|
- Info/JSON 日志、启用限流、严格 CORS 白名单
|
||||||
|
- Docker Compose 自动设置,使用容器内网地址
|
||||||
|
|
||||||
|
**配置优先级**:环境变量 > config.{env}.yaml > config.yaml > 默认值
|
||||||
|
|
||||||
|
**手动切换环境**(测试用):
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
APP_ENV=prod go run ./cmd/server # 本地测试生产配置
|
||||||
|
APP_ENV=dev go run ./cmd/server # 显式指定开发配置
|
||||||
|
```
|
||||||
|
|
||||||
## 配置系统
|
## 配置系统
|
||||||
|
|
||||||
配置文件:`backend/config.yaml`(默认值),可被 `config.{env}.yaml` 覆盖。
|
配置文件:`backend/config/config.yaml`(基础配置),可被 `config/config.{env}.yaml` 覆盖。
|
||||||
|
|
||||||
**优先级(从低到高)**:默认值 → `config.yaml` → `config.{env}.yaml`(由 `APP_ENV` 环境变量决定加载哪个 env 特定文件)→ `.env` 文件 → 环境变量
|
**优先级(从低到高)**:默认值 → `config.yaml` → `config.{env}.yaml`(由 `APP_ENV` 环境变量决定加载哪个 env 特定文件)→ `.env` 文件 → 环境变量
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# 运行环境
|
# 运行环境
|
||||||
# dev / prod,决定加载 config.dev.yaml 或 config.prod.yaml(可选)
|
# dev:本地开发环境(debug 日志、关闭限流、允许所有 CORS)
|
||||||
|
# prod:生产环境(info 日志、启用限流、严格 CORS 白名单)
|
||||||
|
# 本地开发保持 dev,生产部署会被 docker-compose.yml 覆盖为 prod
|
||||||
APP_ENV=dev
|
APP_ENV=dev
|
||||||
|
|
||||||
# AI 服务 API Key
|
# AI 服务 API Key
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- /opt/camtalk/.env
|
- /opt/camtalk/.env
|
||||||
environment:
|
environment:
|
||||||
|
# 运行环境(强制生产环境)
|
||||||
|
- APP_ENV=prod
|
||||||
# 三级存储配置(敏感信息通过 env_file 注入)
|
# 三级存储配置(敏感信息通过 env_file 注入)
|
||||||
- CAMTALK_STORAGE_REDIS_ENABLED=${CAMTALK_STORAGE_REDIS_ENABLED:-true}
|
- CAMTALK_STORAGE_REDIS_ENABLED=${CAMTALK_STORAGE_REDIS_ENABLED:-true}
|
||||||
- CAMTALK_STORAGE_PERSISTENCE_ENABLED=${CAMTALK_STORAGE_PERSISTENCE_ENABLED:-true}
|
- CAMTALK_STORAGE_PERSISTENCE_ENABLED=${CAMTALK_STORAGE_PERSISTENCE_ENABLED:-true}
|
||||||
|
|||||||
Reference in New Issue
Block a user