166 lines
7.4 KiB
Markdown
166 lines
7.4 KiB
Markdown
# 文件同步矩阵 · 仓库 ↔ 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/ 修改后** | 本地 → Gitea(git push) + 本地 → NAS(rsync) | 让小橙立即用上新口径 |
|
||
| **每周** | 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→11;TOOLS.md 增加核心文件只读规则
|