ser7とNASのエージェントデータ分離設計
ser7(NixOS ミニPC)を常時起動拠点として hermes を集約し、Tailscale でスマホからアクセスする設計。NAS はストレージ・バックアップ専用。
核となる原則
可搬したい読み物 = git / ライブで重い唯一物 = ser7 ローカル / バックアップ = NAS rsync / SQLite と秘密は絶対に共有しない
前提(トポロジ)
- ser7: ミニPC・低消費電力で常時起動。M.2 SSD + ミドルハイ CPU。hermes・Obsidian vault・全エージェント処理をここに集約。
- NAS: 192.168.0.222。ストレージ専用(vault バックアップ・セッションログ・agent-sync bare repo)。
- スマホ: Tailscale → ser7 に SSH 接続して hermes を操作。
- ネットワーク: ser7 → NAS は CIFS マウント(
/mnt/ugreen)+ ssh。NAS → ser7 は辿れない。
確定構成
| データ | 置き方 | 正本 | 理由 |
|---|---|---|---|
hermes skills + .bundled_manifest | git(agent-sync repo) | NAS bare repo | バージョン管理・災害復旧 |
| Claude Code 設定(settings / CLAUDE.md / memory) | git(同じ repo に相乗り) | NAS bare repo | タダ乗りで変更追跡 |
config.yaml | テンプレだけ git、実体ローカル | — | 秘密分離 |
| 秘密(deepseek キー等) | sops-nix | ser7 | git にも NAS にも平文を出さない |
| Obsidian vault | ~/Obsidian/main-vault(ser7 ローカル) | ser7 | 高頻度ライブ編集・単一 writer・NAS 落ちても使える |
| vault バックアップ | /mnt/ugreen/data/obsidian/main-vault(rsync) | ser7 → NAS | cron で定期 rsync。NAS 落ちても vault は死なない |
| hermes state.db(SQLite) | ser7 ローカル | ser7 | 共有不要。ser7 に集約したので問題なし |
| セッションログ | hermes sessions export → NAS ログディレクトリ | — | アーカイブ目的。hermes post-session フックで自動 |
hermes 集約の理由
- ser7 は常時起動できる → NAS に hermes を置く必要がない
- クロスマシンの context 共有問題が消える(single instance)
- スマホからは Tailscale → ser7 SSH で hermes を操作
- vault も ser7 ローカルにあるので MCP obsidian サーバーが直接読める
git リポジトリの線引き(agent-sync)
- 追跡:
~/.hermes/skills/,.bundled_manifest,config.yaml.example,~/.claude/{settings.json, CLAUDE.md, RTK.md, memory} .gitignore(死守):state.db, 実config.yaml,~/.claude/projects/, 認証トークン全般
操作フロー
[skill/設定を ser7 で編集] → commit → hermes post-session に git push → NAS bare repo に保存
[セッション終了時] → hermes sessions export → /mnt/ugreen/data/_hermes_logs/ser7/*.jsonl
[vault バックアップ] → cron: rsync ~/Obsidian/main-vault → /mnt/ugreen/data/obsidian/main-vault
[スマホから] → Tailscale → ssh ser7 → hermes
衝突クラスの確認
- skills → git(稀に衝突するが検出可能・非破壊)
- vault → ser7 単一 writer(NAS バックアップは読み取り専用扱い)
- state.db → ser7 集約で共有書き込みゼロ
- ログ → append only、衝突なし
残課題
- Tailscale 設定: ser7 に
services.tailscale.enable = trueを追加してnixos-rebuild。スマホにも Tailscale アプリ導入。 - vault 移行(NAS → ser7): 現在シンボリックリンク(
~/Obsidian/main-vault→ NAS)になっているので.bakに戻す。rsync cron も設定。 - vault rsync cron:
systemd.servicesか cron でrsync -a --delete ~/Obsidian/main-vault/ /mnt/ugreen/data/obsidian/main-vault/を定期実行。 - スマホ SSH 設定: Tailscale 経由で ser7 に接続できる ssh クライアント(Termius 等)の設定。
- hermes web UI 検討: スマホから hermes を使うなら SSH より web UI の方が快適な場合も。