OmniRoute开发者环境搭建:本地构建、调试与贡献者循环教程
【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 350 providers (90+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450+ contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute
OmniRoute是一个开源免费的 AI 网关(AI Gateway)项目:一个端点接入 350+ 供应商、1200+ 模型,支持 Claude Code、Codex、Cursor 等工具,自带配额感知自动回退与 Token 压缩。本教程带你完成OmniRoute 开发者环境搭建:从克隆仓库、本地构建、配置环境变量,到日常调试与提交贡献的完整"贡献者循环",零基础也能照着跑通。
环境准备:3 个工具先装好
开始前确认本地已安装以下工具(版本要求来自 CONTRIBUTING.md):
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >=22.22.3 <23或>=24 <27 | 推荐 24 LTS |
| npm | 10+ | 包管理器 |
| Git | 任意较新版本 | 代码管理 |
💡 使用 Node 24 + npm v11+ 时,安装后要验证原生模块是否就绪:
node -e "require('better-sqlite3')"。若报MODULE_NOT_FOUND,执行npm approve-scripts better-sqlite3 && npm install修复,详见 docs/guides/TROUBLESHOOTING.md。
克隆仓库与本地构建:最快启动方法
执行下面 3 条命令即可完成 OmniRoute 本地构建:
git clone https://gitcode.com/GitHub_Trending/om/OmniRoute cd OmniRoute npm install构建产物目录分工(了解即可,不影响日常开发):
src/— 应用源码(TypeScript / TSX).build/—next build中间产物(不入库)dist/— 最终可部署产物(由assembleStandalone组装)
配置环境变量:30 秒生成密钥
仓库提供了完整的.env.example模板,复制后补上两个必填密钥即可:
cp .env.example .env echo "JWT_SECRET=$(openssl rand -base64 48)" >> .env echo "API_KEY_SECRET=$(openssl rand -hex 32)" >> .env开发阶段最常用的变量只有几个:PORT(默认20128)、INITIAL_PASSWORD(首次登录密码,默认CHANGEME)、APP_LOG_LEVEL。.env已被.gitignore忽略,切勿提交,管理细节见 docs/DEVELOPER-ENVIRONMENT.md。
启动开发服务与常用调试入口
npm run dev启动后两个默认地址:
- 仪表盘:
http://localhost:20128/dashboard - API:
http://localhost:20128/v1
调试时最实用的两个入口:
- Settings → Advanced → Debug Mode:开启调试请求日志(UI 开关,保存在数据库中,重启依然生效)
- Dashboard → Translator:排查格式翻译问题(OpenAI ↔ Claude ↔ Gemini 互转)的最快路径
其他常用命令(完整版见 package.json 的 scripts 字段):
| 命令 | 用途 |
|---|---|
npm run dev | 热重载开发模式 |
npm run build/npm run start | 生产构建与启动 |
npm run lint | ESLint 检查(提交前必跑) |
node --import tsx/esm --test tests/unit/xxx.test.ts | 只跑单个测试文件 |
npm run test:e2e | Playwright 端到端测试 |
贡献者循环:分支、测试与 PR 清单
OmniRoute 有 450+ 贡献者,协作流程非常规范,核心要点如下:
- 分支:永远不要直接提交
main;从当前活跃的release/vX.Y.Z分支拉出feat/、fix/等特性分支(见 docs/ops/BRANCHING_MODEL.md) - 提交信息:遵循 Conventional Commits,如
feat: add circuit breaker for provider calls - 聚焦测试:只跑覆盖你改动的最小测试文件 +
npm run lint,全量矩阵交给 CI;覆盖率门槛为60% - 变更路径:每类改动(Provider / 路由 / UI / i18n)都有对应的"黄金路径"检查项,见 docs/ops/CONTRIBUTION_GOLDEN_PATH.md
- Changelog:面向用户的改动请添加
changelog.d/{features|fixes|maintenance}/<PR>-<slug>.md片段,不要直接编辑CHANGELOG.md
新增 Provider 是新手最友好的入口,固定 6 步:注册常量 → 写 Executor(如需)→ 写 Translator(非 OpenAI 格式时)→ OAuth 配置(如适用)→ 注册模型 → 补单测,详见 CONTRIBUTING.md 的 "Adding a New Provider" 章节。
常见问题速查
| 症状 | 解决方案 |
|---|---|
启动报Cannot find module 'better-sqlite3' | npm approve-scripts better-sqlite3 && npm install(npm v11+ 常见) |
| 端口 20128 被占用 | PORT=20130 NEXT_PUBLIC_BASE_URL=http://localhost:20130 npm run dev |
| 首次登录失败 | 检查.env中INITIAL_PASSWORD,登录后在 Settings → Security 修改 |
| 其他网络/构建问题 | 查阅 docs/guides/TROUBLESHOOTING.md |
延伸阅读:官方文档导航
- 贡献指南:CONTRIBUTING.md
- 贡献黄金路径:docs/ops/CONTRIBUTION_GOLDEN_PATH.md
- 分支与发布模型:docs/ops/BRANCHING_MODEL.md
- 开发者环境与密钥管理:docs/DEVELOPER-ENVIRONMENT.md
- 排障手册:docs/guides/TROUBLESHOOTING.md
- 系统架构:docs/architecture/ARCHITECTURE.md
跑通npm run dev、打开仪表盘看到 Providers 列表的那一刻,你的OmniRoute 开发者环境搭建就完成了。接下来找一个fix/小分支试试,把"贡献者循环"变成肌肉记忆吧 🚀
【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 350 providers (90+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450+ contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考