feat(config): Phase 4 — 修正模板 + 渲染脚本 + CI 部署改造 #1630
Reference in New Issue
Block a user
Delete Branch "feat/config-phase4-env-render"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
第一部分:修正配置模板(7 处差异)
MINIO_BUCKET→MINIO_BUCKET_NAME(统一变量名)DOUBAO_API_KEY区块(两个环境都没在用)DASHSCOPE_API_KEY(实际在用,模板漏了)DEBUG=true(staging 实际在用 true)ENABLE_EMAIL_DELIVERY=false(邮件功能未上线)第二部分:创建 env 渲染脚本
STAGING_xxx/PRODUCTION_xxx前缀映射到模板变量第三部分:改造 CI 部署流程
Render .env from template步骤render_env.sh staging生成.env.rendered.env.rendered到服务器.env(带时间戳)ci_staging_deploy.sh改为显式检查.env来源安全
.env.rendered加入.gitignore🚀 预览环境已部署
1. Production 模板 SMTP_HOST 改为空值(与实际一致) 2. ci-pipeline.yml MinIO Bucket Secret 名称修正为 STAGING_MINIO_BUCKET - render_env.sh 增加特殊映射:STAGING_MINIO_BUCKET → MINIO_BUCKET_NAME 3. 修正模板中与实际运行不一致的配置值: Staging: JWT_ACCESS_TOKEN_EXPIRE_MINUTES=1440, COSYVOICE_VOICE=longxiaoxia_v3, COSYVOICE_FORMAT=wav, CORS_ORIGINS_RAW 使用 staging-api Production: COSYVOICE_VOICE=longxiaoxia_v3, COSYVOICE_FORMAT=wav, CORS_ORIGINS_RAW 使用 api(非 www)【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[deploy/configs/.env.staging: 19] Staging 环境开启 Debug 模式
DEBUG=true在 Staging 环境中开启。虽然这有助于排查问题,但如果 Staging 环境对外暴露,Debug 模式可能会泄露详细的堆栈信息、配置信息等敏感数据。建议仅在必要时临时开启,或确保 Staging 环境有严格的访问控制。[deploy/configs/.env.staging: 180 & deploy/configs/.env.production: 162] CORS 配置包含 API 域名
CORS_ORIGINS_RAW中包含了staging-api.xiaoxiajianji.com和api.xiaoxiajianji.com。通常 CORS 用于配置允许访问的前端域名,API 域名自身通常不需要加入 CORS 列表(除非有特殊的前端服务部署在该子域下)。请确认这是否符合预期,防止配置过于宽松。[scripts/render_env.sh: 102] Python 脚本中存在未使用的变量
all_vars并向其中添加了元素,但后续代码中并未实际使用该集合进行任何逻辑判断或操作。虽然不影响功能,但属于无效代码,建议删除以保持代码整洁。✅ 良好实践
render_env.sh脚本在生成包含敏感信息的文件后,立即使用os.chmod(output_file, 0o600)限制权限,且在 CI 流程结束后执行rm -f .env.rendered清理,有效防止了敏感信息在 CI Runner 上的残留。set -eu,并在 Python 脚本中显式检查了所有模板中的占位符是否都被替换,如果存在未设置的变量会直接报错退出,避免了因配置缺失导致的服务运行时错误。ci-pipeline.yml的上传步骤中,先对旧.env文件进行备份(cp ... .env.bak...),并在文件不存在时忽略错误,这是一个很好的回滚保护机制。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-09-02 09:23:17 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1630 已关闭或合并,对应的预览环境已被清理。