-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathenv.shared.example
More file actions
398 lines (309 loc) · 13.8 KB
/
Copy pathenv.shared.example
File metadata and controls
398 lines (309 loc) · 13.8 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
# ============================================================================
# 统一环境变量配置模板
# ============================================================================
#
# 说明:
# 1. 此文件包含所有服务的环境变量配置
# 2. 使用环境变量管理脚本生成各服务的 .env 文件
# 3. 变量按服务分类,便于管理和查找
#
# 使用方式:
# 1. 复制此文件为 .env.shared: cp env.shared.example .env.shared
# 2. 根据实际环境修改配置值
# 3. 运行脚本生成各服务的 .env 文件:
# - PowerShell: .\scripts\env-manager.ps1
# - Bash: ./scripts/env-manager.sh
#
# ============================================================================
# ============================================================================
# 全局配置
# ============================================================================
# 运行环境: development, production, test
NODE_ENV=development
# 日志级别: error, warn, info, debug, verbose (默认: info)
# 设置为 debug 或 verbose 可以查看完整的调试日志
LOG_LEVEL=info
# ============================================================================
# 服务端口配置
# ============================================================================
API_SERVICE_PORT=3000
GATEWAY_SERVICE_PORT=3002
WEBHOOKS_SERVICE_PORT=3003
WORKER_SERVICE_PORT=3004
LOGGING_SERVICE_PORT=3001
# ============================================================================
# 数据库配置(PostgreSQL)
# ============================================================================
# PostgreSQL 服务配置(Docker)
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=service_db
POSTGRES_PORT=5432
POSTGRES_HOST=postgres # Docker环境使用服务名
# 应用程序数据库配置
# 注意:
# - 本地开发:使用 localhost
# - Docker环境:使用 postgres(服务名)
# ⚠️ 重要:在 deployment/docker/.env 中必须将 DB_HOST 设置为 postgres
DB_HOST=localhost # ⚠️ Docker环境需改为 postgres
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
# 默认数据库(用于API和Webhooks服务)
DB_DATABASE=service_db
# Gateway 专用数据库
GATEWAY_DB_DATABASE=gateway_db
# Webhooks服务数据库(默认与DB_DATABASE相同,可选配置)
# WEBHOOKS_DB_DATABASE=service_db
# API 专用数据库(默认与DB_DATABASE相同,可选配置)
# API_DB_DATABASE=service_db
# 数据库同步配置
DB_SYNCHRONIZE=false # 生产环境必须为 false,使用迁移文件管理数据库结构
DB_LOGGING=false
# ============================================================================
# Redis 配置
# ============================================================================
# Redis 服务配置
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_HOST=localhost
# Redis 客户端配置(应用服务使用)
REDIS_DB=0
# REDIS_URL=redis://localhost:6379/0 # 可选,如果设置了 URL,将优先使用
# 主群 goal_lock 草稿等跨 API/Worker 共享 KV(须同一 logical DB;勿与各服务 REDIS_DB_* 混用)
# 未设置时 API/Worker 使用 REDIS_HOST + REDIS_DB_COLLAB(默认 0)
COLLAB_REDIS_URL=redis://localhost:6379/0
REDIS_DB_COLLAB=0
# Redis 数据库分配(不同服务使用不同的数据库编号)
REDIS_DB_GATEWAY=0
REDIS_DB_API=1
REDIS_DB_WEBHOOKS=2
REDIS_DB_WORKER=3
REDIS_DB_LOGGING=4
# ============================================================================
# RabbitMQ 配置
# ============================================================================
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=admin
RABBITMQ_PASSWORD=admin123
RABBITMQ_VHOST=/
RABBITMQ_URI=amqp://admin:admin123@localhost:5672/
# 供 API/Gateway RMQ microservice 直连使用
RMQ_URL=amqp://admin:admin123@localhost:5672/
# ============================================================================
# JWT 配置(所有服务共享)
# ============================================================================
JWT_SECRET=your-jwt-secret-key-change-in-production
JWT_REFRESH_SECRET=your-jwt-refresh-secret-key-change-in-production
JWT_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=7d
# ============================================================================
# 加密配置(所有服务共享)
# ============================================================================
# 加密适配器类型: aes 或 rsa(默认: aes)
ENCRYPTION_ADAPTER=aes
# AES 加密密钥(32字节,base64编码)
# 生成方式: openssl rand -base64 32
AES_KEY=your-aes-encryption-key-32-bytes-minimum
AES_ALGORITHM=aes-256-gcm
AES_KEY_LENGTH=32
# RSA 加密配置(可选)
# RSA_PUBLIC_KEY=
# RSA_PRIVATE_KEY=
# RSA_ALGORITHM=rsa-oaep
# ============================================================================
# 哈希配置
# ============================================================================
# 哈希适配器: bcrypt 或 argon2(默认: bcrypt)
HASHING_ADAPTER=bcrypt
BCRYPT_SALT_ROUNDS=10
# ============================================================================
# CORS 配置
# ============================================================================
CORS_ORIGIN=*
CORS_CREDENTIALS=true
# ============================================================================
# 监控配置
# ============================================================================
# 监控适配器: prometheus, statsd, console, noop
METRICS_ADAPTER=prometheus
METRICS_ENABLED=true
PROMETHEUS_COLLECT_DEFAULT_METRICS=true
PROMETHEUS_PREFIX=service
# ============================================================================
# Swagger 配置
# ============================================================================
SWAGGER_ENABLED=true
SWAGGER_PATH=api-docs
# ============================================================================
# HTTP 配置
# ============================================================================
HTTP_TIMEOUT=30000
# ============================================================================
# 缓存配置
# ============================================================================
# 缓存适配器类型: auto=自动选择(Redis优先), redis=强制Redis, memory=内存缓存
CACHE_ADAPTER_TYPE=auto
# ============================================================================
# 存储配置
# ============================================================================
# 存储类型: minio=MinIO, s3=AWS S3, oss=阿里云OSS, local=本地存储
STORAGE_TYPE=local
STORAGE_LOCAL_BASE_PATH=./storage
STORAGE_LOCAL_BASE_URL=/api/files
# MinIO 配置(当 STORAGE_TYPE=minio 时使用)
STORAGE_MINIO_ENDPOINT=localhost
STORAGE_MINIO_PORT=9000
STORAGE_MINIO_USE_SSL=false
STORAGE_MINIO_ACCESS_KEY=minioadmin
STORAGE_MINIO_SECRET_KEY=minioadmin
STORAGE_MINIO_BUCKET_NAME=files
# AWS S3 配置(当 STORAGE_TYPE=s3 时使用)
# STORAGE_S3_ACCESS_KEY_ID=your-access-key-id
# STORAGE_S3_SECRET_ACCESS_KEY=your-secret-access-key
# STORAGE_S3_REGION=us-east-1
# STORAGE_S3_BUCKET_NAME=your-bucket-name
# 阿里云 OSS 配置(当 STORAGE_TYPE=oss 时使用)
# STORAGE_OSS_ACCESS_KEY_ID=your-access-key-id
# STORAGE_OSS_ACCESS_KEY_SECRET=your-access-key-secret
# STORAGE_OSS_REGION=oss-cn-hangzhou
# STORAGE_OSS_BUCKET_NAME=your-bucket-name
# ============================================================================
# Gateway 服务专用配置
# ============================================================================
# 服务地址配置(Docker 环境使用服务名,如 http://api-service:3000)
API_SERVICE_URL=http://localhost:3000
WEBHOOKS_SERVICE_URL=http://localhost:3003
WORKER_SERVICE_URL=http://localhost:3004
LOGGING_SERVICE_URL=http://localhost:3001
# 限流配置
RATE_LIMIT_TTL=60
RATE_LIMIT_MAX_REQUESTS=100
RATE_LIMIT_SKIP_SUCCESSFUL_REQUESTS=false
# 断路器配置
CIRCUIT_BREAKER_ENABLED=true
CIRCUIT_BREAKER_FAILURE_THRESHOLD=5
CIRCUIT_BREAKER_SUCCESS_THRESHOLD=2
CIRCUIT_BREAKER_TIMEOUT=60000
CIRCUIT_BREAKER_RESET_TIMEOUT=30000
# 微信登录配置
WECHAT_APP_ID=
WECHAT_APP_SECRET=
WECHAT_REDIRECT_URI=http://localhost:3002/api/auth/wechat/callback
WECHAT_SCOPE=snsapi_login
# 授权配置
AUTHORIZATION_ENABLED=true
# ============================================================================
# 认证 / 前端 / 邮件(密码重置 SMTP)
# ============================================================================
# foundry-client (Vite 默认 5173):密码重置链接、OAuth 回调落地页
FRONTEND_URL=http://localhost:5173
# 未配置 SMTP_HOST 时 API 仅将邮件内容写入日志;本地调试可设为 true
MAIL_DEV_LOG_ONLY=false
# 注册邮箱验证码(6 位数字,默认开启;本地可设为 false 跳过)
REGISTER_EMAIL_VERIFICATION_ENABLED=true
# --- SMTP 真实发送(配置 SMTP_HOST + SMTP_FROM 后启用)---
# 本地 Mailhog/Mailpit:SMTP_HOST=localhost SMTP_PORT=1025 SMTP_SECURE=false SMTP_FROM=noreply@foundry.local
SMTP_HOST=
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=
SMTP_PASS=
SMTP_FROM=
SMTP_CONNECTION_TIMEOUT_MS=10000
SMTP_GREETING_TIMEOUT_MS=10000
SMTP_SOCKET_TIMEOUT_MS=10000
# ============================================================================
# Worker:主群战略-编排-部门执行主链(Phase 0 基线)
# ============================================================================
# 完整说明见 docs/deployment/collaboration-main-chain.env.example 与
# docs/all/17-群聊战略-编排-部门执行-需求设计.md §7
# 变量默认值以 apps/worker/src/common/config/config.schema.ts 为准。
# Dispatch Plan v2(Markdown 计划 → 编译 → 部门下发;与 goal_lock 互斥)
COLLAB_CEO_DISPATCH_PLAN_V2_ENABLED=true
COLLAB_DISPATCH_CONFIRM_MODE=auto
# Collaboration Program SSOT(主群交付诉求统一生命周期;默认开启)
COLLAB_PROGRAM_SSOT_ENABLED=true
COLLAB_PROGRAM_CONFIRM_MODE=auto
COLLAB_PROGRAM_LEGACY_ROUTER_FALLBACK=false
# Legacy goal_lock 回滚时启用(与 v2 互斥):
# COLLAB_MAIN_ROOM_GOAL_LOCK_BEFORE_ORCHESTRATION=true
# COLLAB_CEO_DISPATCH_PLAN_V2_ENABLED=false
# 派发成功后主群 CEO 派单气泡(schema 默认 true)
MAIN_ROOM_DISPATCH_CHAT_MESSAGES_ENABLED=true
# 按 DistributionPlan.dependencies 分波派发(schema 默认 true)
MAIN_ROOM_DISPATCH_RESPECT_DEPENDENCIES=true
# task.completed 解锁下一波时主群 CEO 推进提示(schema 默认 true;消息过多可 false)
MAIN_ROOM_DISPATCH_WAVE_SUPERVISION_NUDGE_ENABLED=true
# 全部 L2 子目标完成后主群结案摘要(schema 默认 false;Phase 4 再开)
# MAIN_ROOM_DISTRIBUTION_COMPLETION_SUMMARY_ENABLED=false
# 部门群总监 LLM 对话(schema 默认 true)
COLLAB_DEPT_DIRECTOR_MODEL_ENABLED=true
# 直连回复:完整输出优先(触顶自动续写 + 流式展示,禁止静默截断)
COLLAB_DIRECT_REPLY_MAX_OUTPUT_TOKENS=2048
COLLAB_DEPT_DIRECT_REPLY_MAX_OUTPUT_TOKENS=4096
COLLAB_DIRECT_REPLY_LENGTH_CONTINUATION_MAX_ROUNDS=2
COLLAB_DIRECT_REPLY_STREAMING_ENABLED=true
COLLAB_DEPT_DIRECT_REPLY_STREAMING_ENABLED=true
# Phase 3:部门主管拆工 + 员工执行(schema 默认 false;本地/预发见 scripts/enable-phase3-department-chain.ps1)
# ============================================================================
# 新建公司高级向导(2026)
# ============================================================================
ENABLE_ADVANCED_COMPANY_CREATION_WIZARD=true
# client/.env 或 Vite:VITE_ENABLE_COMPANY_WIZARD=true
# DIRECTOR_AUTONOMOUS_ENABLED=true
# EMPLOYEE_AUTONOMOUS_ENABLED=true
# MULTI_AGENT_GRAPH_V2_ENABLED=true
# 指派对齐部门职责(schema 默认 true)
COLLAB_ASSIGNMENT_VALIDATOR_ENABLED=true
# 可指派部门策略:org_only | intent_filter(schema 默认 org_only)
COLLAB_ASSIGNABLE_DEPARTMENT_POLICY=org_only
# ============================================================================
# API 服务专用配置
# ============================================================================
# 测试用户注入开关(仅本地/测试环境)
TEST_AUTH_ENABLED=true
# 高级审批(群聊内 approval.response 等实时审批能力)
ENABLE_ADVANCED_APPROVAL=true
# 租户成员校验开关(生产建议保持 true,关闭会绕过 company_memberships 校验)
TENANT_MEMBERSHIP_ENFORCED=true
# Memory Graph V2(默认关闭;开启后配合 API 灰度;仓库模板为全量 100)
# MEMORY_GRAPH_V2_ENABLED=true
# MEMORY_GRAPH_V2_ROLLOUT_PERCENT=100
# ============================================================================
# Consul 配置(可选,用于集中式配置管理)
# ============================================================================
# 是否启用 Consul 配置中心
CONSUL_ENABLED=false
# Consul 服务配置
CONSUL_HOST=localhost
CONSUL_PORT=8500
CONSUL_CONFIG_PREFIX=config/
CONSUL_SECURE=false
CONSUL_TOKEN=
CONSUL_DATACENTER=dc1
# Consul 服务发现配置
CONSUL_DNS_PORT=8600
CONSUL_GRPC_PORT=8502
CONSUL_UI=true
CONSUL_ACL_ENABLE=false
CONSUL_ACL_DEFAULT_POLICY=allow
CONSUL_DEV_MODE=true
# ============================================================================
# Logging 服务配置
# ============================================================================
LOKI_URL=http://localhost:3100
ELASTICSEARCH_URL=
# ============================================================================
# 生产环境特定配置(生产环境需要修改的值)
# ============================================================================
# 生产环境注意事项:
# 1. JWT_SECRET 和 JWT_REFRESH_SECRET 必须使用强随机密钥
# 2. DB_PASSWORD 必须使用强密码
# 3. AES_KEY 必须使用随机生成的 32 字节密钥
# 4. CORS_ORIGIN 应设置为具体域名,而不是 *
# 5. DB_SYNCHRONIZE 应设置为 false,使用迁移文件管理数据库结构
# 6. SWAGGER_ENABLED 建议设置为 false
# 7. 启用 CONSUL_ENABLED 以实现集中式配置管理
# 8. 所有服务在 Docker 环境中应使用服务名而不是 localhost