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
+105
View File
@@ -0,0 +1,105 @@
# 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` — 部署调度服务(测试环境)