环境变量管理器Skill env-manager

环境变量管理器技能用于系统化管理环境变量,支持验证结构、安全扫描、同步到部署平台如Vercel和Heroku,以及生成文档。适用于Next.js、Express等框架,提升开发效率和安全性,关键词包括环境变量、管理、验证、同步、安全、部署、DevOps、Next.js、Vercel。

DevOps 0 次安装 0 次浏览 更新于 3/17/2026

name: env-manager description: 环境变量验证、同步和管理,涵盖本地开发、CI/CD 和部署平台 version: 1.0.0 category: infrastructure progressive_disclosure: entry_point: summary: “验证、同步和保护环境变量,支持框架特定的本地开发、CI/CD 和部署平台” when_to_use: “当管理 .env 文件、部署到 Vercel/Railway/Heroku、与秘密管理器同步或解决环境相关问题时” quick_start: “1. 验证本地 .env 2. 检查安全性 3. 同步到平台 4. 验证部署 5. 生成文档” references: - validation.md - security.md - synchronization.md - frameworks.md - troubleshooting.md author: Claude MPM Team license: MIT requires_tools:

  • bash
  • python tags:
  • 环境变量
  • 部署
  • 安全
  • devops
  • nextjs
  • vercel
  • railway context_limit: 800

环境变量管理器

概述

系统化管理环境变量,涵盖本地开发、CI/CD 管道和部署平台。防止常见问题,如缺失变量、暴露的秘密、平台配置错误和框架特定的陷阱。

核心能力:

  • 验证:检查结构、完整性、命名约定
  • 安全性:扫描暴露的秘密,验证 .gitignore 覆盖范围
  • 同步:与部署平台和秘密管理器同步
  • 框架支持:Next.js、Express、Flask、Django 模式
  • 文档:自动生成 .env.example 和设置指南

何时使用此技能

激活当:

  • 设置新项目环境配置
  • 部署到 Vercel、Railway、Heroku 或其他平台
  • 解决“在本地工作但在生产中不工作”的问题
  • 管理多个环境的秘密
  • 与 1Password、AWS Secrets Manager 等同步变量
  • 创建 .env.example 文档
  • 新开发者入职(环境设置)
  • 迁移部署平台
  • 框架特定的环境配置(如 Next.js 的 NEXT_PUBLIC_ 前缀)

核心原则

  1. 从不记录秘密:所有操作必须永不显示实际秘密值
  2. 部署前验证:在本地捕获环境问题,而不是在生产中
  3. 框架感知:尊重框架约定(如 Next.js、Express、Flask)
  4. 平台特定:为每个部署平台生成正确配置
  5. 安全第一:扫描暴露的秘密,验证 .gitignore

快速开始

验证工作流

# 1. 检查本地 .env 结构
python scripts/validate_env.py .env

# 2. 检查缺失变量
python scripts/validate_env.py .env --compare .env.example

# 3. 验证命名约定
python scripts/validate_env.py .env --framework nextjs

# 4. 检查重复项
python scripts/validate_env.py .env --check-duplicates

安全工作流

# 1. 扫描代码中的暴露秘密
python scripts/scan_exposed.py --scan-code

# 2. 检查 .gitignore 覆盖范围
python scripts/scan_exposed.py --check-gitignore

# 3. 验证秘密格式
python scripts/scan_exposed.py --validate-formats .env

同步工作流

# 1. 比较本地与平台
python scripts/sync_secrets.py --platform vercel --compare

# 2. 生成平台配置
python scripts/sync_secrets.py --platform vercel --generate

# 3. 同步到平台(先干运行)
python scripts/sync_secrets.py --platform vercel --sync --dry-run

# 4. 实际同步
python scripts/sync_secrets.py --platform vercel --sync

文档工作流

# 从 .env 生成 .env.example
python scripts/validate_env.py .env --generate-example

# 生成设置文档
python scripts/validate_env.py .env --generate-docs

导航

详细工作流和模式:

  • 验证:完整验证工作流和检查
  • 安全性:秘密扫描和安全模式
  • 同步:平台同步和秘密管理器集成
  • 框架:框架特定模式(如 Next.js、Express、Flask)
  • 故障排除:常见问题和解决方案

框架特定快速参考

Next.js

# 验证 Next.js 环境结构
# - NEXT_PUBLIC_* 用于客户端变量
# - 检查 .env.local、.env.production 优先级
python scripts/validate_env.py .env --framework nextjs

# 管理文件:
# - .env.local(本地开发,gitignored)
# - .env.production(生产,通常来自平台)
# - .env(共享默认值,提交)
# - .env.example(文档,提交)

Express/Node.js

# 验证 Node.js 环境结构
python scripts/validate_env.py .env --framework nodejs

# 标准结构:
# - process.env.NODE_ENV
# - process.env.PORT
# - process.env.DATABASE_URL

Python/Flask

# 验证 Python 环境结构
python scripts/validate_env.py .env --framework python

# 标准结构:
# - FLASK_APP
# - FLASK_ENV
# - DATABASE_URL(SQLAlchemy 格式)

平台特定快速参考

Vercel

# 生成 vercel.json 环境配置
python scripts/sync_secrets.py --platform vercel --generate

# 同步到 Vercel 项目
python scripts/sync_secrets.py --platform vercel --sync

# 尊重 NEXT_PUBLIC_ 前缀用于客户端变量

Railway

# 生成 Railway 配置
python scripts/sync_secrets.py --platform railway --generate

# 同步到 Railway 项目
python scripts/sync_secrets.py --platform railway --sync

Heroku

# 生成 Heroku 配置
python scripts/sync_secrets.py --platform heroku --generate

# 通过 Heroku CLI 同步
python scripts/sync_secrets.py --platform heroku --sync

关键提醒

  • 永不记录实际秘密值 - 在输出中始终掩码/编辑
  • 每次部署前验证 - 在本地捕获问题
  • 使用 .env.example 用于文档 - 保持更新
  • 框架约定很重要 - 如 Next.js 的 NEXT_PUBLIC_、Django 的 DJANGO_SETTINGS_MODULE
  • 平台特定怪癖存在 - Vercel 自动暴露 NEXT_PUBLIC_*,Railway 使用精确语法
  • 秘密管理器是您的朋友 - 如 1Password、AWS Secrets Manager 用于团队同步
  • .gitignore 至关重要 - 永不提交包含秘密的 .env 文件
  • 环境优先级可能棘手 - 了解框架的加载顺序

常见验证检查

结构验证

  • [ ] 无空值(除非明确允许)
  • [ ] 无内联注释(一些解析器不支持)
  • [ ] 带空格的值正确引用
  • [ ] 无重复键
  • [ ] 有效键命名(大写带下划线)

安全验证

  • [ ] 代码中无暴露秘密
  • [ ] .env 文件在 .gitignore 中
  • [ ] git 历史中无秘密
  • [ ] API 密钥匹配预期格式
  • [ ] 无硬编码带凭据的 URL

框架验证(Next.js)

  • [ ] NEXT_PUBLIC_* 仅用于客户端变量
  • [ ] 无秘密在 NEXT_PUBLIC_* 变量中
  • [ ] .env.local 存在用于本地秘密
  • [ ] .env.example 记录所有变量

平台验证(Vercel)

  • [ ] 所有必需变量定义
  • [ ] 环境间无冲突
  • [ ] 正确变量名(Vercel 约定)
  • [ ] 构建时与运行时变量分开

与其他技能集成

相关技能

  • docker-containerization - 容器中的环境变量
  • security-scanning - 更广泛的安全检查包括秘密
  • nextjs-local-dev - Next.js 特定开发模式
  • systematic-debugging - 调试环境相关问题

工作流集成

1. 开发者创建 .env.local
2. env-manager 验证结构
3. env-manager 扫描安全问题
4. 开发者生成 .env.example
5. 部署前:env-manager 比较本地与平台
6. env-manager 生成平台配置
7. 开发者审查并确认同步
8. env-manager 同步到平台
9. 部署继续使用已验证配置

行数:197(包括 frontmatter)✓ <200