Infisical 一键自建密钥管理台:Docker Compose 最小部署与验证路径
【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical
Infisical 是一个开源的密钥管理平台,覆盖密钥管理、证书管理(PKI)和特权访问管理(PAM)三块核心能力。如果你的团队还在用文档、聊天记录或 CI 明文变量管密码和 API Key,它可以用一套 Web 控制台把这些东西收拢起来:按项目和环境隔离密钥、自动记录版本、控制谁能动哪些东西。下文给出一条最短的 Docker Compose 部署路径,以及部署后如何确认它真的可用。
这套东西能替你做什么
- 密钥集中与版本化:所有密钥按项目 × 环境(开发/测试/生产)组织,每次修改都留痕,可回溯对比。
- 权限隔离:项目成员按角色分配只读、编辑、管理权限,敏感操作可配合审批流。
- 密钥下发:通过 CLI、SDK 或 API 把密钥注入到本地开发、CI 和容器运行时,而不是散落在各处。
- 证书与 PAM 扩展:私有 CA 签发、证书到期告警、数据库/SSH 等基础设施的临时授权访问,属于进阶能力,可以先跑通密钥管理再逐步启用。
它适合:中小团队自建密钥基础设施、合规要求数据留在自己机器上的场景。它不适合:需要高可用集群的生产环境——官方文档明确 Compose 方案面向 POC 和小型部署,大规模请直接看 Kubernetes/Helm 方案。
部署前置条件
一台 Linux/macOS 机器,装好Docker Engine 20.10+和Docker Compose 2.0+,先跑docker --version和docker compose version确认。官方给出的最低资源线:
| 项目 | 最低 | 建议 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 4 GB | 8 GB |
| 磁盘 | 20 GB | 50 GB+(SSD) |
这套数字包含 Infisical 后端、PostgreSQL 和 Redis 三个容器,资源紧张时容器会起不稳。
最短路径跑通
目标:三个容器起来,控制台能访问。
- 拿到代码和配置文件。克隆仓库后,根目录就有生产用的
docker-compose.prod.yml和环境变量模板.env.example:
git clone https://gitcode.com/GitHub_Trending/in/infisical cd infisical && cp .env.example .env- 修改
.env。至少替换ENCRYPTION_KEY和AUTH_SECRET两个值(模板里的是示例值,注释中明确写了不可用于生产),并把SITE_URL改成你实际的访问地址。这份文件含全部连接凭据,不要提交到代码仓库。 - 一键启动:
docker compose -f docker-compose.prod.yml up -d这条命令会拉起backend(Web 控制台 + API,宿主 80 端口映射容器 8080)、db(PostgreSQL)、redis(缓存与队列)三个容器,并挂上持久化卷。
验证服务是否可用
不要只看容器是不是Up,按顺序做两个检查:
- 容器状态:
docker compose -f docker-compose.prod.yml ps,三个服务都应为 Up,且 db 已通过健康检查(backend 依赖它)。 - API 探测:
curl -s http://localhost/api/status,有 JSON 响应即说明后端已就绪。
然后浏览器打开http://localhost,第一个注册的用户会成为实例管理员,请在对外暴露之前完成这个步骤。登录后可看到 Secrets Overview 界面:每个密钥名后跟 Development / Staging / Production 三列状态,绿色勾表示该环境已配置,一目了然。
把密钥真正用进应用
跑通控制台只是第一步,价值在于下发。最轻量的方式是Infisical CLI:在应用的 Dockerfile 里安装 CLI,并把启动命令包一层infisical run,例如CMD ["infisical", "run", "--", "npm run start"];再用docker run --env INFISICAL_TOKEN=<令牌>启动容器,指定环境的密钥就会以环境变量形式注入进程。令牌在控制台的项目设置里创建,注意限定到具体环境,遵循最小权限。完整写法可对照仓库内 Docker 集成文档。
密钥改完后如果没同步到应用,先查两点:令牌是否覆盖了目标环境;启动命令是否真的走了infisical run前缀。
多人协作时,在 Members 页把成员加进来并分派 Admin / Developer 等角色即可,无需为每人发全局凭据。
卡住时按这个顺序查
- 容器起不来:
docker compose -f docker-compose.prod.yml ps -a看哪个挂了,再用logs -f看它的日志。高频原因是 80 端口被占用、内存低于 4 GB、.env变量名拼错。 - 浏览器打不开但容器是 Up:
curl -v http://localhost/api/status分是本机不通还是外部不通;本机通则查防火墙放行 80 端口,并核对.env里的SITE_URL是否与访问方式一致。 - 数据库报错:
docker compose -f docker-compose.prod.yml exec db pg_isready探活;.env中DB_CONNECTION_URI与 PostgreSQL 三件套(user/password/db)必须一致。 - 忘了 ENCRYPTION_KEY:备份时务必把
.env里的ENCRYPTION_KEY和数据库备份一起存。丢了它,数据库还原了也解不开密钥,以仓库文档说明为准。
延伸入口
- Docker Compose 部署指南:端口、防火墙、备份、升级的完整操作
- 环境变量全表 与
.env.example - CLI 用法、Docker 注入详解
- 自托管 FAQ
下一步建议:先接入一个真实项目的密钥跑一周,再按需开启审计日志、密钥轮换和 SSO,避免一次性把所有高级功能全铺开。
【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考