106 lines
3.7 KiB
Markdown
106 lines
3.7 KiB
Markdown
# 91porn-server
|
||
|
||
Go 语言后端服务项目,基于 Gin 框架
|
||
|
||
## 架构
|
||
|
||
单仓库多服务(Monorepo),包含 3 个独立可部署的服务:
|
||
|
||
| 服务 | 入口 | 端口 | 说明 |
|
||
|------|------|------|------|
|
||
| **app** | `app/main.go` | 8182 | 面向客户端的 API 服务(移动端/APP) |
|
||
| **web** | `web/main.go` | - | 后台管理系统 API |
|
||
| **skd** | `skd/main.go` | - | 定时任务/后台 Job 调度服务 |
|
||
|
||
根目录 `main.go` 仅用于 Swagger 文档生成(端口 20114)。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
├── app/ # APP 端服务
|
||
│ ├── api/ # 接口处理层
|
||
│ ├── router/ # 路由定义
|
||
│ ├── service/ # 业务逻辑层
|
||
│ ├── middleware/ # APP 专用中间件
|
||
│ ├── config/ # APP 配置
|
||
│ └── proto/ # 请求/响应结构体
|
||
├── web/ # 后台管理端服务
|
||
│ ├── api/ # 接口处理层
|
||
│ ├── router/ # 路由定义
|
||
│ ├── service/ # 业务逻辑层
|
||
│ ├── middleware/ # Web 专用中间件
|
||
│ ├── config/ # Web 配置
|
||
│ └── proto/ # 请求/响应结构体
|
||
├── skd/ # 调度任务服务
|
||
│ ├── job/ # 定时任务定义
|
||
│ ├── service/ # 任务业务逻辑
|
||
│ ├── once/ # 一次性脚本
|
||
│ └── config/ # 调度配置
|
||
├── models/ # 数据模型层(数据库表结构、缓存模型)
|
||
├── common/ # 公共模块
|
||
│ ├── db/ # 数据库连接
|
||
│ ├── redis/ # Redis 客户端
|
||
│ ├── cache/ cachev2/ # 缓存层
|
||
│ ├── kafka/ # Kafka 消息队列
|
||
│ ├── elastic/ # Elasticsearch
|
||
│ ├── log/ # 日志
|
||
│ ├── conf/ # 配置加载
|
||
│ ├── tg/ # Telegram 机器人通知
|
||
│ ├── email/ sms/ # 邮件/短信通知
|
||
│ ├── filter/ # 内容过滤
|
||
│ ├── dataReport/ # 数据上报
|
||
│ ├── datacenter/ # 数据中心
|
||
│ ├── aiMate/ aiService/# AI 功能
|
||
│ ├── laosiji/ # 老司机模块
|
||
│ ├── store/ # 对象存储
|
||
│ └── ... # 其他工具模块
|
||
├── middleware/ # 通用中间件(CORS、IP、UA、请求ID)
|
||
├── generate/ # 代码生成
|
||
├── script/ # 脚本
|
||
└── swagger/ # Swagger 文档
|
||
```
|
||
|
||
## 技术栈
|
||
|
||
- **Web 框架**:Gin
|
||
- **ORM**:GORM
|
||
- **数据库**:MySQL
|
||
- **搜索引擎**:Elasticsearch
|
||
- **缓存**:Redis
|
||
- **消息队列**:Kafka (Sarama)
|
||
- **对象存储**:AWS S3
|
||
- **API 文档**:Swagger (swaggo)
|
||
- **部署**:Docker + Shell 脚本
|
||
|
||
## 业务功能
|
||
|
||
- 用户体系(注册/登录/JWT 鉴权/VIP)
|
||
- 视频/媒体管理(上传/播放/标签/搜索)
|
||
- 支付系统(充值/提现/钱包/金币)
|
||
- 社区功能(评论/关注/点赞/排行榜)
|
||
- IM 即时通讯(群组/消息)
|
||
- AI 功能(换脸/脱衣/文生图/文生视频/文生小说)
|
||
- 运营工具(活动/公告/签到/任务/兑换码)
|
||
- 广告系统
|
||
- 裸聊/代充
|
||
- 后台管理(用户管理/内容审核/数据统计/配置管理)
|
||
|
||
## 构建与部署
|
||
|
||
```bash
|
||
# 构建
|
||
make build
|
||
|
||
# 测试
|
||
make test
|
||
|
||
# Docker 构建
|
||
make docker
|
||
```
|
||
|
||
生产部署脚本:
|
||
- `app_update_prod.sh` — 部署 APP 服务
|
||
- `web_update_prod.sh` — 部署 Web 后台服务
|
||
- `skd_update_prod.sh` — 部署调度服务
|
||
- `skd_update_test.sh` — 部署调度服务(测试环境)
|