keyorixhq/keyorix
GitHub: keyorixhq/keyorix
Keyorix 是一款专为无法使用 SaaS 的团队设计的轻量级本地密钥管理工具,支持 Air-gapped 隔离部署,具备低运维开销与欧盟合规特性。
Stars: 0 | Forks: 0
# Keyorix
**专为无法使用 SaaS 的团队打造的轻量级密钥管理工具。**
支持本地部署。支持 Air-gapped 隔离。单一二进制文件。无需专门的 Vault 管理员。
## 为什么选择 Keyorix?
| | Vault | Doppler | Keyorix |
|---|---|---|---|
| 本地部署 | 是 | 否 | **是** |
| Air-gapped 支持 | 是 | 否 | **是** |
| 运维简单 | 否 | 是 | **是** |
| 欧盟企业 | 否 | 否 | **是** |
| 开源 | BSL | 否 | **AGPL** |
| 单一二进制文件 | 是 | N/A | **是** |
Vault 功能强大,但需要专门的管理员。Doppler 简单易用,但仅支持 SaaS。Keyorix 既简单易用,又能完全运行在你自己的基础设施中。
## 安装
```
curl -L https://raw.githubusercontent.com/keyorixhq/keyorix/main/install.sh | sh
```
或者从源码构建:
```
git clone https://github.com/keyorixhq/keyorix
cd keyorix && make install
```
## 快速开始
**使用 Docker Compose 自托管全栈(Web UI + API + PostgreSQL):**
```
cp .env.example .env # set KEYORIX_DB_PASSWORD, KEYORIX_MASTER_PASSWORD, admin creds
docker compose up -d # open http://localhost:8088
```
有关生产环境配置(TLS、备份、升级以及至关重要的加密密钥处理),请参阅 [docs/SELF_HOSTING.md](docs/SELF_HOSTING.md);有关完整的 `keyorix.yaml` 参考(加密/KEK 提供商、MFA、WebAuthn、动态密钥、OIDC 等),请参阅 [docs/CONFIGURATION.md](docs/CONFIGURATION.md)。
**或者仅启动 server 二进制文件:**
```
KEYORIX_MASTER_PASSWORD=yourpassword keyorix-server
```
**连接 CLI:**
```
keyorix connect http://localhost:8080 --username admin --password yourpassword
```
**创建和使用密钥:**
```
keyorix secret create --name db-password --value supersecret
keyorix run --env production -- node app.js
keyorix run --env production -- flask run
keyorix run --env production -- ./myapp
```
密钥将作为环境变量注入。`db-password` 会变成 `DB_PASSWORD`。
## 从 Vault 迁移
```
# 从 Vault (Medusa YAML export)
keyorix secret import --file vault-export.yaml --format vault --env 1
# 从 .env 文件
keyorix secret import --file .env --format dotenv --env 1
# 导入前预览
keyorix secret import --file vault-export.yaml --format vault --env 1 --dry-run
```
## SDK
在启动时直接从应用程序获取密钥。实现零硬编码凭证。
**Go**
```
go get github.com/keyorixhq/keyorix-go
```
```
token, _ := keyorix.Login(ctx, "http://your-server:8080", "admin", "password")
client := keyorix.New("http://your-server:8080", token)
dbPassword, _ := client.GetSecret(ctx, "db-password", "production")
```
**Python**
```
pip install keyorix
```
```
token = keyorix.login("http://your-server:8080", "admin", "password")
client = keyorix.Client("http://your-server:8080", token)
db_password = client.get_secret("db-password", "production")
```
**Node.js**
```
npm install keyorix
```
```
const token = await keyorix.login("http://your-server:8080", "admin", "password");
const client = new keyorix.Client("http://your-server:8080", token);
const dbPassword = await client.getSecret("db-password", "production");
```
有关使用 Docker Compose 的完整演示,请参阅[示例应用](https://github.com/keyorixhq/keyorix-go/tree/main/examples/petstore)。
## 核心功能
**密钥管理**
- 创建、读取、更新、删除密钥,并支持完整的版本控制
- 环境隔离:开发、预发布、生产环境
- 在用户和组之间共享密钥
**访问控制**
- 基于角色的访问控制 (RBAC)
- 基于组的权限管理
- 用于 CI/CD 和自动化的服务 token
**审计与合规**
- 记录每一次访问:谁、做了什么、何时、从哪里
- 双层审计:`audit_events` 和 `secret_access_logs`
- 符合 NIS2 / DORA 标准,满足欧洲合规要求
- 面临轮换期限的密钥的仪表板过期警报
**开发者体验**
- `keyorix run` — 将密钥注入到任何进程中
- `keyorix secret import` — 从 Vault、.env 文件、JSON 迁移
- `keyorix connect` — 单条命令完成服务器身份验证
- 为偏好 UI 界面的团队提供 Web 仪表板
## 架构
单一二进制文件。HTTP REST API 运行在端口 8080。Web UI 运行在端口 3000。
在开发环境和小型团队中使用 SQLite。在生产环境中使用 PostgreSQL。
Air-gapped 部署:只需拷贝二进制文件并运行。无需互联网连接。
## 安全性
- 对所有密钥值使用 AES-256-GCM 加密
- 信封加密:passphrase → PBKDF2 → KEK(仅存于内存)→ 封装的 DEK
- 常数时间 token 比较(防止时序攻击)
- 密钥永远不会被记录到日志或在错误信息中暴露
安全问题反馈:security@keyorix.com
## 路线图
- Kubernetes service account 身份验证
- 动态密钥 — 按需生成带有 TTL 的凭证
- MCP server — AI 助手集成
- Java SDK
- 访问异常检测(NIS2 事件检测)
## 许可证
AGPL-3.0。为企业部署提供商业授权。
联系方式:hello@keyorix.com
## 关于
由 Andrei Beshkov(前 Microsoft 安全 PM)在西班牙瓦伦西亚开发。
Keyorix SL —— 你的数据始终保留在你的基础设施中。
标签:Docker, EVTX分析, MITM代理, StruQ, 大语言模型安全, 安全防御评估, 密码学, 手动系统调用, 日志审计, 本地部署, 机密管理, 测试用例, 请求拦截, 逆向工具