---
belongs_to:
  - "[[⚒️ 铸渊·协作指令｜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)