Files
ai_english/serve/config/README.md
2025-11-17 13:39:05 +08:00

166 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置文件说明
## 多环境配置
本项目支持多环境配置,通过 `GO_ENV` 环境变量自动选择对应的配置文件。
### 环境配置文件
- `config.dev.yaml` - 开发环境配置
- `config.prod.yaml` - 生产环境配置
- `config.staging.yaml` - 预发布环境配置(可选)
- `config.test.yaml` - 测试环境配置(可选)
- `config.yaml` - 默认配置文件(回退)
### 使用方法
#### 1. 开发环境(默认)
```bash
# 不设置 GO_ENV默认使用开发环境
go run main.go
# 或显式设置
GO_ENV=development go run main.go
GO_ENV=dev go run main.go
```
使用配置文件:`config.dev.yaml`
#### 2. 生产环境
```bash
GO_ENV=production go run main.go
# 或
GO_ENV=prod go run main.go
```
使用配置文件:`config.prod.yaml`
#### 3. 预发布环境
```bash
GO_ENV=staging go run main.go
# 或
GO_ENV=stage go run main.go
```
使用配置文件:`config.staging.yaml`
#### 4. 测试环境
```bash
GO_ENV=test go run main.go
```
使用配置文件:`config.test.yaml`
### Windows PowerShell 设置环境变量
```powershell
# 临时设置(仅当前会话)
$env:GO_ENV="production"
go run main.go
# 或一行命令
$env:GO_ENV="production"; go run main.go
```
### Windows CMD 设置环境变量
```cmd
# 临时设置
set GO_ENV=production
go run main.go
# 或一行命令
set GO_ENV=production && go run main.go
```
### Linux/Mac 设置环境变量
```bash
# 临时设置
export GO_ENV=production
go run main.go
# 或一行命令
GO_ENV=production go run main.go
```
## 环境变量覆盖
敏感配置项可以通过环境变量覆盖,优先级高于配置文件:
- `DB_PASSWORD` - 数据库密码
- `JWT_SECRET` - JWT 密钥
- `REDIS_PASSWORD` - Redis 密码
示例:
```bash
# Linux/Mac
export DB_PASSWORD="your_secure_password"
export JWT_SECRET="your_jwt_secret_key"
GO_ENV=production go run main.go
# Windows PowerShell
$env:DB_PASSWORD="your_secure_password"
$env:JWT_SECRET="your_jwt_secret_key"
$env:GO_ENV="production"
go run main.go
```
## 配置文件优先级
1. 环境变量(最高优先级)
2. 环境特定配置文件(如 `config.prod.yaml`
3. 默认配置文件(`config.yaml`
4. 代码中的默认值(最低优先级)
## 首次使用
1. 复制 `config.example.yaml``config.yaml`
2. 修改 `config.yaml` 中的配置项
3. 运行应用
```bash
# Windows
copy config.example.yaml config.yaml
# Linux/Mac
cp config.example.yaml config.yaml
```
## 生产环境部署建议
1. ✅ 不要将包含敏感信息的配置文件提交到版本控制
2. ✅ 使用环境变量设置所有敏感配置
3. ✅ 在生产环境使用 `config.prod.yaml`
4. ✅ 确保 JWT Secret 使用强随机字符串
5. ✅ 数据库密码使用环境变量而不是写在配置文件中
## .gitignore 建议
```gitignore
# 配置文件
config/config.yaml
config/config.*.yaml
!config/config.example.yaml
# 日志文件
logs/
*.log
```
## 配置验证
启动时会在日志中显示加载的配置信息:
```
Loaded configuration for environment: production (file: config.prod.yaml)
Server mode: release, App environment: production
```
确认配置加载正确后再继续使用。