# 安装 9Router 的详细安装指南,附故障排除技巧。 --- ## 要求 ### 系统要求 - **Node.js**:版本 20.0.0 或更高 - **npm**:版本 10.0.0 或更高(随 Node.js 安装) - **OS**:macOS、Linux、Windows(推荐 WSL) - **磁盘空间**:安装约需 200MB ### 查看版本 ```bash node --version # 应显示 v20.x.x 或更高 npm --version # 应显示 10.x.x 或更高 ``` **没有 Node.js?** 从 [nodejs.org](https://nodejs.org/) 安装 --- ## 安装方式 ### 方式 1:全局安装(推荐) 全局安装,任何位置都能使用: ```bash npm install -g 9router ``` **启动 9Router:** ```bash 9router ``` **优势:** - ✅ 任意目录均可运行 - ✅ 命令简单:`9router` - ✅ 通过 `npm update -g 9router` 自动更新 ### 方式 2:本地安装 在特定项目中安装: ```bash mkdir my-9router cd my-9router npm install 9router ``` **启动 9Router:** ```bash npx 9router ``` **优势:** - ✅ 项目隔离 - ✅ 项目级版本控制 - ✅ 不污染全局命名空间 ### 方式 3:源码安装(开发用) 从 GitHub 克隆并构建: ```bash git clone https://github.com/decolua/9router.git cd 9router/app npm install npm run build npm start ``` **优势:** - ✅ 最新开发特性 - ✅ 可参与开发 - ✅ 可自定义修改 --- ## 首次运行 ### 启动服务器 ```bash 9router ``` **发生了什么:** 1. 服务器启动在 `http://localhost:20128` 2. 仪表盘在浏览器中自动打开 3. 数据目录创建在 `~/.9router` 4. API key 自动生成 ### 仪表盘登录 **默认凭据:** - 密码:`123456` **⚠️ 立即修改密码:** 1. 登录仪表盘 2. 设置 → 修改密码 3. 使用强密码 ### 获取 API Key ``` 仪表盘 → 设置 → API Keys → 复制你的 API key → 在 CLI 工具中使用 ``` **API key 格式示例:** ``` 9r_1234567890abcdef1234567890abcdef ``` --- ## 验证安装 ### 检查服务器状态 ```bash curl http://localhost:20128/health ``` **预期响应:** ```json { "status": "ok", "version": "1.0.0" } ``` ### 列出可用模型 ```bash curl http://localhost:20128/v1/models \ -H "Authorization: Bearer your-api-key" ``` **预期响应:** ```json { "object": "list", "data": [ { "id": "cc/claude-opus-4-5-20251101", "object": "model", "created": 1234567890, "owned_by": "claude-code" } ] } ``` ### 测试 Chat Completion ```bash curl http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "cc/claude-opus-4-5-20251101", "messages": [ {"role": "user", "content": "Hello!"} ] }' ``` --- ## 配置 ### 环境变量 创建 `.env` 文件或设置环境变量: ```bash # Security (REQUIRED in production) export JWT_SECRET="your-secure-secret-change-this" export INITIAL_PASSWORD="your-password" # Storage export DATA_DIR="~/.9router" # Server export PORT="20128" export NODE_ENV="production" # Logging export ENABLE_REQUEST_LOGS="false" ``` ### 数据目录 **默认位置:** `~/.9router` **内容:** ``` ~/.9router/ ├── db.json # 数据库(提供商、组合、使用) ├── api-keys.json # API keys └── logs/ # 请求日志(若启用) ``` **修改位置:** ```bash export DATA_DIR="/custom/path" 9router ``` ### 端口配置 **默认端口:** `20128` **修改端口:** ```bash export PORT="3000" 9router ``` **或用命令行:** ```bash 9router --port 3000 ``` --- ## 故障排除 ### 端口已被占用 **错误:** ``` Error: listen EADDRINUSE: address already in use :::20128 ``` **方案 1:杀掉占用进程** ```bash # 找到使用 20128 端口的进程 lsof -i :20128 # 杀掉进程 kill -9 ``` **方案 2:使用其他端口** ```bash 9router --port 3000 ``` ### 权限被拒绝 **错误:** ``` Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/9router' ``` **方案:使用 sudo(不推荐)或修复 npm 权限** ```bash # 修复 npm 权限(推荐) mkdir ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc # 然后重新安装 npm install -g 9router ``` ### Node.js 版本过低 **错误:** ``` Error: The engine "node" is incompatible with this module ``` **方案:更新 Node.js** ```bash # 使用 nvm(推荐) nvm install 20 nvm use 20 # 或从 nodejs.org 下载 ``` ### 仪表盘无法打开 **问题:** 仪表盘没有自动打开 **方案 1:手动打开** ``` http://localhost:20128 ``` **方案 2:检查防火墙** ```bash # macOS: 在 System Preferences → Security 中允许 Node.js # Linux: 检查 iptables # Windows: 检查 Windows Firewall ``` ### 无法连接提供商 **问题:** OAuth 登录失败或 API key 无效 **方案 1:检查网络连接** ```bash ping google.com ``` **方案 2:检查提供商状态** - Claude Code: [status.anthropic.com](https://status.anthropic.com) - OpenAI: [status.openai.com](https://status.openai.com) - Gemini: [status.cloud.google.com](https://status.cloud.google.com) **方案 3:重新生成 API key** ``` 仪表盘 → 提供商 → 断开 → 重新连接 ``` ### 内存占用过高 **问题:** 9Router 占用过多 RAM **方案:重启服务器** ```bash # 停止 pkill -f 9router # 启动 9router ``` **或用 PM2 自动重启:** ```bash npm install -g pm2 pm2 start 9router --name 9router pm2 save ``` --- ## 部署选项 ### 本地开发 ```bash npm install -g 9router 9router ``` **适用场景:** 个人编码、测试 ### VPS/云服务器 ```bash # 安装 npm install -g 9router # 配置 export JWT_SECRET="your-secure-secret" export INITIAL_PASSWORD="your-password" export NODE_ENV="production" # 用 PM2 启动 npm install -g pm2 pm2 start 9router --name 9router pm2 save pm2 startup ``` **适用场景:** 团队访问、远程编码 ### Docker ```bash docker pull 9router/9router:latest docker run -d \ -p 20128:20128 \ -e JWT_SECRET="your-secure-secret" \ -e INITIAL_PASSWORD="your-password" \ -v 9router-data:/root/.9router \ --name 9router \ 9router/9router:latest ``` **适用场景:** 容器化部署、Kubernetes ### 反向代理(Nginx) ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:20128; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; # SSE support for streaming proxy_buffering off; proxy_read_timeout 86400; } } ``` **适用场景:** HTTPS、自定义域名、负载均衡 --- ## 卸载 ### 移除全局安装 ```bash npm uninstall -g 9router ``` ### 移除数据目录 ```bash rm -rf ~/.9router ``` ### 移除配置 ```bash # 从 shell 配置中移除环境变量 nano ~/.bashrc # 或 ~/.zshrc # 删除 9router 相关的 export ``` --- ## 下一步 - [入门指南](../getting-started.md) - 连接提供商并开始编码 - [功能特性](../features/) - 探索配额跟踪、组合、部署 - [故障排除](../troubleshooting.md) - 解决常见问题 --- ## 需要帮助? - **网站**: [9router.com](https://9router.com) - **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router) - **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)