Orchidea DevBase
Orchidea DevBase 是 Orchidea 全产品线的开发基座平台:在一个 Cargo workspace 中提供身份认证、Git 托管、CI/CD 流水线、实时协作、知识图谱、媒体服务与 API 网关等基础能力,并以 Tauri 桌面客户端(SvelteKit + Tauri v2)作为统一入口,覆盖从编码、构建、测试到部署、协作的完整开发闭环。
当前版本:0.3.0(
VERSION与Cargo.tomlworkspace 版本一致)
2026-11 能力更新(v0.3.0)
- MCP 服务代理:把 pipeline / git / graph / media / identity 的完整 HTTP 能力封装为受权限约束的
*_api工具(统一要求ai:use,identity_api额外要求管理员),路径前缀白名单限制 AI 可达面 - 构建镜像:补齐 git-sshd 与 Rust 服务多阶段构建镜像
2026-10 能力更新(v0.2.0)
- 媒体集群路由:网关按房间归属转发(
/cluster/rooms/:id、/cluster/place),节点不可达、路由超时(默认 800ms)或 502/503/504 时自动接管;同房间 30 秒冷却,响应带x-orchidea-room-reassigned;信令 WebSocket 支持/signal、/signal/:room_id - 能力注册表:157 条权限、48 个 MCP server 条目,作为权限单一事实源;11 个上游按路径/方法映射细粒度权限,并校验组织隔离
- 身份与凭据:RFC 7591 动态客户端注册(仅 PKCE 公共客户端);新增
orchidea-credential-broker,通过用户级 Unix socket 共享登录令牌 - 知识图谱存储 v2:
CURRENT_SCHEMA_VERSION = 2,relations增加source_kind/target_kind及索引 - 协作市场:Plugin / McpTool / Template / Skill 四类条目,含安装钩子与评分评论
定位
DevBase 面向 Orchidea 生态(ERP/MOM 平台、本体知识图谱、AI 编程、工业互联等产品线)提供统一的开发与协作基础设施:
- 作为 Level 4 协同层的基础设施底座,为各产品的开发、CI/CD、部署与可观测性提供统一基座;
- 内置身份认证、Git 托管、CI 流水线、实时协作、知识图谱与媒体等通用服务,避免各产品重复建设;
- 通过 Tauri 桌面客户端 聚合登录、仪表盘、Git、协作、知识、AI 等入口,提供一体化开发体验。
核心能力
| 能力 | 说明 |
|---|---|
| 身份认证(Identity) | 统一身份服务:JWT 认证、Argon2 密码哈希、TOTP 多因素认证、WebAuthn、SAML、LDAP 外部身份集成、SSH 密钥管理、密码策略、账号锁定、JIT 用户供给、审计存储 |
| Git 托管(Git) | 自托管 Git 仓库服务:基于 gix 的 Git 协议实现、russh SSH 服务器与 git-shell 钩子、授权密钥检查、Gitaly gRPC 客户端、可选 S3/MinIO 对象存储后端 |
| CI/CD 流水线(Pipeline) | 分布式流水线引擎:基于 NATS 的作业分发、PostgreSQL 持久化、Dhall 流水线配置、归档/压缩产物支持、WebSocket 日志流、幂等与弹性重试 |
| 实时协作(Collab) | 实时消息与协作系统:Socket.IO 实时通信、在线状态与录制、TURN 凭据、搜索(Meilisearch)、可选 FCM/APNS/邮件推送、MCP Server 集成 |
| 知识图谱(Graph) | 统一知识图谱索引:tree-sitter 多语言代码解析(Rust/TypeScript/C#/Python/Java)、Markdown 解析、Meilisearch 检索、GraphQL 与 gRPC 接口、本体解析 |
| 媒体服务(Media) | WebRTC SFU 媒体服务器:str0m 音视频转发、RTP/RTCP 处理、录制进程管理、媒体指标采集 |
| API 网关(Gateway) | 高性能 API 网关:上游代理(含 plex/archive 等上游路由)、TLS(rustls)、ACME/Let’s Encrypt 证书、Redis 速率限制、WebSocket 代理、可观测性指标 |
| Runner | 流水线执行 Runner,接收并执行作业 |
| Foundation | 共享基础库:配置加载、错误类型、健康检查、日志与追踪(OpenTelemetry)、指标、JWT、S3 预签名 URL 等公共能力 |
架构:Cargo Workspace
Workspace 由 9 个 crate 组成(crates/),桌面端 apps/desktop/src-tauri 独立于 workspace 构建:
| Crate | 职责 |
|---|---|
orchidea-foundation | 共享基础类型与工具(config、error、health、logging、metrics、tracing、JWT、S3 等) |
orchidea-gateway | API 网关:上游代理、TLS、ACME、速率限制 |
orchidea-identity | 身份认证:OAuth2/JWT、SAML、LDAP、WebAuthn、TOTP |
orchidea-git | Git 托管:SSH 服务器、git-shell、Gitaly 客户端、对象存储 |
orchidea-collab | 实时协作:Socket.IO、搜索、推送、MCP |
orchidea-graph | 知识图谱:代码索引器、本体解析、GraphQL/gRPC |
orchidea-pipeline | CI/CD 流水线引擎(NATS 分发 + PostgreSQL 持久化) |
orchidea-media | WebRTC SFU 媒体服务器 |
orchidea-runner | 流水线执行 Runner |
技术栈:Rust(edition 2021,MSRV 1.75)+ Tokio + Axum;前端 SvelteKit(Svelte 5)+ Vite + Tauri v2;数据库 PostgreSQL(sea-orm);缓存 Redis;对象存储 MinIO/S3。
桌面客户端
apps/desktop 是 DevBase 的统一桌面客户端(Tauri v2 + SvelteKit),提供登录、仪表盘、Git、协作、知识、AI、技能、任务、沙箱、设置、视频等页面,并集成 Tauri 插件(自动更新、Shell、深链、进程管理)。
cd apps/desktop
pnpm install
pnpm dev # SvelteKit 开发模式
pnpm tauri:dev # Tauri 桌面应用开发模式
pnpm build # 前端构建
pnpm tauri:build # 桌面应用打包
构建与运行
环境要求
- Rust 1.75+(workspace MSRV)
- Node.js ≥ 18、pnpm(
package.json声明pnpm@9.15.6) - PostgreSQL / Redis / MinIO 等基础设施(可用 docker compose 一键启动)
构建与测试后端
cargo build --workspace
cargo test --workspace --all-targets --all-features
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo fmt --all -- --check
启动基础设施
docker-compose.yml 提供本地开发所需的基础服务(端口映射见文件内配置):
- PostgreSQL 16(PgBouncer 连接池)
- Redis 7(+ Redis Commander 管理界面)
- MinIO(S3 兼容对象存储,启动时自动创建
orchidea-storage及 lfs / pipeline-artifacts / collab-files / media-recordings 等桶) - Jaeger(分布式追踪)、Prometheus(指标)、Grafana(监控面板)
docker compose up -d
docker-compose.servers.yml 则编排 DevBase 各服务(gateway / identity 等)及其上游路由(如 ORCHIDEA__UPSTREAMS__archive__URL、ORCHIDEA__UPSTREAMS__plex__URL)。
配置
复制 .env.example 为 .env 并按需修改:
cp .env.example .env
主要环境变量:
| 变量 | 说明 |
|---|---|
POSTGRES_USER / POSTGRES_PASSWORD / DATABASE_URL | PostgreSQL 连接信息 |
REDIS_URL | Redis 连接地址 |
MINIO_ROOT_USER / MINIO_ROOT_PASSWORD | MinIO 管理员凭据 |
GRAFANA_USER / GRAFANA_PASSWORD | Grafana 登录凭据 |
ORCHIDEA_COLLAB_INTERNAL_SHARED_SECRET | Collab 服务间共享密钥 |
ORCHIDEA_SMOKE_ADMIN_USERNAME / ORCHIDEA_SMOKE_ADMIN_PASSWORD | 冒烟测试管理员账号 |
质量保障与 CI
- CI 流水线(
.github/workflows/audit.yml)包含三个 job:quality:cargo fmt+cargo check+cargo clippy+cargo test(Ubuntu/macOS × Rust 1.75/stable 矩阵);security:cargo-audit(漏洞扫描)+cargo-deny(许可证合规,见deny.toml);compliance:ISA-95 命名合规检查、本体 SHACL 校验、知识库健康检查、网关上游配置检查。
- 本地一键审计:
./scripts/audit.sh(详见QA_README.md)。
文档入口
| 文档 | 内容 |
|---|---|
AGENTS.md | 开发规范与 ISA-95 标准感知指引 |
QA_README.md | 代码质量门禁说明(rustfmt/clippy/cargo-audit/cargo-deny) |
UI.md | Orchidea UI Design System V2.0 |
copy.md | 洁净复刻工程规范 |
CHANGELOG.md | 变更记录 |
目录结构
orchidea-devbase/
├── crates/ # 9 个 workspace crate
│ ├── orchidea-foundation/ # 基础库
│ ├── orchidea-gateway/ # API 网关
│ ├── orchidea-identity/ # 身份认证
│ ├── orchidea-git/ # Git 托管
│ ├── orchidea-collab/ # 实时协作
│ ├── orchidea-graph/ # 知识图谱
│ ├── orchidea-pipeline/ # CI/CD 流水线
│ ├── orchidea-media/ # WebRTC 媒体
│ └── orchidea-runner/ # Runner
├── apps/desktop/ # 桌面客户端(SvelteKit)
│ └── src-tauri/ # Tauri v2 壳
├── scripts/ # 审计、冒烟、种子、部署脚本
├── .github/workflows/audit.yml
├── Cargo.toml # workspace 定义
├── deny.toml # cargo-deny 许可证策略
├── docker-compose.yml # 基础设施编排
├── docker-compose.servers.yml # DevBase 服务编排
├── .env.example # 环境变量模板
├── VERSION # 版本号(0.2.0)
└── QA_README.md / AGENTS.md / UI.md / copy.md / CHANGELOG.md
许可证
本仓库以 MIT OR Apache-2.0 双许可证发布(见 Cargo.toml 的 workspace.package.license 声明)。