基于 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
105 lines
3.1 KiB
Markdown
105 lines
3.1 KiB
Markdown
# opsx-licence
|
||
|
||
许可证(License)管理服务器 Web 版 —— 基于 Go (Gin) + Vue 3 的单体全栈应用。
|
||
|
||
## 项目简介
|
||
|
||
opsx-licence 是一个统一的授权验证与管理服务,提供许可证的生成、验证、激活、机器绑定、心跳等核心能力,并支持产品定价、订单购买、防重复购买与支付回调。
|
||
|
||
技术栈与工程结构参考 [opsx-web-lite](../opsx-web-lite),业务领域参考 Licence 服务器 Web版。
|
||
|
||
## 技术栈
|
||
|
||
### 后端
|
||
- **语言/框架**:Go 1.24 + Gin
|
||
- **ORM**:GORM(默认 SQLite,支持 MySQL / PostgreSQL)
|
||
- **认证**:JWT(HS256)+ bcrypt
|
||
- **架构**:4 层分层(controller → service → dto → model),按业务域分包
|
||
|
||
### 前端
|
||
- **框架**:Vue 3.4 + Vite
|
||
- **UI**:Element Plus
|
||
- **状态/路由**:Pinia + Vue Router 4
|
||
- **图表**:ECharts
|
||
|
||
### 部署
|
||
- 单二进制:前端通过 `//go:embed` 打包进 Go 二进制,一个文件即可部署
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- Go >= 1.24
|
||
- Node.js >= 20
|
||
- CGO(SQLite 驱动需要,macOS 自带 gcc)
|
||
|
||
### 一键启动(开发模式)
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
./run.sh start
|
||
```
|
||
|
||
- 前端:http://localhost:5181
|
||
- 后端:http://localhost:9001
|
||
- 默认账号:`admin` / `admin`
|
||
|
||
### 构建单二进制
|
||
|
||
```bash
|
||
./run.sh build
|
||
./run.sh binary start
|
||
```
|
||
|
||
## 常用命令
|
||
|
||
| 命令 | 说明 |
|
||
|---|---|
|
||
| `make dev` / `./run.sh start` | 启动前后端开发服务 |
|
||
| `make build` / `./run.sh build` | 构建嵌入前端的单二进制 |
|
||
| `./run.sh stop` | 停止服务 |
|
||
| `./run.sh status` | 查看服务状态 |
|
||
| `make clean` | 清理构建产物 |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
opsx-licence/
|
||
├── backend/ # Go 后端
|
||
│ ├── main.go # 入口
|
||
│ ├── embed.go # 前端嵌入
|
||
│ ├── config/ # 配置
|
||
│ ├── database/ # 数据库初始化 + 种子数据
|
||
│ ├── middleware/ # 中间件(auth / cors)
|
||
│ ├── router/ # 路由
|
||
│ ├── utils/ # 工具(jwt / password)
|
||
│ └── internal/ # 业务分层
|
||
│ ├── controller/ # HTTP 处理层
|
||
│ ├── service/ # 业务逻辑层
|
||
│ ├── dto/ # 请求/响应结构
|
||
│ └── model/ # 数据模型
|
||
├── frontend/ # Vue 前端
|
||
│ └── src/
|
||
│ ├── api/ # 接口封装
|
||
│ ├── stores/ # Pinia 状态
|
||
│ ├── router/ # 路由
|
||
│ ├── layouts/ # 布局
|
||
│ └── views/ # 页面
|
||
├── Makefile
|
||
├── run.sh # 启动脚本
|
||
└── .env.example
|
||
```
|
||
|
||
## 业务域(规划)
|
||
|
||
| 模块 | 说明 | 状态 |
|
||
|---|---|---|
|
||
| 认证 (Auth) | 管理员登录、JWT | ✅ |
|
||
| 核心授权 | 产品 / 客户 / License / 激活 | 🚧 规划中 |
|
||
| 定价订单 | Plan / Order / 支付网关 | 🚧 规划中 |
|
||
| 防重复购买 | 客户权益 / 幂等回调 | 🚧 规划中 |
|
||
| 分析审计 | Dashboard / Analytics / AuditLog | 🚧 规划中 |
|
||
|
||
## 作者
|
||
|
||
Logan.Li
|