QISIMIAO LOL STATS

让 Hermes 帮你做一个真正可热更新的内战数据前后台系统

这份教程给不懂编程的管理员使用。照着步骤复制提示词、运行命令、检查结果即可。

前台端口:6666 后端端口:7777 数据库:SQLite 部署:Docker Compose

目标效果

玩家看到的前台

群友打开 http://服务器IP:6666,可以查询选手、英雄、排行榜、比赛明细和对位数据。

管理员更新数据后,前台刷新即可看到最新结果。

管理员使用的后台

管理员打开后台页面,新增、编辑、删除比赛记录或选手档案。保存时调用后端 API,数据写入服务器数据库。

后台必须有管理员密码或 token,不能让所有人都能改数据。

最终架构

浏览器前台  http://服务器IP:6666
    ↓ 读取最新统计
后端 API    http://服务器IP:7777/api/stats
    ↓ 保存修改
SQLite 数据库文件 /app/data/lol-stats.db

管理员要做什么

1

把需求复制给 Hermes

不要让 Hermes 一次性乱改。每次只做一个阶段,做完就验收。

2

看 Hermes 的结果

重点看它有没有跑通命令、有没有报错、有没有说明改了哪些文件。

3

在服务器部署

用 Docker Compose 启动服务,然后访问前台和后端地址检查。

服务器准备

先登录服务器,进入项目目录。下面命令根据你的服务器实际情况执行。

cd /你的项目目录/qisimiao-lol-stats

检查 Docker 是否可用

docker --version
docker compose version

如果这两个命令有版本号输出,说明 Docker 准备好了。

检查端口是否被占用

sudo lsof -i :6666
sudo lsof -i :7777

如果没有输出,说明端口空闲。若有输出,把占用进程停掉,或者找懂服务器的人确认。

创建环境变量文件

后续 Hermes 应该会生成 .env.example。正式部署时复制成 .env

cp .env.example .env
nano .env

里面至少要有一个管理员密钥:

ADMIN_TOKEN=请改成一串很长的随机密码
注意:不要把 ADMIN_TOKEN 发到群里,也不要写死在前端代码里。

让 Hermes 施工

推荐分 5 轮让 Hermes 做。每轮做完都要让它说明结果,不要跳步。

第 1 轮:扫描项目并给计划

你是我的全栈开发工程师。当前项目是一个英雄联盟娱乐群战绩查询静态站。

请先扫描项目结构,理解现有 index.html、assets/app.js、assets/data.js 的数据结构和展示逻辑。

目标是把项目升级成真正的前后台系统:
1. 前台端口 6666。
2. 后端 API 端口 7777。
3. 后台管理可以新增、编辑、删除选手和比赛记录。
4. 保存后数据写入服务器数据库,前台刷新后可以看到最新数据。
5. 使用 SQLite,不使用云数据库。
6. 使用 Docker Compose 部署。
7. 管理后台需要 ADMIN_TOKEN 鉴权,通过环境变量配置。

这一轮不要修改代码。请只输出:
- 当前项目结构分析
- 推荐技术方案
- 分阶段实施计划
- 可能风险

第 2 轮:先做后端 API

请按上一轮计划,先实现后端 API。

要求:
1. 使用 Node.js + Express + SQLite。
2. 后端监听 7777 端口。
3. SQLite 文件保存到 /app/data/lol-stats.db。
4. 首次启动时,如果数据库不存在,就从现有 assets/data.js 导入初始数据。
5. 提供这些接口:
   GET /api/health
   GET /api/stats
   GET /api/players
   POST /api/players
   PUT /api/players/:id
   DELETE /api/players/:id
   GET /api/matches
   POST /api/matches
   PUT /api/matches/:id
   DELETE /api/matches/:id
6. 写操作必须校验 ADMIN_TOKEN。
7. 每次比赛数据变化后,重新计算选手统计、英雄统计、对位统计。

请直接修改文件,并告诉我改了哪些文件、如何启动、如何测试。

第 3 轮:改前台读取 API

现在请把前台从读取静态 assets/data.js,改成优先读取后端 API。

要求:
1. 前台打开后请求 http://当前域名:7777/api/stats 或可配置的 API 地址。
2. 保留现有页面视觉和功能。
3. 如果 API 请求失败,页面要显示清晰错误提示。
4. 前台刷新后能看到后台保存的新数据。
5. 不要破坏现有查询、排行榜、英雄统计、对位查询、比赛明细功能。

请修改代码,并说明如何验证。

第 4 轮:做后台管理页面

请实现后台管理页面。

要求:
1. 后台页面可以放在 /admin.html。
2. 支持输入 ADMIN_TOKEN。
3. 支持新增、编辑、删除比赛记录。
4. 支持新增、编辑、删除选手档案。
5. 保存后调用后端 API。
6. 保存成功后提示成功,并能刷新前台看到最新数据。
7. 非程序员也能使用,表单字段要清楚。

请直接修改文件,并说明使用方法。

第 5 轮:Docker 打包部署

请为这个项目补齐 Docker 部署。

要求:
1. 前台容器对外端口 6666。
2. 后端容器对外端口 7777。
3. SQLite 数据库通过 volume 持久化到 ./data。
4. 提供 docker-compose.yml。
5. 提供 .env.example。
6. 提供清晰的部署命令和回滚说明。
7. docker compose up -d --build 后,前台和后端都能访问。

请修改文件,并给出最终部署步骤。

每轮验收标准

Docker 部署命令

等 Hermes 生成 docker-compose.yml 后,在服务器项目目录执行:

docker compose up -d --build

查看运行状态

docker compose ps

查看日志

docker compose logs -f backend
docker compose logs -f frontend

重启服务

docker compose restart

停止服务

docker compose down

测试接口

curl http://127.0.0.1:7777/api/health
curl http://127.0.0.1:7777/api/stats

日常使用流程

1

管理员打开后台

访问 http://服务器IP:6666/admin.html,输入管理员 token。

2

录入比赛记录

填写选手、位置、英雄、击杀、死亡、助攻、胜负、对位选手、MVP/SVP。

3

保存并检查前台

保存成功后,打开前台 http://服务器IP:6666 刷新页面,检查排行榜和比赛明细。

常见问题

现象 检查命令 处理办法
前台打不开 docker compose ps 确认 frontend 容器在运行,服务器防火墙放行 6666。
后台保存失败 docker compose logs -f backend 检查 ADMIN_TOKEN 是否正确,后端是否报错。
重启后数据丢了 ls -la ./data 确认 SQLite 数据库挂载到了服务器的 ./data 目录。
端口冲突 sudo lsof -i :6666
sudo lsof -i :7777
停止占用端口的旧服务,或改 compose 端口。
前台没有最新数据 curl http://127.0.0.1:7777/api/stats 先确认后端数据是否更新,再刷新浏览器缓存。

完整提示词模板

如果管理员只想复制一段给 Hermes,可以先用这一段:

你是我的全栈开发工程师和部署助手。请帮助我把当前英雄联盟娱乐群战绩查询静态站,升级成真正可热更新的前后台系统。

背景:
- 当前项目已经有静态前台,可以展示选手、比赛、英雄、BAN、对位等数据。
- 现在需要后台管理,让不会编程的管理员可以手动录入和修改数据。
- 项目要部署在我的云服务器上。
- 服务器上已经部署 Hermes,并配置好了模型。

目标:
1. 前台对外端口是 6666。
2. 后端 API 对外端口是 7777。
3. 后台保存一条数据后,前台刷新就能看到最新效果。
4. 使用 SQLite 保存数据,不使用云数据库。
5. 使用 Docker Compose 打包和部署。
6. 管理后台必须有 ADMIN_TOKEN 鉴权,token 从环境变量读取。
7. 不要添加遥测、统计、第三方追踪。
8. 不要把任何密码或 token 写死在代码里。

工作方式:
- 先扫描项目,不要直接改代码。
- 先给我分阶段计划。
- 每一阶段完成后,告诉我改了哪些文件、运行了哪些命令、如何验收。
- 如果遇到报错,不要绕过,请解释原因并修复。

请现在开始第 1 阶段:扫描项目结构并输出实施计划。

最后确认

这个教程的核心原则是:让 Hermes 写代码,但管理员负责验收。

只要每一步都能通过验收,再进入下一步,项目就不容易被改乱。