# KeyManager **Repository Path**: ReactSpring/key-manager ## Basic Information - **Project Name**: KeyManager - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-15 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KeyManager - API密钥管理工具 一个轻量级的 Web 应用,用于管理 Claude Code API 密钥并跟踪其过期时间。 ## 功能特点 - 📝 多密钥管理:存储和跟踪多个API密钥 - ⏰ 过期跟踪:自动跟踪密钥过期时间 - 🚀 智能使用:优先使用最快过期的密钥,最大化使用量 - 💻 平台支持:生成 Windows (PowerShell) 和 macOS/Linux (bash) 命令 - 👥 多用户支持:每个用户独立管理自己的密钥 - 📱 响应式设计:支持移动设备访问 - 🔄 智能填充:自动记住上次使用的 Base URL - ⏱️ 购买时间计算:输入购买时间自动计算过期时间 ## 什么是 Claude Code? Claude Code 是 Anthropic 官方推出的 CLI 工具,让您可以在命令行中与 Claude AI 对话并进行代码开发。 ### 安装 Claude Code ```bash npm install -g @anthropic-ai/claude-code ``` ### 配置环境变量 安装后,使用本工具获取的环境变量命令来配置 Claude Code: **Windows (PowerShell):** ```powershell $env:ANTHROPIC_BASE_URL = "你的BaseURL" $env:ANTHROPIC_AUTH_TOKEN = "你的APIKey" ``` **macOS/Linux (bash):** ```bash export ANTHROPIC_BASE_URL="你的BaseURL" export ANTHROPIC_AUTH_TOKEN="你的APIKey" ``` ### 使用 Claude Code 配置完成后,直接在终端运行: ```bash claude ``` ## 技术栈 - **前端**: React + Vite - **后端**: Express.js + MySQL - **认证**: JWT - **部署**: PM2 + Nginx ## 快速开始(本地开发) ### 1. 安装 MySQL **Ubuntu/Debian:** ```bash sudo apt install mysql-server sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES; EXIT; ``` **macOS:** ```bash brew install mysql brew services start mysql mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; FLUSH PRIVILEGES; EXIT; ``` **Windows:** 下载并安装 [MySQL Installer](https://dev.mysql.com/downloads/installer/) ### 2. 安装依赖 ```bash # 后端 cd backend npm install # 前端 cd ../frontend npm install ``` ### 3. 配置后端 编辑 `backend/.env`: ```env PORT=3000 JWT_SECRET=your-secret-key-change-this-in-production # MySQL 数据库配置 DB_HOST=localhost DB_USER=root DB_PASSWORD=root DB_NAME=keymanager ``` **如果修改了后端端口**,还需要修改 `frontend/.env.development`: ```env VITE_API_TARGET=http://localhost:你的端口号 ``` ### 4. 初始化数据库 ```bash cd backend npm run init-db ``` ### 5. 启动服务 ```bash # 后端(在 backend 目录) npm run dev # 前端(新终端,在 frontend 目录) cd ../frontend npm run dev ``` 访问: `http://localhost:5173` --- ## 🚀 服务器部署(一键部署) ### 方式一:自动部署脚本(推荐) ```bash # 1. 上传代码 git clone cd KeyManager # 2. 安装 MySQL sudo apt update sudo apt install mysql-server -y sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES; EXIT; # 3. 配置环境变量(修改密码) nano backend/.env # 设置 DB_PASSWORD=你的MySQL密码 # 4. 一键部署 chmod +x deploy.sh setup-nginx.sh ./deploy.sh start # 启动后端 sudo ./setup-nginx.sh # 配置 Nginx # 完成!访问 http://your-server-ip ``` ### 方式二:手动部署 #### 第一步:准备环境 ```bash # 安装 Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # 安装 PM2 sudo npm install -g pm2 # 安装 MySQL sudo apt install mysql-server -y # 安装 Nginx sudo apt install nginx -y ``` #### 第二步:配置 MySQL ```bash sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES; EXIT; ``` #### 第三步:部署应用 ```bash cd ~/KeyManager # 安装后端依赖 cd backend npm install # 配置环境变量 nano .env # 设置 DB_PASSWORD=你的密码 # 初始化数据库 npm run init-db # 构建前端 cd ../frontend npm install npm run build # 启动后端 cd .. pm2 start ecosystem.config.cjs pm2 save pm2 startup # 设置开机自启 ``` #### 第四步:配置 Nginx 创建配置文件 `/etc/nginx/sites-available/keymanager`: ```nginx server { listen 80; server_name your-domain.com; # 前端 location / { root /home/ubuntu/KeyManager/frontend/dist; try_files $uri $uri/ /index.html; index index.html; } # 后端 API location /api { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` ```bash # 启用站点 sudo ln -s /etc/nginx/sites-available/keymanager /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx ``` #### 第五步:配置防火墙 ```bash sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable ``` ### 配置 HTTPS(可选) ```bash sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your-domain.com ``` --- ## 验证部署 ```bash # 检查后端 curl http://localhost:3000/api/health # 检查 PM2 pm2 status # 检查 Nginx sudo systemctl status nginx # 浏览器访问 http://your-server-ip ``` --- ## 管理命令 ### 服务管理 ```bash # 查看服务状态 pm2 status # 查看日志 pm2 logs keymanager-backend # 重启服务 pm2 restart keymanager-backend # 停止服务 pm2 stop keymanager-backend ``` ### 更新部署 ```bash cd ~/KeyManager git pull # 更新后端 cd backend && npm install && cd .. # 重新构建前端 cd frontend && npm install && npm run build && cd .. # 重启后端 pm2 restart keymanager-backend # 重载 Nginx sudo systemctl reload nginx ``` --- ## 故障排查 ### 1. 后端无法启动 ```bash # 查看日志 pm2 logs keymanager-backend # 检查 MySQL sudo systemctl status mysql # 测试数据库连接 cd backend && node test-mysql.js ``` ### 2. 前端 500 错误 ```bash # 查看 Nginx 日志 sudo tail -50 /var/log/nginx/error.log # 确保后端运行 pm2 status # 测试后端 API curl http://localhost:3000/api/health ``` ### 3. 登录错误 确保所有模型方法都是异步的(使用 async/await) --- ## 使用说明 ### 第一步:注册/登录 1. 访问应用首页 2. 注册新账号或登录 ### 第二步:添加密钥 1. 点击"+ 添加新密钥" 2. 填写信息: - **Base URL**:API 端点(自动记住) - **API Key**:您的密钥 - **购买时间**(可选):自动计算过期时间 - **有效期**:默认 72 小时 - **备注**:供应商信息 ### 第三步:复制命令 1. 最快过期的密钥显示在顶部 2. 选择操作系统平台 3. 点击"复制命令" 4. 在终端粘贴执行 5. 运行 `claude` 开始使用 --- ## API 端点 ### 认证 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 ### 密钥管理(需要认证) - `GET /api/keys` - 获取所有密钥 - `GET /api/keys/active` - 获取有效密钥 - `GET /api/keys/next-expiring` - 获取最快过期的密钥 - `POST /api/keys` - 创建新密钥 - `PUT /api/keys/:id` - 更新密钥 - `DELETE /api/keys/:id` - 删除密钥 - `DELETE /api/keys/cleanup/expired` - 清理过期密钥 --- ## 项目结构 ``` KeyManager/ ├── backend/ # 后端服务 │ ├── src/ │ │ ├── config/ # 数据库配置(MySQL) │ │ ├── models/ # 数据模型 │ │ ├── routes/ # API 路由 │ │ ├── middleware/ # 认证中间件 │ │ └── index.js # 入口文件 │ ├── .env # 环境变量 │ └── package.json │ ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── components/ # React 组件 │ │ ├── pages/ # 页面 │ │ ├── services/ # API 服务 │ │ └── utils/ # 工具函数 │ ├── .env.production # 生产环境配置 │ └── package.json │ ├── deploy.sh # 部署脚本 ├── setup-nginx.sh # Nginx 配置脚本 ├── ecosystem.config.cjs # PM2 配置 ├── nginx.conf # Nginx 配置模板 ├── CLAUDE.md # 开发指南 └── README.md # 本文件 ``` --- ## 开发 ### 后端开发 ```bash cd backend npm run dev # 自动重启 ``` ### 前端开发 ```bash cd frontend npm run dev # 热更新 ``` ### 生产构建 ```bash # 前端 cd frontend npm run build # 后端 cd backend npm start ``` --- ## 许可证 MIT --- ## 相关链接 - [Claude Code 官网](https://claude.ai/code) - [Anthropic API 文档](https://docs.anthropic.com/)