从内容采集、清洗审核、榜单运营到 H5 / APP 分发的一体化游戏内容平台
RuoYi · Spring Boot · MySQL · uni-app · Vue 3
项目介绍 · 项目预览 · 三端功能 · 快速开始 · 开发历程 · 参与贡献
果壳 GAME(GuoKe GAME) 不是一个只负责“展示游戏列表”的简单前端,也不是单独的一套采集脚本。它是一套围绕游戏与移动应用内容运营构建的全栈系统,把内容从进入平台到最终触达用户的完整过程放进同一个仓库:
授权来源 / 人工录入
↓
单条采集 / 批量任务 / 字段清洗
↓
分类、版本、资源、截图与发布审核
↓
首页推荐、榜单、搜索、公告与远程运营
↓
H5 桌面端 / H5 移动端 / uni-app APP
↓
收藏、游戏库、下载、访问与运营数据回流
项目真正解决的是内容型产品最容易割裂的几个问题:采集工具与后台不一致、后台与客户端字段不一致、版本和下载资源难以维护、榜单和推荐只能改代码、APP 运营配置无法远程调整。果壳 GAME 通过统一的数据模型和 Spring Boot API,让运营后台、H5 和 APP 使用同一份内容事实来源。
- 项目类型:Full-stack Monorepo / Game Content Platform / Content Operations System;
- 适用场景:游戏内容站、应用内容库、下载导航、RuoYi 二次开发、uni-app 多端项目、采集与审核平台;
- 核心用户:内容运营人员、后台管理员、前端/APP 开发者、采集适配器开发者;
- 推荐 GitHub Topics:
ruoyi、spring-boot、uni-app、vue3、mysql、content-management、game-platform、scraper。
Important
本仓库提供的是平台代码、数据模型和技术实现,不提供任何商业游戏包、破解内容、第三方账号、Cookie、签名证书、生产密钥或可直接用于侵权传播的资源。部署者必须对自己导入、采集、展示和分发的内容拥有合法权利或明确授权。
以下图片均由当前仓库在 2026 年 7 月 17 日 本地运行后采集,覆盖四种真实使用形态:H5 桌面端、H5 移动端、uni-app APP 和运营管理后台。
| 首页 | 排行榜 | 内容发现 |
![]() |
![]() |
![]() |
| 壁纸专区 | 账号同步 | 游戏详情 |
![]() |
![]() |
![]() |
| 首页 | 排行榜 | 内容发现 |
![]() |
![]() |
![]() |
| 壁纸专区 | 账号同步 | 游戏详情 |
![]() |
![]() |
![]() |
| 首页推荐 | 游戏分类 | 我的游戏 |
![]() |
![]() |
![]() |
| 搜索发现 | 个人中心 | 游戏详情 |
![]() |
![]() |
![]() |
| 运营仪表盘 | 游戏内容管理 |
![]() |
![]() |
| 批量采集任务 | 榜单条目管理 |
![]() |
![]() |
| APP 内容池 | 版本与资源管理 |
![]() |
![]() |
在线体验:guokeyx.com
| 核心能力 | 项目价值 |
|---|---|
| 完整内容运营闭环 | 从来源配置、采集任务、字段标准化、人工审核,到版本资源、推荐榜单和最终发布,不需要在多套工具之间手工搬运数据。 |
| H5 / APP / 后台三端同源 | 三端共享同一套领域数据和 API,内容、分类、榜单、账号、收藏与下载状态可以持续保持一致。 |
| 采集不是脚本,而是可运营任务 | 支持多站点适配、单页/多页/多站点任务、进度与成功失败统计、来源质量补全以及后台可追踪的任务记录。 |
| 运营配置不依赖重新发版 | Banner、启动图、公告、友情链接、客户端版本、APP 内容池、榜单和下载策略都可以由后台控制,降低日常运营成本。 |
| 资源与版本模型可持续扩展 | 游戏、版本、文件大小、下载源、转存策略、截图和发布状态分层管理,为对象存储、CDN、解析服务和更多客户端预留扩展边界。 |
- 响应式访问:同一套 H5 支持 PC 全屏与移动端浏览,覆盖首页、排行榜、发现、壁纸和详情等主要入口;
- 内容消费:游戏分类、关键词搜索、热门榜单、推荐 Feed、详情介绍、截图、版本与下载入口;
- 账号衔接:登录/注册入口、账号同步说明及与后台用户体系关联的扩展能力;
- 运营承载:访问统计、推荐位、公告、友情链接和下载页可由后台数据驱动;
- 部署方式:既可作为 Spring Boot 静态资源直接发布,也可由 Nginx/CDN 独立托管并反向代理
/api/。
- 首页与分类:启动页、轮播推荐、热门排行、推荐列表、精选游戏与实用软件分类;
- 搜索与详情:热搜榜、热门分类、内容搜索、游戏详情、精选截图、版本信息和下载操作;
- 用户体系:注册登录、个人资料、头像、个性签名、账号安全、隐私与通知设置;
- 个人游戏空间:收藏、游戏库、安装/入库状态、游玩时长和成就数据展示;
- 原生能力预留:下载任务、暂停/继续/取消、安装/打开、客户端升级及 uni-app 可支持的其他平台构建入口;
- 远程运营:APP 内容池、轮播图、启动图、公告和客户端版本由后台统一管理。
- 运营仪表盘:用户、活跃、内容总量、采集任务、分类占比、近期任务与榜单状态总览;
- 内容中心:游戏/应用、分类、标签、版本、截图、下载源、文件大小、发布和推荐状态管理;
- 采集中心:来源站点、单条采集、批量采集、多页任务、多站点并发、任务进度和失败统计;
- 榜单与推荐:榜单定义、榜单条目、排名、权重、展示场景、首页推荐与上下架;
- APP 与远程运营:APP 分类、内容池、轮播图、采集记录、启动图、公告、友情链接和客户端版本;
- 用户与平台治理:用户资料、收藏/游戏库数据、角色权限、菜单、日志、定时任务、在线会话与服务监控。
| 层级 | 技术 |
|---|---|
| 后端 | Java 8、Spring Boot 2.5.15、Apache Shiro、MyBatis、Druid、Quartz、Swagger |
| 数据 | MySQL 5.7/8.0、SQL 版本化补丁、Redis(RuoYi 可选能力) |
| 管理端 | RuoYi 4.8.3、Thymeleaf、Hplus、Bootstrap、jQuery |
| H5 | 后端静态 H5、响应式布局、同源 API 发布 |
| APP | uni-app、Vue 3、Vite 5、JavaScript、SCSS |
| 辅助服务 | Java 网盘解析 sidecar、.NET 8 登录辅助 Shell |
| 工程化 | Maven、npm、HBuilderX、GitHub Actions、Python 公开仓库检查 |
flowchart LR
Sources["经授权的数据来源"] --> Scrape["采集适配与字段清洗"]
Scrape --> Review["后台审核 / 分类 / 版本 / 资源"]
Review --> API["Spring Boot / RuoYi API"]
Admin["运营管理后台"] --> API
H5["PC / Mobile H5"] --> API
App["uni-app / Android"] --> API
API --> DB[("MySQL")]
API --> Files["上传文件与静态资源"]
API --> Parser["可选解析服务"]
API --> Metrics["访问、下载与运营指标"]
完整模块、数据流和信任边界见 架构文档。
GuoKeGAME/
├─ 01_backend_admin_h5/
│ └─ backend/RuoYi/
│ ├─ ruoyi-admin/ 应用入口、管理端、公开 API、H5 静态资源
│ ├─ ruoyi-system/ 果壳业务服务、数据模型与采集适配
│ ├─ ruoyi-framework/ Shiro、安全与 Web 基础设施
│ ├─ game-h5-src/ H5 页面发布源
│ ├─ sql/ 基础 SQL、业务补丁、菜单与种子数据
│ └─ tools/ 可选解析与登录辅助工具
├─ 02_app_hbuilder/
│ └─ GuoKeGAME/ uni-app + Vue 3 客户端
├─ docs/ 架构、部署、路线图与项目图片
├─ scripts/ 开源仓库安全检查脚本
└─ .github/ CI、Issue 与 Pull Request 模板
| 组件 | 建议版本 | 用途 |
|---|---|---|
| JDK | 8 | 编译和运行 RuoYi 后端 |
| Maven | 3.6+ | 构建多模块 Java 工程 |
| MySQL | 5.7 / 8.0 | 业务数据库 |
| Node.js | 18+ | uni-app H5 开发与构建 |
| npm | 随 Node.js | 安装客户端依赖 |
| HBuilderX | 当前稳定版 | APP 浏览器调试、真机运行和打包 |
推荐启动顺序:MySQL → 导入 SQL → 后端 8081 → H5/APP → 可选辅助服务。
git clone https://github.com/baige198/GuoKeGAME.git
cd GuoKeGAME创建数据库和专用账号:
CREATE DATABASE guokegame CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'guokegame'@'localhost' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON guokegame.* TO 'guokegame'@'localhost';
FLUSH PRIVILEGES;进入 01_backend_admin_h5/backend/RuoYi/sql/,按以下顺序导入:
ry_20260319.sql:RuoYi 基础表、菜单和默认管理员;guokegame_core_v1.sql→v2_patch→v5_multi_category_patch→v6_batch_scrape_patch→v7_menu_cleanup;guokegame_core_v8_front_api.sql、guokegame_core_v8_front_api_patch.sql;guokegame_core_v9_remote_ops.sql、guokegame_core_v10_download_hub.sql;guokegame_core_v8_boot_splash_config.sql、guokegame_core_v9_front_game_stat_patch.sql、guokegame_core_v11_front_visit_stat.sql;guokegame_core_v12_app_content.sql、v13_app_banner、两个v14补丁和v18_h5_scrape_quality;- 按编号导入
guokegame_menus_*.sql; - 最后导入
guokegame_source_sites_seed.sql和guokegame_ranking_seed_v1.sql。
guokegame_content_reset.sql与guokegame_h5_content_reset_safe.sql是维护/重置脚本,不属于普通初始化流程。已有数据库升级前必须先备份,并且只执行尚未应用的补丁。
cd 01_backend_admin_h5/backend/RuoYi
Copy-Item ruoyi-admin/src/main/resources/application-druid.example.yml `
ruoyi-admin/src/main/resources/application-druid.yml
$env:GUOKE_DB_URL='jdbc:mysql://127.0.0.1:3306/guokegame?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true'
$env:GUOKE_DB_USERNAME='guokegame'
$env:GUOKE_DB_PASSWORD='replace-with-a-strong-password'
$env:GUOKE_DRUID_USERNAME='druid-admin'
$env:GUOKE_DRUID_PASSWORD='replace-with-another-strong-password'application-druid.yml、.env.local、Cookie、证书、数据库备份和签名文件已被 Git 忽略,不要强制提交。
mvn -pl ruoyi-admin -am clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar-am 必须保留,它会同步构建 ruoyi-system 等依赖模块,避免出现“源码已修改但运行 JAR 仍是旧逻辑”的问题。
本地验证:
| 地址 | 说明 |
|---|---|
http://127.0.0.1:8081/login |
RuoYi 管理后台 |
http://127.0.0.1:8081/game/ |
后端内置 H5 |
http://127.0.0.1:8081/download/ |
APP 下载页 |
http://127.0.0.1:8081/api/app/home/feed/ |
APP 首页公开 API |
RuoYi 基础 SQL 的本地默认管理员通常为 admin / admin123。仅用于首次本地登录,部署后必须立即修改密码,并限制 Druid、Swagger 和不需要的管理入口。
cd 02_app_hbuilder/GuoKeGAME
Copy-Item .env.example .env.local
npm ci
npm run dev:h5.env.local 示例:
VITE_API_BASE_URL=https://your-domain.example/api
VITE_DEV_API_BASE_URL=http://127.0.0.1:8081/api开发服务器默认由 Vite 分配地址,常见为 http://127.0.0.1:5173。生产构建执行:
npm run build:h5- 使用 HBuilderX 打开
02_app_hbuilder/GuoKeGAME; - 如果运行到本机 Chrome,
VITE_DEV_API_BASE_URL可使用127.0.0.1:8081/api; - 如果运行到真机或模拟器,将
127.0.0.1改为电脑在同一局域网中的 IP,并放行8081端口; - 选择“运行 → 运行到浏览器 → Chrome”验证 H5/APP 页面;
- 选择“运行 → 运行到手机或模拟器”验证下载、安装、打开和升级链路;
- 正式打包前创建自己的 AppID、Android 包名和签名证书,绝不能复用或提交仓库外的私有签名材料。
完整数据库顺序、Nginx、生产部署、路由和故障排查见 部署指南。
以下节点依据仓库 SQL、页面、服务文件和部署记录整理,描述项目从基础框架到开源基线的真实演进:
| 时间 | 开发阶段 | 主要成果 |
|---|---|---|
| 2026-03-19 | 项目基线 | 建立 RuoYi 数据库基线、用户/角色/菜单和后台基础能力。 |
| 2026-04-17 ~ 04-18 | 内容领域与后台骨架 | 完成游戏内容、分类、多分类、菜单和批量采集的数据模型及管理入口。 |
| 2026-04-19 | 发布与榜单链路 | 增加榜单种子、榜单条目、前台 API、内容上下架和推荐所需的核心字段。 |
| 2026-04-21 ~ 04-25 | 远程运营与下载中心 | 完成远程运营配置、下载单页、二维码、消息管理和后台运营入口。 |
| 2026-06-26 ~ 06-28 | 数据质量与 APP 内容池 | 增加来源站点、访问统计、APP 内容/分类/轮播、APP 采集和下载地址补全。 |
| 2026-06-28 ~ 07-01 | uni-app 与三端打通 | 完成首页、分类、游戏库、个人中心、搜索、详情、认证和设置等 APP 页面;同步稳定 H5 与后台接口。 |
| 2026-06-30 ~ 07-01 | 稳定化与部署收口 | 增加采集质量补丁、安全重置脚本、完整重部署手册和构建/运行验证。 |
| 2026-07-17 | 开源基线 | 清理私有配置和构建产物,补齐许可证、CI、贡献规范、部署文档及四类项目预览图。 |
我选择开源果壳 GAME,不是为了把一个“已经结束”的项目丢到 GitHub,而是希望它通过更多开发者、运营人员和使用者的参与,继续变得更完整、更稳定、更优秀。无论是修复一个字段映射、补充一个来源适配器、完善一条部署说明,还是改进 H5/APP 的体验,都可能让这个项目走得更远。
欢迎贡献:
- Bug 修复、自动化测试和性能改进;
- H5、APP、后台交互与视觉优化;
- 合法合规的来源适配器、解析器和失败降级;
- 数据库迁移、容器化、可观测性和发布自动化;
- 文档、示例、国际化、无障碍与安全改进。
提交前请阅读:
Warning
本项目中的采集流程、字段解析、来源适配、下载信息处理和相关示例,仅用于学习、研究、技术交流与合法场景参考。它们不代表作者鼓励或授权任何人抓取、复制、传播、销售或商业化第三方内容。
使用者必须遵守适用法律法规、目标网站服务条款、robots 规则、著作权/商标权/个人信息保护要求,并确认自己对数据、图片、软件包、下载链接和账号权限拥有合法使用权。
严禁将本项目用于:
- 未经授权的内容采集、破解、盗版或访问控制绕过;
- 牟利传播、二次销售、倒卖、贩卖、引流分发或批量售卖资源;
- 传播侵权、违法、有害或不符合所在地法律法规的内容;
- 窃取账号、Cookie、令牌、个人信息或攻击第三方服务;
- 任何其他违法犯罪或损害第三方合法权益的行为。
任何个人或组织基于本项目进行的部署、修改、数据导入、内容展示、下载分发、商业经营或违法使用,均由实际行为人自行承担责任;在适用法律允许的范围内,与本开源项目作者及贡献者无关。作者不对第三方来源的持续可用性、内容真实性、授权状态、接口兼容性或使用后果作任何保证。
项目自有代码采用 MIT License。RuoYi、可选网盘解析服务、字体、依赖包及其他第三方组件继续适用各自许可证和版权声明,详见 THIRD_PARTY_NOTICES.md。游戏名称、截图、图标、商标、来源站内容和下载资源不因本仓库采用 MIT 许可证而被重新授权。























