# OpsXShell License Server 轻量 Node 服务:Waffo Pancake **一次性买断**结账、Webhook、设备绑定许可证签发。 **私钥只放本机环境变量,不要写入仓库或桌面端。** ## 快速开始 ```bash cd license-server cp .env.example .env # 填入 WAFFO_PRIVATE_KEY(Dashboard 测试密钥) npm install npm run bootstrap # 首次:创建 Store + 一次性商品 Pro,写回 .env npm run start ``` 桌面端默认请求 `http://127.0.0.1:8787`。可用 `VITE_LICENSE_SERVER_URL` 覆盖。 ## 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/health` | 健康检查 | | POST | `/checkout` | `{ deviceId }` → `{ checkoutUrl }`(onetime) | | POST | `/webhooks` | Waffo webhook(`order.completed`) | | POST | `/activate` | `{ deviceId }` 取回已签发许可证 | | POST | `/issue-test-license` | 开发用:直接签发终身 Pro token | ## 测试许可证(无需支付) ```bash npm run issue-dev-license -- --deviceId '*' # 临时授权可加 --days 30 ``` 将返回的 `token` 粘贴到 App「已有许可证?激活」。 ## 安全 - `@waffo/pancake-ts` 仅在本服务使用 - `OPSX_LICENSE_HMAC` 与桌面端校验密钥一致(生产请轮换) - 对话中若暴露过测试私钥,请在 Dashboard **轮换**