Files
openclaw-config/workspace-cc/memory/2026-08-12.md
T
2026-08-12 23:00:07 +08:00

3.9 KiB
Raw Blame History

工作日志 2026-08-12

主题:cc-square 去 Spring Boot 化 —— Node 轻服务 + Redis 点击计数

背景 / 起因

  • VPS 内存紧张,需放弃部署重型的 Spring Boot 后端(yudao/ruoyi-vue-pro
  • 前端需改造为"独立查询数据"形式
  • 书签排序需要"访问次数"记录

关键决策(用户确认)

  1. 点击次数只存 Redis,不落 MySQL
  2. Redis 启用持久化(VPS Redis 已支持 AOF
  3. 排序规则:纯点击倒序ZREVRANGE
  4. Node 服务部署在 VPS
  5. 前端 baseUrl 走 nginx /api 反代(rewrite 剥 /api → 48080

最终架构

前端(cc-square) → nginx(/api rewrite) → Node(Express, 48080) → MySQL(只读) + Redis(点击/排序)

连接凭据确认(已验证)

  • 公网 MySQL101.34.227.188:3306readonly,密码 135246host %(任意来源)
  • 公网 Redis101.34.227.188:6379,密码 5gynj20JAOF 持久化
  • 验证结果:MySQL 连接+查询通(cc_website 212行/cc_engine 23行/cc_website_type 11行)
    • cc_website 启用 124 条;字段:id/status/type_id/title/click/order/icon/url/description...
    • cc_website_type 分类名为 title 列(非 name),且有 order
    • cc_engine 无 order 列,排序仅按 click

交付物(/home/yangxuan/cc-square/server/

文件 说明
server.js 主程序:静态托管 + /tab/* 接口 + Redis 计数/排序
config.js 配置(支持环境变量)
scripts/init-redis.js Redis 历史点击导入(幂等)
ecosystem.config.js pm2 配置
package.json 依赖 express/mysql2/redis/axios
.env.example 环境变量模板
DEPLOY.md 部署文档(含完整 pm2 命令)
FRONTEND-CHANGES.md 前端改造说明
README.md 服务导航

Node 服务接口(全部实测通过)

方法 路径 数据源
GET /tab/engine MySQL cc_engine
GET /tab/bookmark MySQL cc_website_type 聚合
GET /tab/menu MySQL
GET /tab/quick?limit=N Redis ZREVRANGE 点击排行
GET /tab/list-by-type?typeId=N MySQL
GET /tab/searchBookmark?keyword=x MySQL
GET /tab/weather/all 高德API(未配置key时返回空,优雅降级)
POST /tab/quickCount Redis ZINCRBY(书签)
POST /tab/engineCount Redis ZINCRBY(引擎)
GET /health 健康检查

前端改造(已完成)

  1. src/config/env.jsbaseUrl 改为 /apinginx 反代)
  2. src/request/http.js:重写精简版,去掉 token/key 认证
  3. src/request/api/nav.js/app-api/tab//tab/
  • 已 build 成功(1720 模块),响应格式兼容原 yudao {code:0,data,msg}

部署状态

  • 本机(xuan-mainNode 服务 pm2 跑通验证(48080),接口全通
  • VPSxuan-vps / 101.34.227.188
    • 已备份旧前端 → /usr/share/nginx/html.bak.20260812
    • apt 装 Node v22.23.1 + pm2 7.0.3(用户手动装)
    • server 代码在 /opt/cc-square-server/npm install 完成(104 包)
    • .env 已建(含密码,600 权限)
    • Redis 已初始化(120 书签 / 3 引擎)
    • Node 服务启动 + 前端 dist 替换由用户手动完成
  • nginx:主站 climbcube.conf 已有 /api 反代 → rewrite ^/api(.*)$ $1 break; proxy_pass http://localhost:48080;
    • 前端静态目录:/usr/share/nginx/htmlindex.html 即 cc-square 导航页)

待办 / 遗留

  • VPS 上启动 Node 服务(用户手动):pm2 start ecosystem.config.js
  • VPS 替换前端 dist 至 /usr/share/nginx/html(用户手动)
  • 前端 baseUrl 需为 /api(本机已改,dist 需重新 build 后上传)
  • 天气接口需高德 key
  • 安全建议:readonly host % 建议收窄(需用户确认)

环境备注

  • 本机 shell 是 zsh(注意 pkill/zsh 通配符坑)
  • VPS 是 Debian 12,内存 3.7G,磁盘 69G/32G 已用
  • VPS 上多处是 debian 用户属主(/usr/share/nginx/html, /opt/cc-square-server