Files
NASOpenClaw/SYNC.md

166 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文件同步矩阵 · 仓库 ↔ Gitea ↔ NAS 容器(小橙)
> 本文件回答三个问题:
> 1. 当前仓库里哪些东西**要给 Gitea 做版本管理**
> 2. 哪些东西**要给 NAS 容器里的小橙**使用?
> 3. 哪些东西**只在本地**,两边都不给?
---
## 一、三层存储模型
```
┌───────────────────────────────┐
│ 本地 Windows (w:\ProRepo\...)│ ← 你的工作主场
└──────────┬──────────┬─────────┘
│ │
│ git push │ rsync / scp
▼ ▼
┌────────┐ ┌──────────────────────────────────┐
│ Gitea │ │ NAS 容器 openclaw │
│ (版本) │ │ /home/node/.openclaw/workspace/ │
└────────┘ └──────────────────────────────────┘
```
| 存储位置 | 角色 | 读者 |
|---------|-----|------|
| **本地 w:\\ProRepo\\NASOpenClaw** | 主源;你用编辑器日常编辑 | Tyrone |
| **Gitea 192.168.0.130:3000** | 版本备份、历史回滚、多设备同步 | Tyrone私有 |
| **NAS 容器 openclaw** | 小橙的运行时"意识" | 小橙AI |
---
## 二、当前仓库顶层文件分类
| 路径 | 进 Gitea | 给小橙? | 说明 |
|------|----------|---------|------|
| `docs/` | ✅ 是 | ❌ 否 | 文档(运维手册等);小橙不需要知道自己怎么被部署 |
| `docs/OpenClaw-DS925-运维手册.md` | ✅ 是 | ❌ 否 | 给 Tyrone 查运维步骤 |
| `raw/marketing/` | ✅ 是 | ❌ 否 | 营销原件(推广计划、获客手册等);已提炼到 `workspace/`,小橙有提炼版就够 |
| `raw/cases/` | ✅ 是 | ❌ 否 | 案例原件PPT已提炼到 `workspace/products/cases-library.md` |
| `raw/references/` | ✅ 是 | ❌ 否 | 参考样稿;已提炼到 `workspace/brand/voice-style.md` |
| `workspace/` | ✅ 是 | ✅ 是 | **小橙的大脑与素材库**,整个目录都要给小橙 |
| `SYNC.md` | ✅ 是 | ❌ 否 | 同步配置元信息 |
| `.git/` / `.windsurf/` | ❌ 否Git 自管) | ❌ 否 | 工具目录 |
**一句话答****只有 `workspace/` 整个目录需要给小橙**`raw/``docs/` 是你的原始素材和文档,只做本地存档 + Git 版本管理。
---
## 三、`workspace/` 子目录详细分类
| 子路径 | 进 Gitea | 给小橙? | 说明 |
|------|----------|---------|------|
| `SOUL.md` / `IDENTITY.md` / `USER.md` / `BOOTSTRAP.md` / `HEARTBEAT.md` / `AGENTS.md` / `TOOLS.md` / `README.md` | ✅ | ✅ | 小橙"开机"读这套 |
| `brand/voice-style.md` | ✅ | ✅ | 风格与资质引用规则 |
| `brand/banned-words.md` | ✅ | ✅ | 禁用词 |
| `brand/credentials.md` | ✅ | ✅ | 公开资质口径 |
| `brand/website-profile.md` | ✅ | ✅ | 官网口径权威源 |
| **`brand/clients-internal.md`** | ❌ **已在 .gitignore 排除** | ✅ | 真实客户名单**只给小橙看、永不上 Git** |
| `products/*.md` | ✅ | ✅ | 11 个产品方案页 + 案例库 + 模板 |
| `templates/*.md` | ✅ | ✅ | 21 个平台文风模板 |
| `knowledge/*.md` | ✅ | ✅ | 知识库(术语表/竞品格局/FAQ/选题方向) |
| `insights.md` | ✅ | ✅ | 行业洞察库 |
| `drafts/` | ❌ .gitignore | ✅(由小橙自己写入) | 草稿运行时目录 |
| `published/` | ❌ .gitignore | ✅(由小橙自己写入) | 已发布文案 |
| `reports/` | ❌ .gitignore | ✅(由小橙自己写入) | 日报/周报 |
| `state/` | ❌ .gitignore | ✅(由小橙自己写入) | 状态机 |
| `assets/` | ❌ .gitignore | ✅(由小橙自己写入) | 截图素材 |
---
## 四、同步到 NAS 容器的命令rsync推荐
### 4.1 全量首次同步(本地 → NAS 容器内宿主目录)
```powershell
# Windows 本地 → NAS 宿主目录SSH 需要提前配好密钥或按提示输密码)
# 说明:
# /volume1/docker/openclaw-data/workspace/ 是 NAS 上映射进容器的目录
# 容器内挂载点 = /home/node/.openclaw/workspace
#
# 参数说明:
# -a 归档;-v 详细;-z 压缩传输
# --delete 远端多余文件删除(首次建议先不加;熟悉后再加)
# --exclude 跳过运行时目录,避免覆盖小橙自己写入的内容
rsync -avz `
--exclude 'drafts/' `
--exclude 'published/' `
--exclude 'reports/' `
--exclude 'state/' `
--exclude 'assets/' `
w:/ProRepo/NASOpenClaw/workspace/ `
Tyrone@192.168.0.130:/volume1/docker/openclaw-data/workspace/
```
> Windows 的 OpenSSH 自带 rsync 需要额外装 cwRsync / WSL 里的 rsync
> 如果没有 rsync用 `scp -r` 兜底:
>
> ```powershell
> scp -r w:/ProRepo/NASOpenClaw/workspace/* Tyrone@192.168.0.130:/volume1/docker/openclaw-data/workspace/
> ```
### 4.2 同步后必做(修正权限 + 重启容器)
```bash
# SSH 到 NAS 之后执行
sudo chown -R 1000:1000 /volume1/docker/openclaw-data/workspace
docker exec -u root openclaw chown -R node:node /home/node/.openclaw/workspace
docker restart openclaw
```
> 见运维手册 §13.2(下发 workspace 指令范式)。
### 4.3 一键脚本(可选,未来做在 .windsurf/workflows/
建议把上面的 rsync + SSH 修权重启打包成 `sync-to-nas.ps1`,改一次跑一条命令:
```powershell
# 用法pwsh w:/ProRepo/NASOpenClaw/scripts/sync-to-nas.ps1
```
(需要的话告诉我,我一并写出。)
---
## 五、反向同步NAS 容器 → 本地,可选)
当你想把小橙在容器内产出的 `drafts/` `published/` `reports/` 拉回来做审阅时:
```powershell
rsync -avz `
Tyrone@192.168.0.130:/volume1/docker/openclaw-data/workspace/published/ `
w:/ProRepo/NASOpenClaw/workspace/published/
```
`published/` 本身在 `.gitignore` 里,所以**拉回来也不会污染 Git**。如果某篇特别好想要版本化,单独 `git add -f workspace/published/xxx.md`
---
## 六、同步节奏建议
| 频率 | 动作 | 用途 |
|------|------|------|
| **任何 brand/ 或 products/ 修改后** | 本地 → Giteagit push + 本地 → NASrsync | 让小橙立即用上新口径 |
| **每周** | NAS → 本地(拉 reports/ | 归档周报 |
| **每季度** | Tyrone 核对官网变动 → 更新 `brand/website-profile.md` → 全链路推送 | 保持对外口径一致 |
| **客户名单变动时** | 只改本地 `clients-internal.md` → rsync 到 NAS不上 Git | 小橙立即用新名单 |
---
## 七、快速自查清单(每次大改后问自己)
- [ ] 改的文件在 `workspace/` 下吗? → 要 rsync
- [ ] 改的是 `clients-internal.md` 或其他 `*-internal.md` → 只 rsync不 git push
- [ ] 改的是 `OpenClaw-DS925-运维手册.md` 或营销原件? → 只 git push不 rsync
- [ ] 改完**仅** git push 没 rsync→ 小橙那边还是老口径,会写错
- [ ] 改完**仅** rsync 没 git push→ 历史丢失风险,换机器找不到
---
## 八、更新日志
- 2026-04-18 初版(对应 workspace v1 + clients-internal.md 不上 Git 的规则)
- 2026-04-20 目录重构:根目录拆为 `docs/` + `raw/` + `workspace/`workspace 新增 `knowledge/``drafts/``published/``reports/``state/``assets/`;产品页 9→11TOOLS.md 增加核心文件只读规则