InsForge 密钥管理:4 步配好 .env,让配置直接过上线自查
【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge
刚 clone 下来,一堆ik_、anon_前缀的变量在眼前,到底填什么?本文把 InsForge 密钥管理与环境变量配置一次讲透:复制模板、生成密钥、填核心变量、启动验证。照完 4 步,你的.env就能上线。
先认路:这套 .env 配置管什么 🧭
.env是 InsForge 密钥管理的入口,自托管用到的变量全在一份.env.example里,按三组来认:
- 服务器与数据库变量:
APP_PORT、POSTGRES_PORT等服务端口,POSTGRES_USER/POSTGRES_PASSWORD数据库凭证,决定实例跑在哪、怎么连。 - 认证密钥:
JWT_SECRET、ENCRYPTION_KEY、ROOT_ADMIN_PASSWORD,加上ACCESS_API_KEY/ACCESS_ANON_KEY一对访问密钥,决定谁能进系统。 - 第三方服务凭证:OAuth 社交登录、对象存储、AI 网关、支付,全部可选,用到再填。
第一次跑通:4 步填好 .env 🔧
- 复制模板生成真实配置文件:
cp .env.example .env- 用
openssl生成两个 32 位随机密钥,一个签会话、一个做数据加密,必须不同:
openssl rand -base64 32 # 输出填给 JWT_SECRET openssl rand -base64 32 # 输出填给 ENCRYPTION_KEY- 填 3 个核心变量:上面两个密钥,再加
POSTGRES_PASSWORD(模板默认是postgres,自托管必改)。ACCESS_API_KEY和ACCESS_ANON_KEY可以留空,首次启动会自动生成ik_/anon_密钥对。 - 启动并验证:
docker compose up -d docker compose logs -f日志无报错即成功,浏览器打开http://localhost:7131能看到 dashboard,API 入口在http://localhost:7130。
拆解配置蓝图:.env.example 逐块看
整份环境变量配置按 6 个区块就能读下来,只需记住填写要点:
| 配置区块 | 代表变量 | 填写要点 |
|---|---|---|
| 实例与服务端口 | COMPOSE_PROJECT_NAME、APP_PORT、POSTGRES_PORT | 项目名是容器、卷、网络的前缀,同机多实例必须不同 |
| 数据库 | POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB | 生产环境改强密码;接外部数据库时改连接串即可 |
| 认证密钥 | JWT_SECRET、ENCRYPTION_KEY、ROOT_ADMIN_PASSWORD | 前两者 32 位以上随机,加密密钥与 JWT 必须不同 |
| 访问密钥 | ACCESS_API_KEY、ACCESS_ANON_KEY | ik_前缀是管理员密钥,anon_是公开密钥,留空首启自动生成 |
| 存储 | S3_BUCKET、S3_ENDPOINT_URL、S3_ACCESS_KEY_ID | 默认留空走本地磁盘,设置桶名即切 S3 兼容存储 |
| 第三方与云 | OPENROUTER_API_KEY、STRIPE_TEST_SECRET_KEY、PROJECT_ID | 按需填写,多租户云变量自托管可留空 |
敏感数据怎么防住 🔒
InsForge 对敏感数据的保护,可以按“风险 → 对策”配对理解:
- 风险:API 密钥、OAuth token 若明文落库,库一泄露全部跟着漏。对策:写入前用
ENCRYPTION_KEY加密,加密与令牌逻辑在 backend/src/infra/security/。 - 风险:
ENCRYPTION_KEY与JWT_SECRET相同,日后轮换 JWT 会让已存的密钥永久无法解密。对策:两个值独立随机生成,独立轮换。 - 风险:
.env提交进仓库,或生产沿用change-this-password这类模板默认值。对策:仓库只发布.env.example,真实.env只留在本机;且 compose 对未设置的变量会回退到公开默认值,所以“没填”是风险而不是兜底。
按需进阶:两个高频凭证场景
社交登录:在开发者控制台注册应用,填两对变量,回调 URL 指回本机地址即可(生产改成你的域名):
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET:Google OAuth 应用的客户端 ID 与 secret- 回调 URI 填
http://localhost:7130/auth/google/callback - 其余 GitHub、Microsoft、Discord、Apple 登录结构相同,前缀换成
GITHUB_等即可
对象存储:S3_*留空时文件落本地磁盘,接 S3 兼容存储则填 4~5 个变量:
S3_BUCKET:桶名,设置它即切换到 S3 提供方S3_ENDPOINT_URL:MinIO 等非 AWS 服务的地址,用 AWS 则留空S3_ACCESS_KEY_ID/S3_SECRET_ACCESS_KEY:存储访问密钥对S3_USE_PRESIGNED_URLS=false:端点浏览器不可达时启用代理模式
Stripe、Razorpay 支付和 OpenRouter AI 网关等集成同理:密钥放进.env,先用测试环境验证,再切生产密钥。
上线前自查:环境变量配置 6 条清单 ⚠️
- 占位符与默认值全部改掉:
POSTGRES_PASSWORD、ROOT_ADMIN_PASSWORD不再是postgres/change-this-password JWT_SECRET与ENCRYPTION_KEY各自 32 位以上且互不相同- 开发、生产各用一套密钥,不跨环境复用
- OAuth 回调 URL 已改为生产域名
.env没有进入版本控制- 支付、AI 等第三方密钥先跑过测试环境
踩坑速查
- 认证失败(401):带密钥请求被拒 → 查
JWT_SECRET是否 32 位以上且与 PostgREST 的配置一致;查ACCESS_API_KEY是否ik_前缀、而不是占位符。 - 数据库连不上:postgres 容器反复重启 → 查
POSTGRES_PASSWORD与POSTGRES_PORT是否冲突;用docker compose logs -f看健康检查输出。 - 密钥格式错误:
anon_密钥不生效 → 把ACCESS_ANON_KEY留空让后端自动生成,别手写占位文本。
写在最后
密钥随机生成、按环境分离、加密落库,这份配置就可以放心交给生产。认证与密钥流程的细节见 docs/core-concepts/authentication/overview.mdx。
【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考