Olib-AI/ovc
GitHub: Olib-AI/ovc
OVC 是一个安全、自托管的加密版本控制系统,将整个仓库存储在单个可随处放置的 .ovc 文件中并兼容 Git。
Stars: 4 | Forks: 0
OVC: Olib Version Control
Secure, self-hosted version control: encrypted single-file repositories you can store anywhere.
Every commit, branch, tag, and file history lives in a single encrypted .ovc blob. Use OVC through the native desktop app, the browser UI, or the CLI. The desktop app includes its local service and works without a separate CLI installation.
Built by Olib AI
## 文档 - [快速入门](docs/getting-started.md):安装、密钥生成和基础工作流 - [桌面应用](docs/desktop-app.md):原生安装程序、引导流程、存储和开发 - [CLI 参考](docs/cli-reference.md):完整的命令列表、标志和环境变量 - [架构与安全模型](docs/architecture.md):仓库格式、加密规范、RBAC 和云同步安全性 - [Actions 引擎](docs/actions-engine.md):内置检查、DAG 调度器和 Docker 集成 - [Web UI 与本地 LLM 集成](docs/webui-and-llm.md):React Web 界面和 AI 功能 ## 为什么选择 OVC? 现代团队需要完全由自己掌控的版本控制系统,同时不放弃云基础设施带来的便利。 - **自托管,零信任**:你的代码永远不会触及你无法控制的服务器;在任何云(iCloud、GCS、S3、Dropbox、NAS)上存储加密仓库,同时保留完全的所有权 - **静态和传输中均加密**:每个仓库对应一个加密文件;拦截文件的攻击者只能看到密文 - **单个密钥对搞定一切**:加密仓库、签名提交、验证队友(无需 GPG) - **像 Git 一样工作**:相同的心智模型,相同的工作流,零学习成本 - **协作安全**:通过任何云存储进行文件锁定、冲突检测和共享仓库的自动合并 ## 核心功能 - **静态加密**:采用 XChaCha20-Poly1305 加密和 Ed25519+X25519 密钥对 - **单一便携文件**:你的整个仓库都在一个 `.ovc` 文件中;可将其存储在 iCloud、GCS、S3、Dropbox、USB、NAS 上,或通过电子邮件发送 - **提交签名与验证**:Ed25519 签名,在 CLI 和 Web UI 中显示已验证/未验证徽章 - **一把钥匙,两种用途**:同一把密钥既加密仓库又签名提交(无需 GPG) - **多用户协作**:通过任何云存储共享 `.ovc` 文件;跨进程锁定、冲突检测、预写式日志和自动合并确保每个人的工作安全 - **云同步**:通过 FastCDC 进行内容定义分块;仅传输已更改的部分;支持本地、GCS 和可扩展的后端 - **兼容 Git**:具备完整历史保真度的双向导入/导出 - **内置 Actions 引擎**:28 项内置检查 + 自定义 shell 命令,支持 DAG 依赖的并行执行、矩阵策略、密钥保险库和重试逻辑 - **本地 LLM 集成**:通过任何兼容 OpenAI 的本地模型(Ollama、LM Studio)实现 AI 驱动的提交信息、PR 审查、差异解释和 PR 描述;多轮 map-reduce 流水线可处理任意大小的差异 - **原生桌面应用**:独立的 macOS、Windows 和 Linux 应用,内置本地服务和 React UI - **高级 Web UI**:带有 SVG 通道的提交图、分屏差异查看器、blame 视图、代码搜索、命令面板、提交操作和 toast 通知 - **单一二进制文件**:集成了 VCS + 加密 + Git 桥接 + 云同步 + Actions 引擎 + LLM 集成 + Web 服务器 + React UI - **访问控制 (RBAC)**:基于用户的角色(读取、写入、管理员、所有者),并支持分支保护 - **内存安全**:工作区全局设置 `unsafe_code = "forbid"`;密钥在 drop 时通过 `zeroize` 清零 - **安全加固**:常数时间认证、密钥清零、路径遍历保护和有界的资源分配 ## 快速开始 ### 安装 #### 桌面应用 从 [GitHub Releases](https://github.com/Olib-AI/ovc/releases/latest) 下载适用于你平台的安装程序: - macOS:适用于 Apple Silicon 或 Intel 的签名且经过公证的 DMG 文件 - Windows:MSI 安装程序 - Linux:DEB 软件包或便携式 AppImage 安装后打开 OVC。应用程序会自动启动其专用的本地服务,并引导新用户完成创建其首个加密仓库的过程。此过程不需要使用 CLI。 #### CLI **Linux & macOS:** ``` curl -fsSL https://raw.githubusercontent.com/Olib-AI/ovc/main/scripts/install.sh | bash ``` **Windows (PowerShell):** ``` irm https://raw.githubusercontent.com/Olib-AI/ovc/main/scripts/install.ps1 | iex ``` ### 创建你的第一个仓库 ``` # 基础:当前目录中的 .ovc file ovc init --name my-project.ovc --key mykey # 使用 cloud sync:.ovc file 位于 iCloud,code 保留在本地 ovc init --name my-project.ovc --key mykey \ --store ~/Library/Mobile\ Documents/com~apple~CloudDocs/ovc-repos/ ``` ### 日常工作流 ``` ovc add . # Stage all files ovc commit -m "add feature X" # Commit (auto-signed if OVC_SIGN_COMMITS=true) ovc status # Working tree status ovc log --oneline --graph # Commit history with branch graph ovc diff # View changes ``` ## 从源码构建 ### 前置条件 - Rust 1.85+(edition 2024) - Node.js 20+(仅用于前端构建) ``` # 构建 frontend(嵌入到 binary 中) cd frontend && npm install && npm run build && cd .. # 构建 binary cargo build --release # 在当前平台构建原生 desktop app cargo install cargo-bundle --version 0.11.0 cargo bundle --release -p ovc-desktop # 安装 sudo cp target/release/ovc /usr/local/bin/ovc # 运行 tests cargo test --workspace # 200+ tests # Lint cargo clippy --workspace # strict: all + pedantic + nursery ``` ## 许可证 MIT 许可证 ``` Copyright (c) 2025 Olib AI标签:Rust, 加密存储, 单文件仓库, 可视化界面, 版本控制系统, 网络流量审计, 自托管, 请求拦截, 通知系统