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

86 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 工作日志 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(点击/排序)
```
### 连接凭据确认(已验证)
- 公网 MySQL`101.34.227.188:3306`readonly,密码 135246host `%`(任意来源)
- 公网 Redis`101.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.js`baseUrl 改为 `/api`nginx 反代)
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-main**Node 服务 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/html`index.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