内容
# 凯奥瑞克斯
**适用于无法使用SaaS的团队的轻量级机密管理。**
本地部署。支持空气隔离。单个二进制文件。无需Vault管理员。
---
## 为什么选择凯奥瑞克斯?
| | Vault | Doppler | 凯奥瑞克斯 |
|---|---|---|---|
| 本地部署 | 是 | 否 | **是** |
| 支持空气隔离 | 是 | 否 | **是** |
| 简单运维 | 否 | 是 | **是** |
| 欧盟公司 | 否 | 否 | **是** |
| 开源 | BSL | 否 | **AGPL** |
| 单个二进制文件 | 是 | 不适用 | **是** |
Vault功能强大,但需要专人管理。Doppler很简单,但仅限SaaS使用。凯奥瑞克斯既简单又可在您的基础设施中完全运行。
---
## 安装
```bash
curl -L https://raw.githubusercontent.com/keyorixhq/keyorix/main/install.sh | sh
```
或从源代码编译:
```bash
git clone https://github.com/keyorixhq/keyorix
cd keyorix && make install
```
---
## 快速开始
**使用Docker Compose自行托管全栈(Web UI + API + PostgreSQL):**
```bash
cp .env.example .env # 设置KEYORIX_DB_PASSWORD、KEYORIX_MASTER_PASSWORD、管理员凭证
docker compose up -d # 打开 http://localhost:8088
```
参见 [docs/SELF_HOSTING.md](docs/SELF_HOSTING.md) 以获取生产环境设置(TLS、备份、升级和重要的加密密钥处理),以及 [docs/CONFIGURATION.md](docs/CONFIGURATION.md) 以获取完整的 `keyorix.yaml` 参考(加密/KEK提供程序、MFA、WebAuthn、动态机密、OIDC等)。
**或启动服务器二进制文件:**
```bash
KEYORIX_MASTER_PASSWORD=yourpassword keyorix-server
```
**连接CLI:**
```bash
keyorix connect http://localhost:8080 --username admin --password yourpassword
```
**创建和使用机密:**
```bash
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迁移
```bash
# 从Vault(Medusa YAML导出)
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**
```bash
go get github.com/keyorixhq/keyorix-go
```
```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**
```bash
pip install keyorix
```
```python
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**
```bash
npm install keyorix
```
```javascript
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");
```
参见 [示例应用程序](https://github.com/keyorixhq/keyorix-go/tree/main/examples/petstore) 以获取使用Docker Compose的完整演示。
---
## 核心功能
**机密管理**
- 创建、读取、更新、删除机密,带有完整的版本控制
- 环境分离:开发、测试、生产
- 机密在用户和组之间共享
**访问控制**
- 基于角色的访问控制(RBAC)
- 基于组的权限
- 用于CI/CD和自动化的服务令牌
**审计和合规**
- 每个访问记录:谁、什么、何时、从哪里
- 两层审计:`audit_events` 和 `secret_access_logs`
- 符合欧洲合规要求(NIS2 / DORA)
- 机密接近轮换截止日期的仪表盘提醒
**开发者体验**
- `keyorix run` — 将机密注入任何进程
- `keyorix secret import` — 从Vault、.env文件、JSON迁移
- `keyorix connect` — 单命令服务器身份验证
- 适用于偏好UI的团队的Web仪表盘
---
## 架构
单个二进制文件。端口8080上的HTTP REST API。端口3000上的Web UI。
开发和小型团队使用SQLite。生产环境使用PostgreSQL。
空气隔离部署:复制二进制文件并运行。不需要互联网连接。
---
## 安全
- 所有机密值均使用AES-256-GCM加密
- 信封加密:密码短语 → PBKDF2 → KEK(仅内存)→ 封装的DEK
- 恒定时间令牌比较(防止时间攻击)
- 机密永远不会被记录或在错误消息中暴露
安全问题:security@keyorix.com
---
## 路线图
- Kubernetes服务账户身份验证
- 动态机密 — 按需生成凭证,带有TTL
- MCP服务器 — AI助手集成
- Java SDK
- 访问异常检测(NIS2事件检测)
---
## 许可证
AGPL-3.0。企业部署提供商业许可。
联系方式:hello@keyorix.com
---
## 关于
由Andrei Beshkov(前微软安全项目经理)于西班牙瓦伦西亚创建。
Keyorix SL — 您的基础设施中存储数据。