8679200f41430c68a784a3373dfe8f91f62eed1e
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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 功能(换脸/脱衣/文生图/文生视频/文生小说)
- 运营工具(活动/公告/签到/任务/兑换码)
- 广告系统
- 裸聊/代充
- 后台管理(用户管理/内容审核/数据统计/配置管理)
构建与部署
# 构建
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— 部署调度服务(测试环境)
Languages
Go
96.6%
HTML
3%
Go Template
0.2%
JavaScript
0.1%