File size: 6,777 Bytes
69b897d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# 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