Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+124
View File
@@ -0,0 +1,124 @@
---
项目名称: 91PORN #如果在dmp则使用dmp的名称 如果不在则使用自定义名称
一级部门: 北斗 #请填写一级部门名称 北斗
二级部门: 瑞升 #请填写二级部门名称,无则留空, 如无极
DMP编码: JHA-204 #无则留空
项目类型: app
# 可选值:
# H5 / APP / PC / 服务 / 组件 / 工具 / AI / 中间件
开发语言: GO
# 可选值:
# GO / Java / PHP / Node
项目负责人: DN8276 # 员工编号, 多个用逗号隔开,这里的负责是这套代码的负责人
运维负责人: DN9460,DN9651,DN4792 #
产品负责人: YY1165,YY1145,YY1208 # 张天意,李云霄,邦妮
项目成员: DN8276
项目状态: 开发中
# 可选值:
# 开发中 / 维护中 / 已停止 / 已归档
项目级别:
# 可选值:
# 高 / 中 / 低 , 北斗体系 s和a为 高 b为中 c d为低
核心分支: main
# 即部署时候使用的分支,可选值:
# master / main / dev / release
代码仓库:
- ssh://git@bd-git-sh.jsyyds.com:8082/ruisheng/jha-204-91pron/backend/91porn-server.git
最后审计人:
最后审计时间:
告警群:
备注:
---
# 1. 项目说明
91PORN后端服务,基于 Go 1.23 + Gin 框架,采用多服务架构:
- **APP API (`app/`)**: 面向客户端的接口服务,包含用户、视频、搜索、支付、会员、排行、抽奖、发布等模块
- **Web API (`web/`)**: 面向管理后台的接口服务,包含运营管理、数据配置、内容审核等模块
- **SKD (`skd/`)**: 后台定时任务与异步处理服务,包含定时任务 (`job/`)、一次性脚本 (`once/`)、数据导出等
- **Swagger (`main.go`)**: API 文档服务,端口 20114
项目目录结构:
```
91porn-server/
├── app/ # APP 端 API 服务 (api/router/service/middleware/proto/appg)
├── web/ # Web 管理后台 API 服务 (api/router/service/middleware/proto/webg)
├── skd/ # 后台任务服务 (job/once/service/skdg)
├── common/ # 公共模块 (cache/db/redis/elastic/file/email/log/tg/httputil/stderr 等)
├── models/ # 数据模型层 (Init/commod/v/*)
├── middleware/ # 全局中间件 (CORS/日志/IP/RequestID/UA)
├── generate/ # 代码生成工具
├── scripts/ # 运维/数据脚本
├── swagger/ # Swagger 文档
├── tests/ # 测试
├── Makefile # 构建脚本
└── Dockerfile # Docker 构建文件
```
# 2. 基础设施与中间件
- MongoDB(主数据库,通过 go.mongodb.org/mongo-driver
- Redis(缓存、分布式锁 redsync
- Kafka(消息队列,Sarama 客户端)
- Elasticsearch(全文搜索)
- AWS S3(文件存储)
- Telegram Bot(告警通知)
- 邮件服务
# 3. 运维部署
通过 Shell 脚本交叉编译(`GOOS=linux GOARCH=amd64`)并打包上传到远程服务器,每个服务有独立的部署脚本:
| 脚本 | 服务 | 产物 | 远程目录 |
|------|------|------|----------|
| `app_update_prod.sh` | APP API | `91porn-app-server` | `/home/server/91porn/app` |
| `web_update_prod.sh` | Web API | `91porn-web-server` | `/home/server/91porn/web` |
| `skd_update_prod.sh` | SKD | `91porn-skd-server` | `/home/server/91porn/skd` |
| `skd_update_test.sh` | SKD (测试) | `91porn-skd-server` | `/server/91porn/91porn-skd` |
发布流程:
1. 本地交叉编译 `GOOS=linux GOARCH=amd64 go build`
2. 生成 MD5 校验文件
3. 打包为 `.tar.gz`
4. 通过 `scp` 上传到远程服务器
5. 发送 Telegram 通知到服务器小组群
6. 测试环境额外通过 SSH 远程解压并 `supervisorctl restart` 重启服务
# 4. 风险说明
- Kafka 消息积压可能导致异步任务延迟
- Redis 热 Key 风险(缓存层使用广泛)
- MongoDB 大查询性能风险
- 依赖外部服务:AWS S3、Telegram、邮件、Elasticsearch
# 5. 历史事故(可选)
- 暂无
# 6. 交接说明(可选)
- 各服务配置文件位于各自目录下的 `config/` 文件夹(JSON 格式)
- 加密密钥文件:`enc.key``enc_pms.key``enkeymt.key`,注意保密
- APP 端包含请求加密中间件(RSA),密钥在 `app/middleware/requestEncrypt/`