95405de11924cbfe4ab46a4d48d6ba517c1456d1
同步 OpsXShell 档位定价与 Waffo 商品映射,补齐 checkout/webhook/设备列表契约,便于桌面端购买与满席释放。 Co-authored-by: Cursor <cursoragent@cursor.com>
opsx-licence
许可证(License)管理服务器 Web 版 —— 基于 Go (Gin) + Vue 3 的单体全栈应用。
项目简介
opsx-licence 是一个统一的授权验证与管理服务,提供许可证的生成、验证、激活、机器绑定、心跳等核心能力,并支持产品定价、订单购买、防重复购买与支付回调。
技术栈与工程结构参考 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)
一键启动(开发模式)
cp .env.example .env
./run.sh start
- 前端:http://localhost:5181
- 后端:http://localhost:9001
- 默认账号:
admin/admin
构建单二进制
./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
Languages
Go
63.4%
Vue
25.5%
JavaScript
8.2%
Shell
2.1%
Makefile
0.4%
Other
0.3%