shabirkhan-dev/redcore
GitHub: shabirkhan-dev/redcore
一个基于 Bun + Turborepo monorepo 和 Rust CLI 的证据优先网络安全运营平台,通过版本化契约管理可复现的实验室环境与签名证据。
Stars: 0 | Forks: 0
# RedCore + Blade
[](https://github.com/shabirkhan-dev/redcore/actions/workflows/ci.yml)
[](https://github.com/shabirkhan-dev/redcore/actions/workflows/security.yml)
基于 **Bun + Turborepo** monorepo 构建的证据优先网络安全运营平台。
- **Blade** — 可信执行平面:可复现的实验室环境、策略、签名证据、清理。独立产品;可从 CLI 直接运行,无需 RedCore。
- **RedCore** — 围绕 Blade 构建的运营和编排层(Web、API、移动端)。已规划;非当前里程碑。
本仓库是**契约优先**的。Blade 目前以只读 CLI 的形式发布;RedCore 应用复用 Starter kit 布局,为未来的运营 UI 和 API 工作做准备。
## 快速开始
**前置条件**
- [Bun](https://bun.sh) `1.3.13`
- [Rust](https://rustup.rs) `1.97`,包含 `rustfmt` 和 `clippy`(用于 Blade)
- 可选:Docker Compose `v2.20+`
```
git clone https://github.com/shabirkhan-dev/redcore.git
cd redcore
bun install
bun run prepare
```
### Blade(当前里程碑)
```
cargo generate-lockfile # first time only
bun run test:contracts
bun run test:blade
bun run blade -- version
bun run blade -- doctor
bun run blade -- build validate examples/operator/Bladefile.json
bun run blade -- lab validate examples/labs/web-pentest.lab.json
```
验证命令接受 `--output text` 或 `--output json`。退出码:`0` 正常,`1` 契约/前置条件失败,`2` 用法错误,`3` 输入/读取错误,`4` 引擎错误。
锁解析、产物下载、镜像构建、runtime 配置、网络和证据捕获**尚未实现**。参见 [docs/architecture/phase-gap.md](docs/architecture/phase-gap.md) 和 [plan.md](plan.md)。
### 完整 monorepo 开发(Starter 应用)
```
bun run dev
```
| 应用 | URL (dev) |
| --- | --- |
| Web | http://localhost:3000 |
| Nest API | http://localhost:4000 |
| 文档 | http://localhost:3002/docs |
## 仓库布局
| 区域 | 用途 |
| --- | --- |
| `crates/` | Blade Rust workspace(`blade-cli`, `blade-core`) |
| `packages/contracts` | `@redcore/contracts` — Bladefile, LabSpec, EvidenceEvent, SignedOperationRequest v1 |
| `packages/ui`, `logger`, `typescript-config` | 共享的 Starter kit 包(`@school-os/*`) |
| `apps/web`, `mobile`, `nest-api`, `docs`, `ai-api`, `rust` | 未来的 RedCore 运营界面(目前的 Starter 脚手架) |
| `docs/adr`, `docs/architecture` | Blade/RedCore 架构决策和差距报告 |
| `examples/` | 运营 Bladefile 和 lab spec 测试夹具 |
| `plan.md` | 动态更新的产品和路线图文档 |
| `docker/`, `.github/workflows/` | Compose 片段、CI/CD、安全 |
## 根命令
| 命令 | 用途 |
| --- | --- |
| `bun run blade -- ` | 运行 Blade CLI(`cargo run -p blade-cli`) |
| `bun run test:contracts` | 测试 `@redcore/contracts` |
| `bun run test:blade` | 为 Blade crates 运行 `cargo test` |
| `bun run check:contracts` | 对 contracts 包进行类型检查 |
| `bun run check:blade` | 为 Blade workspace 运行 `cargo check` |
| `bun run dev` | 启动 Starter 应用开发服务器 (Turbo) |
| `bun run build` | 构建所有应用 |
| `bun run lint` / `lint:fix` | Biome + 脚本 linter |
| `bun run format` | 格式化 TS/JS、shell、Python、Rust |
| `bun run typecheck` | 跨 workspace 的 TypeScript 检查 |
| `bun run test` / `test:coverage` | Workspace 测试 + 覆盖率 |
| `bun run test:e2e:web` | 针对 Web 的 Playwright e2e 测试 |
| `bun run architecture:check` | 导入边界规则 |
| `bun run preflight` | Lint + 类型检查 + 测试 |
## 语言边界
- **Rust** — Blade CLI、daemon(已规划)、策略、runtimes、网络、证据、TTL、状态协调。
- **Bun + TypeScript** — 契约、workspace 工具;后续用于 RedCore API 和 Web 应用。
- **Python** — 仅在包边界处用于隔离的工具适配器和自动化。
Blade 可在 Windows、macOS 和 Linux 上运行。容器副作用运行在 **Linux 执行平面**上(原生 Linux、WSL2、虚拟机或云)。客户端通过经过身份验证的 API 控制 Blade;它们不直接运行 Podman。参见 [docs/adr/0006-portable-clients-use-a-linux-blade-execution-plane.md](docs/adr/0006-portable-clients-use-a-linux-blade-execution-plane.md)。
## Docker
```
cp env.docker.example .env
docker compose up -d --build
```
Web `:3000` · Nest `:4000` · Postgres 主机 `:5433`。详情:[docker/README.md](docker/README.md) 和文档应用路由 `/docs/docker`。
## 文档
| 文档 | 用途 |
| --- | --- |
| [plan.md](plan.md) | 愿景、阶段和接下来的即时步骤 |
| [docs/adr/](docs/adr/) | 架构决策记录 |
| [docs/architecture/phase-gap.md](docs/architecture/phase-gap.md) | 阶段 0/1 差距报告 |
| [PROJECT.md](PROJECT.md) | Monorepo 布局和约定 |
| [AGENTS.md](AGENTS.md) | AI Agent 指令 |
| [DESIGN.md](DESIGN.md) | UI 设计简报(运营界面) |
| `apps/docs` | Fumadocs 站点(`bun --cwd apps/docs run dev`) |
## 许可证
根据您的选择,在 **MIT** 或 **Apache-2.0** 双重许可下:
[LICENSE-MIT](LICENSE-MIT), [LICENSE-Apache-2.0](LICENSE-Apache-2.0)。
标签:Bun, Rust, 可视化界面, 安全运营, 扫描框架, 特征检测, 网络安全, 网络流量审计, 自动化攻击, 请求拦截, 隐私保护