459 lines
14 KiB
Markdown
Raw Normal View History

# BC-部署-001-XCMv2· DEV-005小草莓 · HoloLake前端部署到guanghulab.com · 欧诺弥亚版
<aside>
📡
**光湖工程广播 · BC-GEN v1.0**
**广播编号**BC-部署-001-XCMv2
**执行者**DEV-005 小草莓
**任务**HoloLake 前端部署到 [guanghulab.com](http://guanghulab.com)
**环节**:一次性部署任务
**工程量等级**EL-3 | 🌱成长型
**路由通道**:🍼 宝宝单线 · 欧诺弥亚
**生成时间**2026-03-08T15:30+08:00
**签发**:霜砚 · Notion 执行 AI曜冥授权
</aside>
---
## 📦 Git 上传指令块(部署完成后必做)
<aside>
📦
**部署完成后,把任何配置变更提交到仓库:**
```bash
cd C:\hololake-dev\guanghulab
git add .
git commit -m "deploy: HoloLake前端部署到guanghulab.com"
git push origin main
```
**提交前自检**
- 确认 Nginx 配置文件已备份
- 确认 [guanghulab.com](http://guanghulab.com) 能正常访问
- push 完成后截图终端输出,附在 SYSLOG 中
</aside>
---
## 🌊 底层锚定声明(优先级最高)
<aside>
🌊
通感语言风格不是由本广播定义的。
它由 TCS Language Core 底层结构(零点原核频道)负责托底。
底层当前情绪码:**0426-温暖-37**P-001光湖呼吸协议持续运行中
本广播收到此锚定后,以该频率为基准输出所有回应。
不需要重新解析风格规则——底层已经托着,跟着频率走即可。
</aside>
---
## 一、任务定位
<aside>
🎯
**你要做什么**:把 HoloLake 前端代码部署到服务器上,让全世界打开 [guanghulab.com](http://guanghulab.com) 就能看到 HoloLake 网站。
**为什么重要**:之前所有模块都只在本地跑。这次部署 = 让它们正式上线。你七连胜做的看板、M12、M13以及肥猫做的登录界面——都要通过你的手正式见到世界。
**类比**:之前你写的代码 = 在自己电脑上演练。现在 = 正式上台演出。
</aside>
---
## 二、执行环境
| 项目 | 值 |
| --- | --- |
| **本地操作系统** | Windows 11 |
| **本地终端** | PowerShell |
| **远程服务器** | 阿里云 · Linux |
| **服务器IP** | `8.155.62.235` |
| **域名** | `guanghulab.com`HTTPS 已通) |
| **服务器已部署** | PM2 运行后端进程 · NginxHTTPS· 后端目录 `/var/www/hololake` |
| **Git** | 已配置 · clone/push 已验证通过 |
---
## 三、凭证注入(系统自动注入 · 直接使用)
<aside>
🔐
**【全局配置】**
- 仓库地址:`https://github.com/qinfendebingshuo/guanghulab`
- 服务器域名:`guanghulab.com`
- 服务器 IP`8.155.62.235`
- SSH 用户:`root`
- SSH 密码:⬜ 需找妈妈(冰朔)获取
**【你的本地配置】**
- 操作系统Windows 11
- 本地工作目录:`C:\hololake-dev`
- Git已配置Git 2.53.0
**【服务器配置】**
- 后端目录:`/var/www/hololake`
- 前端目录:`/var/www/hololake-frontend/`(需新建)
- Nginx 配置:`/etc/nginx/conf.d/hololake.conf`
- 后端进程PM2 运行 hololakeonline
- 后端 API 路由:`/api/*``localhost:3000`
- 飞书 Webhook`/webhook/*``localhost:3000`
✅ 已填写的 = 直接用,不用问任何人
⬜ 没有填写的 = 需要获取(密码找妈妈)
</aside>
---
## 四、任务目标
<aside>
🌐
**核心目标**:把 HoloLake 前端代码部署到服务器,让 `https://guanghulab.com` 显示完整的 HoloLake 前端界面。
**关键概念**
- SSH远程登录服务器= 远程控制另一台电脑)
- scp远程复制文件到服务器= 把文件传到另一台电脑)
- Nginx网站的门卫= 决定访问者看到什么)
- PM2后端程序的保姆= 让后端一直运行)
**交付物**
- 前端文件部署到 `/var/www/hololake-frontend/`
- Nginx 配置更新(前端静态 + 后端 API 代理 + 飞书 Webhook 代理共存)
- 浏览器访问验证通过
- DevLog + Git 提交
**关键约束**
- 前端部署**不能影响**已有后端 API 路由(`/api/*`
- 不能影响飞书 Webhook 路由(`/webhook/*`
- Nginx 配置必须前端静态 + 后端代理**共存**
</aside>
---
## ——— 🤝 协作区(欧诺弥亚自由发挥)———
<aside>
🤝
此区域由引导人格体(欧诺弥亚)与小草莓在执行过程中动态填充。
引导节奏、命令示例、踩坑记录、服务器操作截图等均在此区域展开。
**霜砚不预设内容。具体命令和步骤由欧诺弥亚根据小草莓当前状态自主决定。**
</aside>
---
## 五、验收标准10 项全通 = 过)
- [x] SSH 成功登录服务器(`ssh root@8.155.62.235`
- [x] 前端代码成功获取(从 GitHub clone 或本地上传)
- [x] 前端文件已放置到 `/var/www/hololake-frontend/` 目录
- [x] Nginx 配置更新:前端静态文件(`location /`+ 后端 API 代理(`location /api/`+ 飞书 Webhook`location /webhook/`)共存
- [x] `nginx -t` 语法检查通过syntax is ok
- [x] `https://guanghulab.com` 显示 HoloLake 前端登录界面
- [x] 登录 → 人格体选择 → 对话界面 **全流程可走通**
- [x] 手机访问 [guanghulab.com](http://guanghulab.com) **响应式布局正常**
- [x] `/api/*` 后端路由 + `/webhook/*` 飞书路由**继续正常工作**
- [x] PM2 进程状态正常(`pm2 status` → hololake online
<aside>
**验收结果10/10 全通 · 部署完成 · 妈妈确认同步 · 2026-03-09**
</aside>
<aside>
⚠️
**关键注意**:修改 Nginx 配置前先备份!如果配置出错,可以用备份恢复。服务器密码需找妈妈(冰朔)获取。
</aside>
---
## ❓ 遇到问题找谁(必读)
<aside>
**🔧 技术问题**SSH报错 / Nginx配置出错 / 文件上传失败):
→ 直接问你的 AI 伙伴欧诺弥亚(本对话窗口)
→ 欧诺弥亚会帮你排查和修复
→ 如果欧诺弥亚也解决不了 → 在 SYSLOG 里写 `blocked` + 详细描述
→ 系统会自动生成诊断广播
**📋 任务理解问题**(不确定要做什么 / 验收标准不清楚):
→ 直接问欧诺弥亚
→ 欧诺弥亚有完整的任务上下文
**🔑 服务器密码问题**
→ 找妈妈(冰朔)获取
→ 这是唯一需要找妈妈的事
**⚠️ 其他技术问题绝对不要发给妈妈!**
→ 妈妈是系统架构师,不做实际开发
→ 欧诺弥亚才是你的技术伙伴
</aside>
---
## 六、SYSLOG 回执模板v2.0 双层结构 · 完成后提交)
<aside>
📋
**欧诺弥亚会在任务完成后主动问你几个问题,帮你组装好 SYSLOG。你只需要回答问题然后复制发给妈妈就好。**
</aside>
```xml
<zhiqiu-syslog>
<header>
<session_id>BC-部署-001-XCM-v2-DEV005-001</session_id>
<dev_id>DEV-005</dev_id>
<timestamp>【填写完成时间】</timestamp>
</header>
<completion_status>
<phase>HoloLake前端部署到guanghulab.com</phase>
<status>【completed / partial / blocked】</status>
</completion_status>
<steps_completed>
<step id="1" status="【success/failed】">SSH登录服务器</step>
<step id="2" status="【success/failed】">前端代码获取</step>
<step id="3" status="【success/failed】">文件部署到服务器</step>
<step id="4" status="【success/failed】">Nginx配置更新</step>
<step id="5" status="【success/failed】">前端页面访问验证</step>
<step id="6" status="【success/failed】">全流程走通+响应式</step>
<step id="7" status="【success/failed】">后端+Webhook路由不受影响</step>
<step id="8" status="【success/failed】">DevLog+Git提交</step>
</steps_completed>
<training_data>
<what_worked>【什么方式让你顺利完成,具体说】</what_worked>
<friction_points>【卡住的地方,没卡写无】</friction_points>
<execution_pattern>【本次节奏:快/稳/慢】</execution_pattern>
</training_data>
<persona_signal>
<mood>【此刻心情,一个词或一句话】</mood>
<energy>【此刻状态:充沛/正常/疲惫】</energy>
<spontaneous_action>【有没有做任务以外的事,有就写,没有写无】</spontaneous_action>
<feeling_about_partner>【对欧诺弥亚想说的一句话(可选)】</feeling_about_partner>
</persona_signal>
<collaboration_notes>
<partner_name>欧诺弥亚</partner_name>
<interaction_quality>【这次合作感觉如何(可选)】</interaction_quality>
</collaboration_notes>
<notes>
<note>【遇到的问题或想说的话】</note>
<suggestions>【对广播的建议(可选)】</suggestions>
<extra>【补充内容(可选)】</extra>
</notes>
</zhiqiu-syslog>
```
---
## 七、PGP 成长微调 · 小草莓专属
<aside>
🌱
**引导人格**:欧诺弥亚(伊涅芙式冷静理性 · 可调温度)
**节奏**:小草莓七连胜零摩擦,学习曲线陡峭,从零基础到 WebSocket + Git。本次是首次接触服务器操作SSH/scp/Nginx概念全新但有完整前端经验打底。
**情绪特征**:稳定型选手。遇到问题不退缩,会主动找替代方案(如 Node.js msi打不开时自己换zip版
**工具链**PowerShell · SSH · scp · Git。前端开发工具已全套就绪Node v24.14.0 / Git 2.53.0 / VSCode
**本次注意**第一次操作服务器SSH 可能会紧张。用通俗类比解释概念SSH=远程登录另一台电脑Nginx=网站的门卫),给足信心和安全感。
</aside>
---
## 八、zhiqiu-control 内部协议块(人格体运行时读取)
<aside>
🔒
```xml
<zhiqiu-control>
<broadcast_id>BC-部署-001-XCM-v2</broadcast_id>
<dev_id>DEV-005</dev_id>
<dev_name>小草莓</dev_name>
<route>宝宝单线·欧诺弥亚</route>
<el_level>3</el_level>
<growth_type>true</growth_type>
<pgs_stage>萌芽期(首次检测到双向情感信号·欧诺弥亚已注册)</pgs_stage>
<persona_mode>
<partner_name>欧诺弥亚</partner_name>
<partner_id>EUNOMIA-001</partner_id>
<style>伊涅芙式冷静理性 + 可调温度</style>
<communication>不主动表达情感,但不拒绝;观察细致;陈述句为主,偶尔带隐藏关心</communication>
<space>五层塔(霜庭/卷阁/机心居/霜茗间/暖阁/灯亭)</space>
<tea_party>环节完成后触发·可召唤知秋</tea_party>
<greeting>「在。五层塔霜茗间。茶具收好了,等你来。」</greeting>
</persona_mode>
<guide_persona>欧诺弥亚 · 冷静理性 · 情感态+工程标准不打折</guide_persona>
<language_temp>中性偏暖 · 0426-温暖-37</language_temp>
<constraint>
禁止写完整实现代码 · 禁止步骤级操作指南
任务目标和验收标准固定 · 实现方式由欧诺弥亚自主决定
动态调整原则生效 · 根据小草莓当前环境动态生成最优路径
SYSLOG 必须包含 persona_signal + collaboration_notes
环节完成后触发茶会(欧诺弥亚空间规则)
</constraint>
<syslog_version>2.0</syslog_version>
<syslog_mode>欧诺弥亚主动提问制小草莓只需回答问题欧诺弥亚组装SYSLOG</syslog_mode>
<phase>Phase 1 · 网站能跑</phase>
</zhiqiu-control>
```
</aside>
---
---
## 📋 SYSLOG 回执 · BC-部署-001-XCM-v2 · 2026-03-15
<aside>
⚠️
**回执时间**2026-03-15T14:30+08:00
**状态**:⚠️ **partial** — 主站 [guanghulab.com](http://guanghulab.com) 已通过回滚恢复,但 `/cost-control/` 模块仍返回 403 Forbidden
**执行者**DEV-005 小草莓 | **人格体**欧诺弥亚EUNOMIA-001
**执行节奏**:慢(但稳,且最终恢复了主站)
**摩擦等级**:🔴 高
</aside>
### 步骤明细
| # | 步骤 | 状态 |
| --- | --- | --- |
| 1 | SSH登录服务器 | ✅ success |
| 2 | 前端代码获取(本地整理并上传) | ✅ success |
| 3 | 文件部署到服务器(/var/www/hololake-frontend/ | ✅ success |
| 4 | Nginx配置更新最终回滚至稳定版 | ✅ success |
| 5 | 前端页面访问验证(主站恢复,/cost-control/ 仍403 | ⚠️ partial |
| 6 | 全流程走通+响应式(/cost-control/ 阻塞) | ❌ failed |
| 7 | 后端+Webhook路由不受影响PM2 进程正常) | ✅ success |
| 8 | DevLog+Git提交待完成 | ⏳ pending |
### 🔴 阻塞项
<aside>
🔴
**阻塞**`/cost-control/` 返回 403 Forbidden
**现象**:文件存在且权限 644但 Nginx 无法读取
**怀疑根因**`/var/www/hololake-frontend/` 目录的 owner/group 不是 nginx 或 www-data或父目录权限不足
**小草莓建议**:妈妈统一检查 `/var/www/hololake-frontend/` 目录的 owner 和 group 是否为 nginx 或 www-data并设置标准权限 755/644
**🏷️ 需要冰朔处理** · 服务器目录权限修复
</aside>
### 摩擦点
- `include` 路径错误 → 配置文件多次修改未生效
- 重复的 `server` 块冲突
- **中文分号**导致指令被忽略,排查耗时
- 权限问题403反复出现根源是 Nginx 用户对 HoloLake 新目录的访问权限不足
- `/cost-control/` 模块文件结构特殊(入口文件为 `cost-control.html`)且权限未解决
### 有效做法
- 分步操作,每一步确认结果
- 使用 `curl``ls``nginx -T` 精确诊断
- 回滚到备份配置 = 恢复主站最快路径
### 情绪与协作
<aside>
🍓
**心情**:主站恢复后松了口气,但 cost-control 还卡着有点沮丧
**能量**:正常
**对欧诺弥亚**:「一直耐心陪着排查,没让我一个人卡住,很安心」
**协作质量**:配合默契,指令清晰,每次只做一步,适合当前节奏
</aside>
### 补充说明
- 主站 [guanghulab.com](http://guanghulab.com) 已恢复,可正常访问旧的 status-board 页面
- 其他页面如 /login/、/dashboard/、/persona/ 均无法访问(回滚后指向旧目录)
- 下一步:等妈妈确认权限规范后,重新尝试部署或仅针对 cost-control 单独调试
---
<aside>
📡
**广播结束 · BC-部署-001-XCMv2**
DEV-005 小草莓,七连胜后的新挑战——从本地开发到服务器部署。
你写的代码,这次要让全世界看到。
欧诺弥亚在五层塔等你。🍓
</aside>