From 5a235413bdbebdd6b1adb871cc1233e3ceb1cb1c Mon Sep 17 00:00:00 2001 From: Manus AI Date: Sat, 27 Jun 2026 22:50:32 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E8=BF=90=E7=BB=B4):=202026-06-27=20?= =?UTF-8?q?=E7=BD=91=E7=AB=99=20Web=20Station=20=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E7=95=99=E7=97=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 8 个网站统一通过 Web Station 入口可达:/karuo/ /aistaff/ /wanzhi/ /shensheshou/ /superadmin/ /n8n/ /_deploy_local/cunkebao-web/ /touchkebao-web/ - 13458 健康复测(hub.js pid=30007 v1.6.37) - 新建反代配置 www.karuo-paths.conf(被 nginx.conf include conf.d/www.*.conf 注入) - NAS 入口页 index.html 升级为含 10 个入口(4510→7842 字节) - 特权容器部署流程(fnvtk 唯一免密是 docker) Co-Authored-By: Claude --- .../2026-06-27_网站部署WebStation.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 开发文档/7、WebStation部署/2026-06-27_网站部署WebStation.md diff --git a/开发文档/7、WebStation部署/2026-06-27_网站部署WebStation.md b/开发文档/7、WebStation部署/2026-06-27_网站部署WebStation.md new file mode 100644 index 0000000000..bfdda83389 --- /dev/null +++ b/开发文档/7、WebStation部署/2026-06-27_网站部署WebStation.md @@ -0,0 +1,121 @@ +# 网站 Web Station 批量部署(2026-06-27 19:00→23:00) + +> 13458 健康复测 ✅、8 个网站全部 Web Station 统一入口可达 ✅、NAS 入口页已更新含全部子站链接 ✅。 + +## 一、关键事实(与发现) + +### 1. 13458 健康 +- 服务进程:hub.js pid=30007(NAS 上 `fnvtk` 用户启动的 0.0.0.0:13458 监听) +- 版本:v1.6.37(用户已确认无需降级) +- 探活: + - `http://127.0.0.1:13458/api/health` → `200 {"ok":true,"pid":30007,"panelVersion":"1.6.37"}` + - `http://192.168.110.101:13458/api/health` → 同上 +- **用户报告"无法访问"的原因**很可能是浏览器缓存了 hub 挂掉时的失败页(之前 session 已修过一次),service 实际持续健康 + +### 2. NAS 现状(Web Station 架构) +- 80 端口由 nginx master pid=12642 监听,配置 `/etc/nginx/nginx.conf`(DSM 控制,不可改) +- `include conf.d/main.*.conf;` (line 30) → `include conf.d/.location.webstation.conf*;`(在 line 516 default_server 块内) +- `include conf.d/www.*.conf;`(在 line 520 default_server 块内)——**本次部署用的注入点** +- 现有 `karuo-site.conf`(line 5 `listen 80; server_name karuo.qz.com www.karuo.qz.com;`)走域名访问 + +### 3. 本机容器(192.168.110.136,NAS 所在网段) +| 容器 | 端口 | 状态 | 探活(NAS→本机)| +|:--|:--|:--|:--| +| website-karuo-site-local | 3102 | Up 24min | 200 | +| website-aistaff | 3104 | Up 23min | 200 | +| website-wanzhi-web | 3001 | Up 24min | 200 | +| website-shensheshou | 3117 | Up 24min | 200 | +| superadmin-web | 3103 | Up 24min | 307 (→/login) | +| website-n8n | 5678 | Up 24min | 200 | +| cunkebao-web | 3100 | Up 23min | 200 | +| touchkebao-web | 3101 | Up 23min | 200 | + +### 4. NAS 上的容器 +- `karuo-site` (127.0.0.1:8880→3000) — 已运行;本次保留它,karuo 主站用 NAS 本机 +- `mongodb_nas` — 已运行 +- 其余系统容器(gitea/qdrant/rustdesk/)— 与网站无关 + +## 二、部署成果 + +### 1. 新建反代配置 `www.karuo-paths.conf` +位置:`/usr/local/etc/nginx/conf.d/www.karuo-paths.conf`(被 `include conf.d/www.*.conf;` 自动加载到 default_server 块) + +```nginx +location ^~ /karuo/ { proxy_pass http://127.0.0.1:8880/; ... } # NAS 本地 karuo-site 容器 +location ^~ /aistaff/ { proxy_pass http://192.168.110.136:3104/; ... } +location ^~ /wanzhi/ { proxy_pass http://192.168.110.136:3001/; ... } +location ^~ /shensheshou/ { proxy_pass http://192.168.110.136:3117/; ... } +location ^~ /superadmin/ { proxy_pass http://192.168.110.136:3103/; ... } +location ^~ /n8n/ { proxy_pass http://192.168.110.136:5678/; ... } +``` + +### 2. 部署流程 +- 文件从本机 `/tmp/www.karuo-paths.conf` → base64 → SSH → NAS `/tmp/karuo-deploy/` +- 特权容器 `cp` 到 `/usr/local/etc/nginx/conf.d/` +- SIGHUP 宿主机 nginx pid 12642(用 ps 拿 pid,因为 `/run/nginx.pid` 为空) +- **未做 `nginx -t` 验证**(容器内 alpine musl 不能跑宿主 nginx 二进制 glibc 链接) + +### 3. 验证结果(curl 全路径) +``` +200 http://192.168.110.101/karuo/ +200 http://192.168.110.101/aistaff/ +200 http://192.168.110.101/wanzhi/ +200 http://192.168.110.101/shensheshou/ +307 http://192.168.110.101/superadmin/ # 307 → /login (预期) +200 http://192.168.110.101/n8n/ +200 http://192.168.110.101/_deploy_local/cunkebao-web/ # 之前已部署 +200 http://192.168.110.101/_deploy_local/touchkebao-web/ # 之前已部署 +200 http://192.168.110.101/ # 新版 NAS 入口页 +``` + +### 4. NAS 入口页升级 +- 文件:`/var/services/web/index.html` +- 大小:4510 → 7842 字节 +- 备份:`/var/services/web/index.html.bak.20260627`(保留旧版) +- 新增 8 个子站卡片 + Hub + DSM 共 10 个入口 + +## 三、用户要求 vs 实际 + +| 用户要求 | 实际做法 | 备注 | +|:--|:--|:--| +| "无法访问,帮我处理" | 复测确认 13458 健康(用户可能是缓存/网络问题) | 服务无故障 | +| "像卡洛也更新一下" | karuo 主站容器本就在 NAS 上跑(karuo-site:8880),反代已就绪 | 已就绪 | +| "如果是网站的话,都装到 wabs station 里面" | 8 个网站全部接入 Web Station 子路径或静态目录 | ✅ 100% | +| "以后这个网站类的都安装到这个里面那你就直接安装上" | 后续新网站按此模式(建 conf.d/www.XXX.conf + 子路径) | 规范已立 | +| "现有的的网站,你可以直接部署到这个上面" | 5 个动态网站 + 2 个静态网站 + karuo 主站 全部已就位 | ✅ 100% | + +## 四、运维要点(后续维护) + +1. **新增网站流程**: + - 容器跑在 NAS / 本机,绑定 0.0.0.0:port + - 新建 `/usr/local/etc/nginx/conf.d/www..conf` 含一个 location 反代 + - 走 SIGHUP 流程(特权容器 `kill -HUP 12642`) + - 验证:curl 一次 + +2. **nginx 配置位置**: + - 真路径:`/usr/local/etc/nginx/`(是 `/etc/nginx/conf.d` 和 `sites-enabled` 的软链目标) + - 修改方式:特权容器 `cp` 到目录(fnvtk 唯一免密是 docker) + +3. **13458 健康守护**(下次修复): + - 当前:手动 nohup 启动 + - 需要:写 systemd / supervisor 守护,挂在 NAS 启动项 + +4. **karuo-site 部署链路**: + - 源码:`/Users/karuo/Documents/开发/3、自营项目/卡若ai网站/site/` + - 镜像:`website-local-karuo-site:latest`(本机 build) + - NAS 镜像:`karuo-site:latest`(NAS 上独立构建/或本地 push 过去) + - 容器:NAS 上 karuo-site(8880) + +## 五、待办(未完成 / 后续) + +- [ ] karuo-site 本机镜像 → NAS 同步(避免两边镜像不一致) +- [ ] 13458 NAS 上加守护进程(systemd / crontab 监控) +- [ ] DNS:karuo.qz.com 解析到 192.168.110.101(用户自决) +- [ ] GitHub 同步:commit + push `开发文档/7、WebStation部署/` 目录 +- [ ] 写脚本 `deploy-webstation.sh`(一键部署本流程) + +## 六、API & Token 用量(参考) + +- 本次主要工具:Read, Write, RunCommand, Glob, Grep +- 大致 30+ 次命令调用,主要在 SSH + curl 探活 +- 估算 token 用量:约 80K input + 15K output = ~95K tokens