kira-infisical 是基于 Infisical 的自托管密钥管理服务,用于集中管理所有服务的环境变量和密钥。
部署信息
| 配置 | 值 |
|---|
| 平台 | Fly.io |
| 域名 | infisical.kira.art |
| 区域 | sjc (San Jose) |
| 内存 | 8GB |
| CPU | 4 vCPU (shared) |
| 端口 | 8080 |
功能特性
- 密钥管理: 集中存储 API keys、数据库密码等敏感信息
- 环境隔离: 支持 development、staging、production 环境
- 版本控制: 密钥变更历史记录
- 访问控制: 基于角色的权限管理
- CLI 集成: 支持在 CI/CD 中自动注入密钥
环境变量
SITE_URL = 'https://infisical.kira.art' # Web UI 访问地址
更多配置(如数据库连接、加密密钥等)存储在 Fly.io secrets 中。
使用方式
Web UI
访问 https://infisical.kira.art 管理密钥:
- 创建项目
- 添加环境 (dev/staging/prod)
- 添加密钥键值对
- 配置访问权限
CLI 工具
# 安装
npm install -g @infisical/cli
# 登录
infisical login --domain https://infisical.kira.art
# 运行命令时注入密钥
infisical run -- npm start
# 导出为 .env
infisical export > .env
SDK 集成
import { InfisicalClient } from "@infisical/sdk";
const client = new InfisicalClient({
siteUrl: "https://infisical.kira.art",
clientId: process.env.INFISICAL_CLIENT_ID,
clientSecret: process.env.INFISICAL_CLIENT_SECRET,
});
const secrets = await client.listSecrets({
environment: "production",
projectId: "your-project-id",
});
项目结构
密钥按项目和环境组织:
Kira/
├── kira-be/
│ ├── development/
│ │ ├── SUPABASE_URL
│ │ ├── SUPABASE_KEY
│ │ └── ...
│ ├── staging/
│ └── production/
├── kira-web/
│ ├── development/
│ ├── staging/
│ └── production/
└── kira-queue/
└── ...
CI/CD 集成
GitHub Actions
jobs:
deploy:
steps:
- uses: Infisical/secrets-action@v1
with:
url: https://infisical.kira.art
client-id: ${{ secrets.INFISICAL_CLIENT_ID }}
client-secret: ${{ secrets.INFISICAL_CLIENT_SECRET }}
env-slug: production
project-slug: kira-be
- run: npm run deploy
本地运行
cd kira-infisical
# 使用 Docker
docker run -p 8080:8080 \
-e ENCRYPTION_KEY=your_key \
-e DB_CONNECTION_URI=postgres://... \
infisical/infisical:latest
安全建议
以下密钥应通过 Fly.io secrets 设置,而非环境变量:
ENCRYPTION_KEY - 数据加密密钥
DB_CONNECTION_URI - 数据库连接字符串
JWT_SECRET - JWT 签名密钥
文件结构
kira-infisical/
├── .github/
│ └── workflows/ # CI/CD
├── Dockerfile # 基于 Infisical 官方镜像
└── fly.toml # Fly.io 配置
相关链接