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_manifestgit(agent-sync repo)NAS bare repoバージョン管理・災害復旧
Claude Code 設定(settings / CLAUDE.md / memory)git(同じ repo に相乗り)NAS bare repoタダ乗りで変更追跡
config.yamlテンプレだけ git、実体ローカル秘密分離
秘密(deepseek キー等)sops-nixser7git にも NAS にも平文を出さない
Obsidian vault~/Obsidian/main-vault(ser7 ローカル)ser7高頻度ライブ編集・単一 writer・NAS 落ちても使える
vault バックアップ/mnt/ugreen/data/obsidian/main-vault(rsync)ser7 → NAScron で定期 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 の方が快適な場合も。

関連: NixOS dotfiles 改善プラン