decision: +code-server auto-sync (cron 5м) и openclaw read-only (cron 15м)
This commit is contained in:
@@ -30,12 +30,31 @@ Vault `~/knowledge-base` хранился только в Gitea (`git.dttb.ru/ol
|
|||||||
### Архитектура
|
### Архитектура
|
||||||
|
|
||||||
```
|
```
|
||||||
~/knowledge-base/ ← один источник истины
|
Mac (~/knowledge-base)
|
||||||
├── .git/ → push в Gitea (git.dttb.ru) [история, review]
|
│ git push (ручной / obsidian-git плагин)
|
||||||
└── файлы → rclone bisync на Nextcloud [мгновенный sync]
|
│ rclone bisync → Nextcloud (Stop-hook + ручной sync.sh)
|
||||||
через sync.sh, триггер Stop-hook
|
▼
|
||||||
|
Gitea (git.dttb.ru) ◄───── source of truth для серверных клиентов
|
||||||
|
│
|
||||||
|
├─► code-server LXC 132 /root/knowledge-base
|
||||||
|
│ cron */5: kb-autosync.sh (pull + auto-commit + push)
|
||||||
|
│
|
||||||
|
└─► openclaw LXC 137 /root/knowledge-base (READ-ONLY)
|
||||||
|
cron */15: kb-pull.sh (pull --ff-only only)
|
||||||
|
|
||||||
|
Nextcloud (dttb.ru/Knowledge Base) ◄── сервисная копия для iPhone Obsidian
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Расширение на серверы (2026-04-17)
|
||||||
|
|
||||||
|
| Хост | Путь | Режим | Триггер | Скрипт |
|
||||||
|
|------|------|-------|---------|--------|
|
||||||
|
| Mac | `~/knowledge-base` | RW, git + rclone+NC | Stop-hook Claude, ручной | `~/.config/nextcloud-kb/sync.sh` |
|
||||||
|
| code-server LXC 132 | `/root/knowledge-base` | RW git | cron `*/5 * * * *` | `/usr/local/bin/kb-autosync.sh` |
|
||||||
|
| openclaw LXC 137 | `/root/knowledge-base` | **RO git** (push disabled) | cron `*/15 * * * *` | `/usr/local/bin/kb-pull.sh` |
|
||||||
|
|
||||||
|
**openclaw read-only** через `git remote set-url --push origin DISABLED_READONLY` — любая попытка push из бота завершится ошибкой "Could not resolve host", случайно перезаписать не сможет.
|
||||||
|
|
||||||
### Компоненты
|
### Компоненты
|
||||||
|
|
||||||
- **`/Users/ai/.config/nextcloud-kb/rclone.conf`** — WebDAV ремоут `kbsync:` на `https://dttb.ru/remote.php/dav/files/admin`, app password в obscured виде
|
- **`/Users/ai/.config/nextcloud-kb/rclone.conf`** — WebDAV ремоут `kbsync:` на `https://dttb.ru/remote.php/dav/files/admin`, app password в obscured виде
|
||||||
@@ -77,6 +96,8 @@ GUI Nextcloud.app запускается в Aqua-session (не launchd), раб
|
|||||||
- `.git/` **не** в Nextcloud — git и nextcloud параллельные каналы, не вложенные
|
- `.git/` **не** в Nextcloud — git и nextcloud параллельные каналы, не вложенные
|
||||||
|
|
||||||
### Файлы экосистемы
|
### Файлы экосистемы
|
||||||
|
|
||||||
|
**На Mac:**
|
||||||
```
|
```
|
||||||
~/.config/nextcloud-kb/
|
~/.config/nextcloud-kb/
|
||||||
├── app-password chmod 600
|
├── app-password chmod 600
|
||||||
@@ -88,6 +109,26 @@ GUI Nextcloud.app запускается в Aqua-session (не launchd), раб
|
|||||||
└── sync.lock.d/ mkdir-lock (временный)
|
└── sync.lock.d/ mkdir-lock (временный)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**На code-server (LXC 132):**
|
||||||
|
```
|
||||||
|
/root/knowledge-base/ полный RW git-клон
|
||||||
|
/usr/local/bin/kb-autosync.sh cron-скрипт */5
|
||||||
|
/var/log/kb-autosync.log логи
|
||||||
|
/tmp/kb-autosync.lock flock
|
||||||
|
```
|
||||||
|
|
||||||
|
**На openclaw (LXC 137):**
|
||||||
|
```
|
||||||
|
/root/knowledge-base/ RO git-клон (push disabled)
|
||||||
|
/usr/local/bin/kb-pull.sh cron-скрипт */15
|
||||||
|
/var/log/kb-pull.log логи
|
||||||
|
```
|
||||||
|
|
||||||
|
### Сквозной тест 2026-04-17 (пройден)
|
||||||
|
- Mac создаёт файл → `git push` → code-server `kb-autosync.sh` fast-forward через 0-5 мин → openclaw `kb-pull.sh` ff-only через 0-15 мин ✓
|
||||||
|
- code-server создаёт файл → auto-commit + push → Mac `git pull` подтягивает ✓
|
||||||
|
- Mac удаляет файл → push → обе LXC удаляют у себя при следующем sync ✓
|
||||||
|
|
||||||
### Credentials Nextcloud (dttb.ru)
|
### Credentials Nextcloud (dttb.ru)
|
||||||
- URL: `https://dttb.ru`
|
- URL: `https://dttb.ru`
|
||||||
- User: `admin` / пароль `1qaz!QAZ`
|
- User: `admin` / пароль `1qaz!QAZ`
|
||||||
|
|||||||
Reference in New Issue
Block a user