4.3 KiB
4.3 KiB
xpcool.com 工作空间 · 统一规则与项目索引
本文件随会话自动加载。保持精简:只放规则与索引,详细历史在各项目 CHANGELOG。
三条铁律(全项目通用)
- 中文注释:写/改代码时,在应有处(函数、复杂逻辑、配置项、非显然分支)加中文注释。
- 做记录:每次请求/变更/修复/文档动作,都在对应项目 CHANGELOG.md 顶部追加一条。
- 中文优先:与用户的思考、输出、交流,能中文尽量中文。
工作空间说明(git 管理 · 跨设备同步)
- 本工作空间仓库:
workbuddy.xpcool.com(含本规则、每日日志、README),远程:https://git.xpcool.com/xpcool/workbuddy.xpcool.com.git - 布局约定(跨设备必须一致):所有项目与工作空间仓库位于同一父目录下:
换设备时按此布局 clone,索引即全部生效,无需改任何路径。<父目录>/ ├── workbuddy.xpcool.com/ ← 本工作空间(规则+索引+日志) ├── admin.xpcool.com/ ├── service.xpcool.com/ └── tool.xpcool.com/
项目索引(变更记录在各项目 .workbuddy/memory/CHANGELOG.md)
| 项目 | 类型 | 相对路径(相对本工作空间) | 远程仓库 |
|---|---|---|---|
| admin.xpcool.com | Vue 管理后台前端 | ../admin.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/admin.xpcool.com.git |
| service.xpcool.com | Go 后端服务 | ../service.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/service.xpcool.com.git |
| tool.xpcool.com | 前端工具站 | ../tool.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/tool.xpcool.com.git |
| (新增项目:在此加一行 + 在其 .workbuddy/memory/ 建 CHANGELOG.md + git.xpcool.com 建仓库) |
记录格式(省 token · 快速命中)
- 倒序:最新在上,一行一条
- 模板:
YYYY-MM-DD | 类型 | 一句话摘要 - 类型:REQ 请求 / CHG 变更 / FIX 修复 / DOC 文档 / CFG 配置 / DEP 依赖
- 示例:
2026-08-26 | CHG | 新增用户列表分页接口并补中文注释
命中流程
- 判断是否涉及某项目(看项目名/路径)。
- 读该项目 CHANGELOG.md 头部(最新 10–15 条)了解近况。
- 处理后于 CHANGELOG 顶部追加本次记录。
- 新增项目时同步更新上方索引表。
生产部署(腾讯云 193.112.118.168,SSH 22025/xxcool,Docker+宿主机 Nginx)
- 站点落点:前端静态 →
/data/www/<域名>/;nginx 配置 →/data/nginx/conf.d/<域名>.conf(80→301→443 + 反代/静态);证书 →/data/nginx/ssl/<域名>/<域名>_bundle.crt|.key(本地源:E:\xxcool\ssl\<域名>_nginx/)。 - service 后端容器:
service.xpcool.com:new,127.0.0.1:10100:10100,网络xpcool-net,env:GF_GCFG_ENV=prod+DB_DSN=mysql:service:xxx@tcp(xpcool-mysql:3306)/service?...(必须带 mysql: 类型前缀)+JWT_SECRET;容器内必须有manifest/config/config.yaml(基础配置),否则 GF 启动报「找不到 config」;构建目录/data/deploy/projects/service.xpcool.com/(main + manifest/config + resource,Dockerfile 用 COPY manifest/config 整体拷贝)。 - DB:
xpcool-mysql容器(root 密码见该容器 env),库名service,种子执行顺序 003→004→004b→007(服务器表结构旧,必须先 003 加列;导入用sudo sh -c 'docker exec -i xpcool-mysql mysql ... < file'宿主机重定向)。 - 权限映射:admin_menu type=2 行的 path 必须匹配实际路由(现为
POST /api/service/admin/...,见 manifest/sql/007_menu_permissions_v3.sql)。 - SSH 凭据/密码不入库,需要时询问用户或查对话记忆;远程批量命令用 paramiko 脚本(
%TEMP%\wb_deploy\ssh_exec.py,支持第 2 参数超时秒数),docker build 用服务器端 nohup+日志轮询防超时。 - 本地 pnpm 修复:corepack shim 损坏,用
node <~/.workbuddy/binaries/node/workspace/node_modules/pnpm/bin/pnpm.cjs>调用(需 NODE_OPTIONS=--experimental-sqlite)。
日常同步习惯(建议)
- 每次工作结束:在各改动项目
git add + commit + push,本工作空间同样提交(规则/日志变化时)。 - 换设备开工前:先
git pull各仓库,保证规则与记录最新。