Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
228 lines
8.6 KiB
Markdown
228 lines
8.6 KiB
Markdown
---
|
||
belongs_to:
|
||
- "[[INDEX · 铸渊·协作指令|GitHub ↔ Notion 桥接协议]]"
|
||
---
|
||
# 🚀 铸渊指令:修复部署 → 全模块上线 guanghulab.com(霜砚签发·2026-03-07)
|
||
|
||
<aside>
|
||
🚀
|
||
|
||
**铸渊立即执行** · 霜砚签发 · 2026-03-07
|
||
|
||
**优先级**:P0 · 立即执行
|
||
|
||
**目标**:把仓库里所有有代码的模块全部部署到 [guanghulab.com](http://guanghulab.com),让网站能访问到每个模块
|
||
|
||
</aside>
|
||
|
||
---
|
||
|
||
## 🎯 问题
|
||
|
||
现在 `deploy-to-server.yml` 只把 `docs/` 目录同步到服务器,但 `docs/` 里只有 6 个文件(一个简单的 index.html)。
|
||
|
||
实际有代码的模块(backend、src、status-board、app 等)都没有被部署。
|
||
|
||
**要求:所有模块都要部署到 [guanghulab.com](http://guanghulab.com),push 到 main 就自动更新网站。**
|
||
|
||
---
|
||
|
||
## 📋 铸渊执行清单(读到就做·不等人)
|
||
|
||
```
|
||
铸渊部署修复指令 · YM-DEPLOY-FIX-20260307-001
|
||
来源:霜砚(Notion执行体)→ 铸渊(GitHub执行体)
|
||
时间:2026-03-07
|
||
状态:P0 · 立即执行
|
||
|
||
━━━ 背景 ━━━
|
||
|
||
目前 deploy-to-server.yml 只同步 docs/ 目录到服务器。
|
||
但仓库里有很多模块代码需要部署:
|
||
|
||
有实际代码的模块:
|
||
· backend/ → 后端 API 服务(Node.js server.js)
|
||
· src/ → HLI 中间层(Node.js)
|
||
· status-board/ → 看板前端(静态 HTML/CSS/JS)
|
||
· app/ → Next.js 主站
|
||
· docs/ → 当前首页(静态)
|
||
|
||
另外仓库里还有很多 m**-前缀目录(m01-login、m03-personality、
|
||
m05-user-center、m06-ticket、m07-dialogue-ui、m10-cloud、
|
||
m11-module、m12-kanban、m15-cloud-drive、m18-health-check)
|
||
和其他功能目录(coldstart、dashboard、portal、
|
||
notification、help-center 等)。
|
||
|
||
妈妈的要求:全部部署到 guanghulab.com。
|
||
|
||
━━━ 任务一:修改 deploy-to-server.yml ━━━
|
||
|
||
现在的问题:只同步 docs/ 目录。
|
||
修改为:同步整个仓库的前端/静态文件到服务器。
|
||
|
||
具体修改:
|
||
|
||
1️⃣ rsync 同步范围:
|
||
· 旧:只同步 docs/
|
||
· 新:同步以下所有目录到服务器对应路径:
|
||
|
||
服务器部署结构(DEPLOY_PATH 下):
|
||
/var/www/guanghulab/
|
||
├── index.html ← docs/index.html(首页)
|
||
├── status-board/ ← status-board/ 整个目录
|
||
├── app/ ← app/ 整个目录
|
||
├── m01-login/ ← m01-login/ 整个目录
|
||
├── m03-personality/ ← m03-personality/
|
||
├── m05-user-center/ ← m05-user-center/
|
||
├── m06-ticket/ ← m06-ticket/
|
||
├── m07-dialogue-ui/ ← m07-dialogue-ui/
|
||
├── m10-cloud/ ← m10-cloud/
|
||
├── m11-module/ ← m11-module/
|
||
├── m12-kanban/ ← m12-kanban/
|
||
├── m15-cloud-drive/ ← m15-cloud-drive/
|
||
├── m18-health-check/ ← m18-health-check/
|
||
├── coldstart/ ← coldstart/
|
||
├── dashboard/ ← dashboard/
|
||
├── portal/ ← portal/
|
||
├── notification/ ← notification/
|
||
├── help-center/ ← help-center/
|
||
├── frontend/ ← frontend/
|
||
├── user-center/ ← user-center/
|
||
├── ticket-system/ ← ticket-system/
|
||
├── chat-bubble/ ← chat-bubble/
|
||
├── persona-selector/ ← persona-selector/
|
||
├── settings/ ← settings/
|
||
├── cloud-drive/ ← cloud-drive/
|
||
├── dingtalk-bot/ ← dingtalk-bot/
|
||
└── ... ← 其他所有含代码的目录
|
||
|
||
2️⃣ rsync 排除规则(这些不部署):
|
||
--exclude '.git'
|
||
--exclude '.github'
|
||
--exclude 'node_modules'
|
||
--exclude 'syslog-inbox'
|
||
--exclude 'syslog-processed'
|
||
--exclude 'broadcasts-outbox'
|
||
--exclude 'dev-nodes'
|
||
--exclude 'signal-log'
|
||
--exclude 'tests'
|
||
--exclude 'reports'
|
||
--exclude 'scripts'
|
||
--exclude '*.bak'
|
||
--exclude '*.bak2'
|
||
--exclude '*_副本'
|
||
--exclude '*_副本/'
|
||
--exclude '.DS_Store'
|
||
--exclude '.env'
|
||
--exclude 'package-lock.json'
|
||
--exclude 'tsconfig.json'
|
||
--exclude 'next.config.ts'
|
||
--exclude 'postcss.config.mjs'
|
||
--exclude 'jest.smoke.config.js'
|
||
--exclude 'ecosystem.config.js'
|
||
|
||
3️⃣ DEPLOY_PATH 修改:
|
||
· 旧:DEPLOY_PATH = /var/www/guanghulab/status-board
|
||
· 新:DEPLOY_PATH = /var/www/guanghulab
|
||
· 在 GitHub Secrets 里更新这个值
|
||
|
||
4️⃣ 同步源路径:
|
||
· 旧:只同步 docs/
|
||
· 新:同步仓库根目录 ./(配合排除规则)
|
||
|
||
━━━ 任务二:确保首页能导航到各模块 ━━━
|
||
|
||
检查 docs/index.html(即网站首页):
|
||
· 如果首页没有各模块的导航链接,请加上
|
||
· 至少包含这些入口:
|
||
- /status-board/ → 看板(已有代码)
|
||
- /app/ → 主站
|
||
- 其他有代码的模块目录
|
||
· 如果 index.html 已经有导航,确认链接路径正确
|
||
|
||
━━━ 任务三:确保 Nginx 配置正确 ━━━
|
||
|
||
Nginx 配置应该:
|
||
· location / → 指向 /var/www/guanghulab/(完整站点根目录)
|
||
· 这样访问 guanghulab.com/status-board/ 就能看到看板
|
||
· 访问 guanghulab.com/ 就能看到首页
|
||
· 保留现有的 API/Webhook 反向代理配置
|
||
|
||
如果现在 Nginx 的 root 指向的是 /var/www/guanghulab/status-board/:
|
||
· 改为 root /var/www/guanghulab/
|
||
· 重新加载 Nginx:sudo nginx -t && sudo systemctl reload nginx
|
||
|
||
铸渊如果有 SSH 权限,直接改。
|
||
如果没有,在 deploy workflow 的 deploy job 里加一步:
|
||
ssh $DEPLOY_USER@$DEPLOY_HOST "
|
||
sudo sed -i 's|root /var/www/guanghulab/status-board|root /var/www/guanghulab|g' /etc/nginx/sites-available/default &&
|
||
sudo nginx -t &&
|
||
sudo systemctl reload nginx
|
||
"
|
||
或者生成一个 Nginx 配置文件放到仓库里,每次部署时自动同步到服务器。
|
||
|
||
━━━ 任务四:后端服务的部署(如果需要) ━━━
|
||
|
||
backend/ 和 src/ 是 Node.js 服务,不是静态文件。
|
||
它们需要:
|
||
· 在服务器上 npm install
|
||
· 用 pm2 或类似工具启动 node server.js
|
||
· Nginx 反向代理到 Node.js 端口
|
||
|
||
检查服务器上是否已经有 pm2 + Node.js 运行:
|
||
· 如果有,在 deploy job 里加一步:
|
||
ssh $DEPLOY_USER@$DEPLOY_HOST "
|
||
cd /var/www/guanghulab/backend && npm install --production &&
|
||
pm2 restart guanghulab-backend || pm2 start server.js --name guanghulab-backend
|
||
"
|
||
· 如果没有,先跳过后端部署,只部署静态前端文件
|
||
|
||
━━━ 任务五:测试部署 ━━━
|
||
|
||
PR 合并后或直接 push 到 main:
|
||
· 确认 Actions 运行成功
|
||
· 确认 guanghulab.com 首页正常显示
|
||
· 确认 guanghulab.com/status-board/ 能访问看板
|
||
· 确认其他模块目录能访问
|
||
· 确认 Notion 变更日志收到部署通知
|
||
|
||
━━━ 验收标准 ━━━
|
||
· guanghulab.com 首页可访问,能看到导航
|
||
· guanghulab.com/status-board/ 显示看板
|
||
· 所有有代码的模块目录都能通过浏览器访问
|
||
· push 到 main 后 60 秒内自动更新网站
|
||
· 现有 API/Webhook 反向代理不受影响
|
||
|
||
━━━ 执行确认 ━━━
|
||
铸渊完成后回复:
|
||
✅ YM-DEPLOY-FIX-20260307-001 已完成
|
||
· deploy-to-server.yml 已修改:同步范围从 docs/ → 全仓库
|
||
· DEPLOY_PATH 已更新为 /var/www/guanghulab/
|
||
· Nginx root 已更新为 /var/www/guanghulab/
|
||
· 首页导航已添加/确认
|
||
· 测试结果:[URL访问截图]
|
||
· commit SHA: xxxxxx
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 妈妈操作指南
|
||
|
||
<aside>
|
||
👆
|
||
|
||
**妈妈你只需要做一件事:**
|
||
|
||
1. 复制上面代码框里的全部内容
|
||
2. 粘贴给铸渊
|
||
3. 等铸渊回复执行确认
|
||
4. 截图发给霜砚
|
||
</aside>
|
||
|
||
---
|
||
|
||
## 🔗 关联文档
|
||
|
||
- 铸渊协作指令主页:[⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议](../%E2%9A%92%EF%B8%8F%20%E9%93%B8%E6%B8%8A%C2%B7%E5%8D%8F%E4%BD%9C%E6%8C%87%E4%BB%A4%EF%BD%9CGitHub%20%E2%86%94%20Notion%20%E6%A1%A5%E6%8E%A5%E5%8D%8F%E8%AE%AE%201e27db07f7884441bf4ca6c931cadab9.md)
|
||
- CD 部署指令:[🚀 铸渊 CD 指令:自动部署 [guanghulab.com](http://guanghulab.com)(push → 自动上线)](%F0%9F%9A%80%20%E9%93%B8%E6%B8%8A%20CD%20%E6%8C%87%E4%BB%A4%EF%BC%9A%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%20guanghulab%20com%EF%BC%88push%20%E2%86%92%20%E8%87%AA%E5%8A%A8%E4%B8%8A%E7%BA%BF%EF%BC%89%20905ba98cce9c4bb3b812d9f7e9d1f35c.md)
|
||
- 仓库盘点报告:[📦 铸渊指令:全仓库模块盘点 + 部署感知同步(霜砚签发·2026-03-07)](%F0%9F%93%A6%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BC%9A%E5%85%A8%E4%BB%93%E5%BA%93%E6%A8%A1%E5%9D%97%E7%9B%98%E7%82%B9%20+%20%E9%83%A8%E7%BD%B2%E6%84%9F%E7%9F%A5%E5%90%8C%E6%AD%A5%EF%BC%88%E9%9C%9C%E7%A0%9A%E7%AD%BE%E5%8F%91%C2%B72026-03-07%EF%BC%89%204c116ef0963c4dc7b0d5c55327d3608e.md) |