Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
137 lines (120 loc) · 6.52 KB
/
Copy path.env.example
File metadata and controls
137 lines (120 loc) · 6.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# RTC Agent 环境变量配置模板
# 复制此文件为 .env 并填入实际值:cp .env.example .env
#
# 环境变量命名规则:
# - 大写字母 + 双下划线分隔层级(对应 YAML 配置的层级结构)
# - 示例:llm.api_key → LLM__API_KEY,database.dsn → DATABASE__DSN
# - 这种映射由 Viper 的 SetEnvKeyReplacer(".", "__") 实现
#
# 优先级(从高到低):
# 1. 配置文件(etc/config.yaml 或通过 --config 指定的文件)
# 2. 环境变量(如 LLM__API_KEY)
# 3. 默认值(代码中 SetDefault 设置)
#
# 注意:如果 YAML 配置文件中明确写了某个字段,环境变量不会覆盖它。
# 因此敏感字段(如 api_key、password)建议不在 YAML 中写明文,
# 而是通过环境变量配置。
# ===========================================================================
# Server 配置(可选)
# ===========================================================================
# SERVER__SHUTDOWN_TIMEOUT=10s # 优雅关闭超时
# SERVER__RPC_TIMEOUT=10s # RPC handler 超时
# SERVER__CLIENT_QUEUE_MAX_SIZE=52428800 # Centrifuge 客户端队列上限(50MB)
# ===========================================================================
# LLM 配置(必需)
# ===========================================================================
# API Key,从模型提供商获取(如 Anthropic、OpenAI、阿里云等)
LLM__API_KEY=your-api-key-here
# ===========================================================================
# GitHub OAuth2 配置(可选)
# 申请地址: https://github.com/settings/developers
# ===========================================================================
PROVIDERS__GITHUB__ENABLED=false
PROVIDERS__GITHUB__CLIENT_ID=your-github-client-id
PROVIDERS__GITHUB__CLIENT_SECRET=your-github-client-secret
# ===========================================================================
# Google OAuth2 配置(可选)
# 申请地址: https://console.cloud.google.com/apis/credentials
# ===========================================================================
PROVIDERS__GOOGLE__ENABLED=false
PROVIDERS__GOOGLE__CLIENT_ID=your-google-client-id
PROVIDERS__GOOGLE__CLIENT_SECRET=your-google-client-secret
# ===========================================================================
# 数据库配置(可选,覆盖 config.yaml 中的默认值)
# ===========================================================================
# DATABASE__DSN=postgres://user:password@localhost:5432/rtc_agent?sslmode=disable
# ===========================================================================
# Redis 配置(可选,覆盖 config.yaml 中的默认值)
# ===========================================================================
# REDIS__ADDR=localhost:6379
# REDIS__PASSWORD=your-redis-password
# ===========================================================================
# Web Search 配置(可选)
# ===========================================================================
# Tavily API Key(当使用 tavily 搜索引擎时需要)
# 申请地址: https://tavily.com
TAVILY_API_KEY=your-tavily-api-key
# ===========================================================================
# 认证配置(必需)
# ===========================================================================
# JWT Secret(生产环境必须修改)
# 生成命令: openssl rand -base64 32
AUTH__JWT_SECRET=rtc-agent-dev-jwt-secret-change-me-in-production
# ===========================================================================
# OSS3 对象存储配置(可选 — 留空 STORAGE_BACKEND 禁用)
# ===========================================================================
# 存储后端: "minio" 启用, 留空禁用
# STORAGE_BACKEND=minio
# MinIO 凭证(STORAGE_BACKEND=minio 时必需)
# 需与 docker-compose 中的 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD 一致
# 注意: 这些变量通过 ${MINIO_ACCESS_KEY} 在 YAML 中展开,不通过 Viper 自动映射
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
# AES-256 密钥(32 字节),用于 SessionToken 加密(STORAGE_BACKEND=minio 时必需)
# 生成命令: openssl rand -hex 32
# 必须是 32 字节(64 个十六进制字符)
OSS3_SESSION_TOKEN_KEY=
# S3 端点 TLS(可选 — 生产环境建议启用)
# S3_TLS_CERT=/path/to/cert.pem
# S3_TLS_KEY=/path/to/key.pem
# ===========================================================================
# Debug 端点配置(可选 — 生产环境建议禁用)
# ===========================================================================
# 启用 /debug/pprof/* 和 /debug/goroutines 端点
# DEBUG__ENABLED=false
# Basic Auth 凭证(留空则无认证)
# DEBUG__USER=admin
# DEBUG__PASSWORD=your-debug-password
# ===========================================================================
# Metrics 端点配置(可选 — 生产环境建议设置认证)
# ===========================================================================
# Prometheus /metrics 端点 Basic Auth 凭证(留空则无认证)
# METRICS__USER=admin
# METRICS__PASSWORD=your-metrics-password
# ===========================================================================
# Mock OAuth2 Provider 配置(仅开发环境)
# ===========================================================================
PROVIDERS__MOCK__ENABLED=true
PROVIDERS__MOCK__URL=http://localhost:10060
PROVIDERS__MOCK__CLIENT_ID=test-client
PROVIDERS__MOCK__CLIENT_SECRET=test-client-secret # 必须配置,不能为空(代码校验要求)
# ===========================================================================
# Admin Email 验证码登录配置(可选)
# 配置后管理员可以使用邮箱验证码登录
# 非敏感配置(smtp_host, smtp_port, from_address 等)在 etc/admin.yaml 中设置
# ===========================================================================
# SMTP 凭证(敏感信息,通过环境变量传入)
# EMAIL__SMTP_USER=noreply@example.com
# EMAIL__SMTP_PASSWORD=your-smtp-password
# ===========================================================================
# 安全配置(可选)
# ===========================================================================
# Content Security Policy (CSP) 配置
# CSP 通过 etc/admin.yaml 的 security.csp 部分配置
# 也可以通过环境变量覆盖特定配置项:
# SECURITY__CSP__ENABLED=true
# SECURITY__CSP__REPORT_ONLY=false
# SECURITY__CSP__REPORT_URI=/api/csp-report
#
# 注意:复杂的 CSP 策略(如 default_src, script_src 等)建议在 YAML 中配置
# 环境变量主要用于简单开关和调试参数