# Claude Relay Service Makefile # 功能完整的 AI API 中转服务,支持 Claude 和 Gemini 双平台 .PHONY: help install setup dev start test lint clean docker-up docker-down service-start service-stop service-status logs cli-admin cli-keys cli-accounts cli-status # 默认目标:显示帮助信息 help: @echo "Claude Relay Service - AI API 中转服务" @echo "" @echo "可用命令:" @echo "" @echo " 📦 安装和初始化:" @echo " install - 安装项目依赖" @echo " install-web - 安装Web界面依赖" @echo " setup - 生成配置文件和管理员凭据" @echo " clean - 清理依赖和构建文件" @echo "" @echo " 🎨 前端构建:" @echo " build-web - 构建 Web 管理界面" @echo " build-all - 构建完整项目(后端+前端)" @echo "" @echo " 🚀 开发和运行:" @echo " dev - 开发模式运行(热重载)" @echo " start - 生产模式运行" @echo " test - 运行测试套件" @echo " lint - 代码风格检查" @echo "" @echo " 🐳 Docker 部署:" @echo " docker-up - 启动 Docker 服务" @echo " docker-up-full - 启动 Docker 服务(包含监控)" @echo " docker-down - 停止 Docker 服务" @echo " docker-logs - 查看 Docker 日志" @echo "" @echo " 🔧 服务管理:" @echo " service-start - 前台启动服务" @echo " service-daemon - 后台启动服务(守护进程)" @echo " service-stop - 停止服务" @echo " service-restart - 重启服务" @echo " service-restart-daemon - 重启服务(守护进程)" @echo " service-status - 查看服务状态" @echo " logs - 查看应用日志" @echo " logs-follow - 实时查看日志" @echo "" @echo " ⚙️ CLI 管理工具:" @echo " cli-admin - 管理员操作" @echo " cli-keys - API Key 管理" @echo " cli-accounts - Claude 账户管理" @echo " cli-status - 系统状态查看" @echo "" @echo " 💡 快速开始:" @echo " make setup && make dev" @echo "" # 安装和初始化 install: @echo "📦 安装项目依赖..." npm install install-web: @echo "📦 安装 Web 界面依赖..." npm run install:web # 前端构建 build-web: @echo "🎨 构建 Web 管理界面..." npm run build:web build-all: install install-web build-web @echo "🎉 完整项目构建完成!" setup: @echo "⚙️ 初始化项目配置和管理员凭据..." @if [ ! -f config/config.js ]; then cp config/config.example.js config/config.js; fi @if [ ! -f .env ]; then cp .env.example .env; fi npm run setup clean: @echo "🧹 清理依赖和构建文件..." rm -rf node_modules rm -rf web/node_modules rm -rf web/admin-spa/dist rm -rf web/admin-spa/node_modules rm -rf logs/*.log # 开发和运行 dev: @echo "🚀 启动开发模式(热重载)..." npm run dev start: @echo "🚀 启动生产模式..." npm start test: @echo "🧪 运行测试套件..." npm test lint: @echo "🔍 执行代码风格检查..." npm run lint # Docker 部署 docker-up: @echo "🐳 启动 Docker 服务..." docker-compose up -d docker-up-full: @echo "🐳 启动 Docker 服务(包含监控)..." docker-compose --profile monitoring up -d docker-down: @echo "🛑 停止 Docker 服务..." docker-compose down docker-logs: @echo "📋 查看 Docker 服务日志..." docker-compose logs -f # 服务管理 service-start: @echo "🚀 前台启动服务..." npm run service:start service-daemon: @echo "🔧 后台启动服务(守护进程)..." npm run service:start:daemon service-stop: @echo "🛑 停止服务..." npm run service:stop service-restart: @echo "🔄 重启服务..." npm run service:restart service-restart-daemon: @echo "🔄 重启服务(守护进程)..." npm run service:restart:daemon service-status: @echo "📊 查看服务状态..." npm run service:status logs: @echo "📋 查看应用日志..." npm run service:logs logs-follow: @echo "📋 实时查看日志..." npm run service:logs:follow # CLI 管理工具 cli-admin: @echo "👤 启动管理员操作 CLI..." npm run cli admin cli-keys: @echo "🔑 启动 API Key 管理 CLI..." npm run cli keys cli-accounts: @echo "👥 启动 Claude 账户管理 CLI..." npm run cli accounts cli-status: @echo "📊 查看系统状态..." npm run cli status # 开发辅助命令 check-config: @echo "🔍 检查配置文件..." @if [ ! -f config/config.js ]; then echo "❌ config/config.js 不存在,请运行 'make setup'"; exit 1; fi @if [ ! -f .env ]; then echo "❌ .env 不存在,请运行 'make setup'"; exit 1; fi @echo "✅ 配置文件检查通过" health-check: @echo "🏥 执行健康检查..." @curl -s http://localhost:3000/health || echo "❌ 服务未运行或不可访问" # 快速启动组合命令 quick-start: setup dev quick-daemon: setup service-daemon @echo "🎉 服务已在后台启动!" @echo "运行 'make service-status' 查看状态" @echo "运行 'make logs-follow' 查看实时日志" # 全栈开发环境 dev-full: install install-web build-web setup dev @echo "🚀 全栈开发环境启动!" # 完整部署流程 deploy: clean install install-web build-web setup test lint docker-up @echo "🎉 部署完成!" @echo "访问 Web 管理界面: http://localhost:3000/web" @echo "API 端点: http://localhost:3000/api/v1/messages" # 生产部署准备 production-build: clean install install-web build-web @echo "🚀 生产环境构建完成!" # 维护命令 backup-redis: @echo "💾 备份 Redis 数据..." @docker exec claude-relay-service-redis-1 redis-cli BGSAVE || echo "❌ Redis 备份失败" restore-redis: @echo "♻️ 恢复 Redis 数据..." @echo "请手动恢复 Redis 数据文件" # 监控和日志 monitor: @echo "📊 启动监控面板..." @echo "Grafana: http://localhost:3001" @echo "Redis Commander: http://localhost:8081" tail-logs: @echo "📋 实时查看日志..." tail -f logs/claude-relay-*.log # 开发工具 format: @echo "🎨 格式化代码..." npm run lint -- --fix check-deps: @echo "🔍 检查依赖更新..." npm outdated update-deps: @echo "⬆️ 更新依赖..." npm update # 测试相关 test-coverage: @echo "📊 运行测试覆盖率..." npm test -- --coverage test-watch: @echo "👀 监视模式运行测试..." npm test -- --watch # Git 相关 git-status: @echo "📋 Git 状态..." git status --short git-pull: @echo "⬇️ 拉取最新代码..." git pull origin main # 安全检查 security-audit: @echo "🔒 执行安全审计..." npm audit security-fix: @echo "🔧 修复安全漏洞..." npm audit fix