LGH(LocalGitHub)是一个轻量级本地 Git 托管服务,将 git http-backend 封装为类似 GitHub 的 HTTP 访问接口,完全运行在 localhost,把本地目录变成 Git 服务器。项目使用 Go 编写,采用 MIT 许可证。
【主要能力】
- 轻量:单一二进制文件,无外部依赖。
- 易用:直观的 CLI 命令,一键完成仓库设置。
- HTTP 访问:标准 Git HTTP 协议,兼容所有 Git 客户端。
- 认证:内置 Basic Auth,使用加盐密码哈希。
- 只读模式:可选的只读模式以保护仓库。
- mDNS 发现:支持局域网自动发现,便于团队协作。
- 隧道支持:一键暴露到互联网(ngrok、cloudflared)。
- 智能归档(v1.2.0):lgh up / lgh save 命令,自动生成 .gitignore;自动检测项目类型(Python、Go、Node、Java、Rust、AI/ML)并生成合适的 .gitignore;阻止大于 50MB 的大文件和敏感文件(.env、*.key)。
- MCP Server(v1.2.0):集成 AI 代理(Cursor、Claude Desktop);通过 MCP 使用时返回精确的 triggered_job_ids: [...] 数组,便于 AI 跟踪流水线状态。
- 代理集成(v1.1.0+):实时订阅(Unix Socket),连接 ~/.localgithub/lgh.sock 接收所有动作(仓库添加、git push 等)的 JSON 事件流,协议为 Unix Socket、JSON Lines,只读且仅限本地用户连接;事件回放(模拟),将过去事件注入系统以测试代理,回放事件在负载中包含 "_replayed": true。
【安装方式】
- 下载预编译二进制(推荐):下载 lgh-windows-amd64.exe,重命名为 lgh.exe,移动到 %PATH% 中的文件夹(如 C:\Program Files\lgh\),在 PowerShell 或命令提示符中运行。
- 安装脚本。
- Homebrew(macOS)。
- 从源码构建。
- Go Install。
【使用方式】
- 初始化 LGH 环境:在 ~/.localgithub/ 中创建所需目录和配置文件。
- 启动服务器:默认监听 http://127.0.0.1:9418。
- 一步添加并推送(v1.0.9+):初始化 Git 仓库(如尚未初始化)、自动提交所有文件(如仓库为空)、注册到 LGH、立即自动推送到服务器。
- 仅添加不推送:适合需要手动控制的情况。
- 智能归档(v1.2.0+):备份和同步代码的最快方式。 添加后可使用标准 Git 命令;也可从别处克隆。
【命令参考】
- 仓库管理(v1.0.4+):无需复杂 git 命令即可管理本地仓库状态;查看当前推送到的远端;在 LGH 与 origin(如 GitHub)之间轻松切换。
- 监控与日志(v1.0.5+):实时跟踪系统活动和仓库变更。
- 代理集成(v1.1.0+):LGH 被设计为 AI 代理的“事实来源”。
【MCP 快速设置】 场景一:已安装 LGH,在 AI 编辑器配置文件中更新(如 ~/.cursor/mcp.json)。 场景二:尚未安装 LGH(一键安装):运行单条命令安装最新二进制,然后按场景一操作。LGH 是单一二进制文件,无需单独的“MCP 插件”,lgh 二进制本身就是 MCP 服务器。 可让 AI 代理询问:“Check LGH status”,若其调用 lgh_status 并响应,即表示配置成功。
【认证与安全】 在网络上共享仓库时启用认证:设置认证、客户端认证、安全最佳实践。密码至少 8 个字符;配置文件存储加盐哈希而非明文。详见 docs/SECURITY.md。 隧道功能:支持多种方式将本地服务暴露到互联网;暴露到互联网前务必启用认证(lgh auth setup)或使用反向代理。
【高级用法】 局域网共享(带认证)、生产部署(推荐)、CI/CD 集成。
【与其他方案对比】 LGH 的定位:填补“简单文件共享”与“完整 Git 平台”之间的空白。
【系统要求】 Go 1.23+(用于构建),macOS、Linux 或 Windows。
【贡献与许可】 欢迎贡献,详见 CONTRIBUTING.md;Fork 仓库、创建特性分支、提交更改、推送分支、创建 Pull Request。项目采用 MIT 许可证。
【致谢】 spf13/cobra(CLI 框架)、spf13/viper(配置管理)、fatih/color(终端着色)、hashicorp/mdns(mDNS 支持)。