基于 opsx-web-lite 框架(Go+Gin+Vue3+Element Plus)构建许可证管理服务器,
业务域参考 Licence 服务器 Web 版。
【后端 - 4层架构】
- 认证:单 Admin 表 + JWT(HS256)
- 核心授权域:Product / Customer / License / Activation
· License 生成/验证/激活/机器绑定/心跳/续期/吊销
· 客户端契约接口:/api/v1/license/{verify,activate,deactivate,heartbeat}
- 定价订单:Plan / Order / 支付网关配置
- 防重复购买:CustomerEntitlement + 幂等支付 webhook + 手动发放
- 分析审计:Dashboard 统计 / Analytics / AuditLog / Setting 管理
【前端】
- Dashboard(ECharts 图表)、产品、客户、License、计划、订单、权益、日志、设置
- 9 个完整 CRUD 业务页面 + 登录/布局
【部署】
- SQLite + 单二进制(//go:embed 嵌入前端)
- 开发:./run.sh start(前端5181/后端9001)
- 生产:./run.sh build && ./run.sh binary start
- 默认账号:admin/admin
Author: Logan.Li
89 lines
2.2 KiB
Makefile
89 lines
2.2 KiB
Makefile
# opsx-licence - Makefile
|
|
# 提供常用开发命令的快捷方式
|
|
|
|
.PHONY: help install dev build build-ui build-api build-binary clean status stop restart lint test
|
|
|
|
# 默认显示帮助
|
|
help:
|
|
@echo "opsx-licence - 可用命令:"
|
|
@echo ""
|
|
@echo " make install - 安装前后端依赖"
|
|
@echo " make dev - 启动开发环境(前后端)"
|
|
@echo " make build - 构建前后端(分开)"
|
|
@echo " make build-ui - 仅构建前端"
|
|
@echo " make build-api - 仅构建后端"
|
|
@echo " make build-binary - 构建前端嵌入式单二进制 opsx-licence"
|
|
@echo " make test - 运行后端测试"
|
|
@echo " make lint - 运行代码检查"
|
|
@echo " make clean - 清理构建产物和日志"
|
|
@echo " make status - 查看服务状态"
|
|
@echo " make stop - 停止所有服务"
|
|
@echo " make restart - 重启所有服务"
|
|
@echo " make logs - 查看实时日志"
|
|
@echo ""
|
|
|
|
# 安装依赖
|
|
install:
|
|
@echo "📦 安装后端依赖..."
|
|
cd backend && go mod download
|
|
@echo "📦 安装前端依赖..."
|
|
cd frontend && npm install
|
|
|
|
# 开发环境启动
|
|
dev:
|
|
./run.sh start
|
|
|
|
# 构建前端
|
|
build-ui:
|
|
@echo "🔨 构建前端..."
|
|
cd frontend && npm run build
|
|
|
|
# 构建后端
|
|
build-api:
|
|
@echo "🔨 构建后端..."
|
|
cd backend && go build -o server -ldflags="-s -w" .
|
|
|
|
# 构建所有(分开)
|
|
build: build-ui build-api
|
|
|
|
# 构建前后端合一的部署二进制 // Logan.Li
|
|
build-binary:
|
|
./run.sh build
|
|
|
|
# 后端测试
|
|
test:
|
|
@echo "🧪 运行后端测试..."
|
|
cd backend && go test -v -race -coverprofile=coverage.out ./...
|
|
@echo "📊 后端覆盖率:"
|
|
@cd backend && go tool cover -func=coverage.out | grep total
|
|
|
|
# 代码检查
|
|
lint:
|
|
@echo "🔍 检查后端代码..."
|
|
cd backend && go vet ./...
|
|
|
|
# 清理
|
|
clean:
|
|
@echo "🧹 清理构建产物..."
|
|
rm -f backend/server backend/backend
|
|
rm -rf frontend/dist
|
|
rm -f backend/logs/*.log frontend/logs/*.log logs/*.log
|
|
rm -f opsx-licence
|
|
@echo "🧹 清理完成"
|
|
|
|
# 查看状态
|
|
status:
|
|
./run.sh status
|
|
|
|
# 停止服务
|
|
stop:
|
|
./run.sh stop
|
|
|
|
# 重启服务
|
|
restart:
|
|
./run.sh restart
|
|
|
|
# 查看日志
|
|
logs:
|
|
@tail -f backend/logs/server.log frontend/logs/dev.log 2>/dev/null || echo "日志文件不存在"
|