refactor: update match configuration and user matching logic

- Changed the daily free match limit to a lifetime limit, aligning with backend configurations.
- Updated the match price display to include original pricing for better user clarity.
- Refactored match quota handling to sync with the server, ensuring accurate match counts and purchase statuses.
- Enhanced UI messages to reflect changes in match availability and pricing.
- Removed deprecated logic related to daily match counts, streamlining the matching process.
This commit is contained in:
Alex-larget
2026-04-01 17:09:45 +08:00
parent bdd0795434
commit 360bba697b
26 changed files with 374 additions and 781 deletions

View File

@@ -1,33 +1,56 @@
# soul-api Docker 部署
# soul-api Docker 部署说明
Docker 相关配置均在此目录,根目录仅保留 `deploy.py`
## 1) 打包运行后必需的文件和目录
## 文件说明
### 必需文件
- `soul-api` 可执行文件Docker 镜像内已包含)
- `.env`(或等价环境变量;本方案使用 `deploy/app.env`
- `certs/apiclient_cert.pem`
- `certs/apiclient_key.pem`
| 文件 | 用途 |
|------|------|
| `Dockerfile` | 多阶段构建golang + alpine需拉取 golang 镜像 |
| `Dockerfile.local` | 仅运行阶段,配合 `deploy.py --local-go` 使用本地 Go 编译 |
| `docker-compose.bluegreen.yml` | 蓝绿部署8081/8082含 Redis 7-alpine |
| `docker-compose.production.yml` | 生产单实例部署 |
| `docker-compose.yml` | 本地开发 Redis |
| `docker-deploy-remote.sh` | 服务器端蓝绿切换脚本 |
### 必需目录
- `uploads/`:上传文件持久化目录
- `log/`:订单同步等日志目录
## 镜像版本
> 说明:`/app/uploads`、`/app/log` 是容器内目录;本方案已挂载到服务器目录:
> - `/www/wwwroot/self/soul-dev/uploads -> /app/uploads`
> - `/www/wwwroot/self/soul-dev/log -> /app/log`
- **soul-api**Go 1.25alpine 3.19
- **Redis**7-alpine与 soul-api 一并打包上传,服务器无需拉取)
- **MySQL**:外部服务,不打包
## 2) 本地/服务器快速启动
## 用法
`soul-api/deploy` 目录下执行:
```bash
# 一键部署(蓝绿)
python deploy.py --mode docker
1. 复制环境文件:
- `cp app.env.example app.env`
- 按实际环境填写 `DB_DSN`、微信和管理端密钥
2. 启动:
- `docker compose up -d --build`
3. 查看状态:
- `docker compose ps`
- `docker compose logs -f app`
4. 健康检查:
- `http://服务器IP:APP_PORT/health`
# 使用本地 Go 编译
python deploy.py --mode docker --local-go
## 3) 给宝塔的推荐方式
# 本地启动 Redis
docker compose -f deploy/docker-compose.yml up -d
```
- 方式 A推荐在宝塔 Docker/Compose 项目里直接使用 `deploy/docker-compose.yml`
- 方式 B`docker build -f deploy/Dockerfile -t soul-api:latest ..`,再在宝塔按镜像创建容器
## 4) 目录结构deploy
- `deploy/Dockerfile`:多阶段构建 Go 应用镜像
- `deploy/docker-compose.yml`:单容器运行与数据卷持久化
- `deploy/app.env.example`:环境变量模板
## 5) 离线镜像部署(不走远端拉取)
你可以把本地导出的 `deploy/soul-api_latest.tar` 上传到服务器,然后:
1. 导入镜像:
- `docker load -i soul-api_latest.tar`
2. 准备配置:
-`deploy/app.env` 放到服务器同目录(或按需改 `env_file`
3. 启动:
- `docker compose up -d --no-build`
> 这种方式不会再从 Docker Hub 拉取 `soul-api` 业务镜像;直接使用你导入的本地镜像运行。