Files
opsx-licence/docs/部署与环境.md
Logan.Li 1a47dee63d docs: 部署与环境(两套线上拓扑,不含账密)
记录 l123.91ai.io 反代与 licence.rlwj.cn 本机部署口径;
远程改为 gitea.91ai.io/rlwj-lab/opsx-licence。
2026-10-15 17:53:15 +08:00

122 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# opsx-licence 部署与环境
> 本文汇总本机仓库可确认信息 + 业务侧口述的线上部署事实。
> **带「待远程核实」的条目:本轮未 SSH、未登录管理后台,仅按口述与仓内既有说明记录。**
> **禁止**:把管理后台密码、JWT、Waffo 私钥等写入本文件或提交仓库。
## 用途(一句话)
通用许可证(License)管理服务器:为 Web / PC / 移动等多端产品提供在线/离线授权、座位激活、订单与 Waffo 支付对账、管理后台。
线上示例(README):`https://l123.91ai.io/`
## 本机仓库
| 项 | 值 |
|----|-----|
| 路径 | `/Users/logan/devops/opsx-licence` |
| Remote | `https://gitea.91ai.io/rlwj-lab/opsx-licence.git`(origin;原 Gitee `opsx-tools/opsx-licence` 已弃用为主远程) |
| 默认分支 | `master`(与 `origin/master` 对齐;本轮摸仓时工作区干净) |
## 技术栈(本机确认)
| 层 | 技术 |
|----|------|
| 后端 | Go(`go.mod` 标 1.25)+ Gin + GORM;默认 SQLite,可 MySQL / PostgreSQL |
| 前端 | Vue 3.4 + Vite + Element Plus + ECharts + Pinia |
| 打包 | 前端 `dist` 经 `//go:embed` 打进单二进制;Docker 多阶段构建 |
| 认证 | JWT + bcrypt;管理端单 Admin |
| 默认服务端口 | 后端 / 生产单体 **9001**;开发前端 Vite **5181** |
详细授权模型见 [licensing-model.md](./licensing-model.md);支付闭环见 [waffo-integration.md](./waffo-integration.md)。开发约定见仓库根目录 `AGENTS.md`。
## 本地如何跑(本机确认)
```bash
cd /Users/logan/devops/opsx-licence
cp .env.example .env # 按需改 JWT_SECRET 等;勿把真实密钥提交仓库
./run.sh start # 或 make dev
# 开发:前端 http://localhost:5181 ,后端 http://localhost:9001
# 默认管理账号见 README / AGENTS.md(生产必须改密;密码勿写入文档)
```
其它常用:
| 命令 | 说明 |
|------|------|
| `./run.sh stop` / `status` / `restart` | 停 / 查 / 重启开发进程 |
| `./run.sh build` 后 `./run.sh binary start` | 嵌入前端的单二进制 |
| `./run.sh docker up`(或 `make docker-up`) | Docker Compose;宿主机映射 `${HOST_PORT:-9001}` → 容器 9001 |
| `make install` | `go mod download` + `npm install` |
健康检查(Docker):`GET http://127.0.0.1:9001/readyz`
## 关键配置路径(本机确认)
| 路径 | 作用 |
|------|------|
| 仓库根 `.env` / `.env.example` | 后端主配置模板与本地覆盖(`PORT`、`GIN_MODE`、`JWT_SECRET`、DB、Waffo、CORS 等) |
| `frontend/.env.development` | 开发:`VITE_API_BASE_URL=/api`(经 Vite 代理) |
| `frontend/.env.production` | 生产构建:同源相对路径 `/api` |
| `backend/config/config.go` | 读环境变量、默认值(含 CORS 本地 5181) |
| `backend/router/router.go` | `/api` 路由注册 |
| `docker-compose.yml` | 单容器 `opsx-licence` + SQLite 备份 sidecar;数据卷 `licence_data` → `/data/db.sqlite3` |
| `Dockerfile` | Node 打前端 → Go embed → debian 运行时,`PORT=9001` |
| `run.sh` / `Makefile` | 本地启停与构建入口 |
| `docs/` | 授权模型、Waffo、本文 |
客户端公开 API 前缀:`/api/v1`(激活/心跳/checkout/webhook 等,见 README)。
管理端登录接口:`POST /api/auth/login`(限流 + 锁定,勿频繁打)。
## 线上部署事实(待远程核实)
以下为业务侧口述;**本轮未登录服务器核实 nginx / 进程 / 目录。**
### `l123.91ai.io`(待远程核实)
| 项 | 口述内容 |
|----|----------|
| 入口 | 公网域名 `l123.91ai.io` |
| 反代 | **nginx** 反代到内网 **`192.168.14.7:9001`** |
| 应用代码路径 | **`/srv/opsx-licence`** |
| 应用端口 | 与仓内默认一致时为 **9001**(待在应用机确认容器/进程绑定) |
仓内 `AGENTS.md`「服务器环境」另记:香港机 nginx 反代该域名 → `http://192.168.14.7:9001`,内网应用机容器绑 `0.0.0.0:9001`。与口述方向一致,**仍待远程再核一次**。
Webhook / 支付回跳示例(`.env.example`,非本次核实):
`https://l123.91ai.io/api/v1/webhooks/waffo`、`SUCCESS_URL=https://l123.91ai.io/api/v1/purchase/success`
### `licence.rlwj.cn`(国内 · 待远程核实)
| 项 | 口述内容 |
|----|----------|
| 入口 | 公网域名 `licence.rlwj.cn`(国内) |
| 部署形态 | **nginx 与后端服务同机** |
| 应用代码路径 | **`/srv/opsx-licence`** |
| 应用端口 | 预期容器/进程 **9001**,常由本机 nginx 反代对外 HTTPS(待远程确认监听与 `proxy_pass`) |
仓内 `AGENTS.md` 另记该域名为国内应用服务器角色、容器绑 `127.0.0.1:9001`。与「同机 nginx+服务」口述一致,**仍待远程再核一次**。
### 两套环境共性(待远程核实 + 仓内约定)
- 部署路径统一口述为 **`/srv/opsx-licence`**
- 管理后台两套地址:`https://l123.91ai.io` 与 `https://licence.rlwj.cn`
- 两套环境的 `JWT_SECRET` 等应各自独立(见 `AGENTS.md`);勿混用 token
- 密码与密钥:**不写入仓库**;向负责人索取或查密码管理器;泄露/遗忘时在服务器侧重置
## 本轮未做 / 仍缺
- [ ] SSH 登录应用机 / 反代机,核对 nginx `server_name`、`proxy_pass`、证书
- [ ] 核对 `/srv/opsx-licence` 是否存在、与本机仓是否同版本、Docker Compose / 单二进制哪种在跑
- [ ] 核对容器端口绑定(`127.0.0.1:9001` vs `0.0.0.0:9001`)与健康检查
- [ ] 在 1:1(非群聊)用管理员账号验后台(**勿在群内贴密码、勿把密码写入本文件**)
- [ ] 确认两套环境 Waffo / webhook 公网 URL 是否都指向对应域名
远程摸机请在与全栈工程师的 **1:1** 进行(群聊不便做登录类操作)。
## 修订记录
| 日期 | 说明 |
|------|------|
| 2026-10-15 | 本机摸仓新建本文;写入用户口述两套部署并标「待远程核实」;补用途、本地跑法、关键配置路径。未 commit / 未 push。 |