# 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` ### Docker 部署(生产推荐) ```bash cp .env.example .env # 修改 JWT_SECRET、Waffo 等 ./run.sh docker up # 等价于 docker compose up -d --build ./run.sh docker logs ./run.sh docker down ``` - 访问:http://localhost:9001(管理后台 + `/api`) - 数据卷:`licence_data` → 容器内 `/data/db.sqlite3` ### 构建单二进制 ```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