Claude Memory Sync: サーバー
リポジトリ:
- サーバー (これ): https://github.com/le0nardomartins/ClaudeMemorySync-Server
- クライアント (マシンごとに一つ): https://github.com/le0nardomartins/ClaudeMemorySync。`claude-memory-sync` スキルが含まれており、3-wayマージを実行し、
SYNC_KEYでデータを暗号化し、プライベートGitリポジトリをバックエンドとするサーバーレスモードもサポートします。
サーバーはマージを行わず、コンテンツを読むこともできません。封印されたマニフェストとブロブを保存し、新しいバージョンが最新バージョンに基づいて構築された場合のみ受け入れます(そうでない場合は 409 conflict)。
オンデマンドで、このフォルダ内を参照してください:
deploy.md: Railwayや他のホストへのデプロイ、更新についてapi.md: プロトコル、デバッグ用リクエストoperations.md: クエリとメンテナンス、バックアップ、取り消し、診断のためのSQL
サーバーログメッセージはポルトガル語です。operations.md に各メッセージの意味がリストされています。
常に適用されるルール
- データ。
SYNC_KEYがマシン上にある場合、データベースには暗号化されたデータのみが保存されます。SYNC_KEYがない場合、ユーザーのAPIキーが保存されます。いずれにしても、Postgresを公開したり、DATABASE_URLを共有したりしないでください。 - 鍵。
CLIENT_PUBLIC_KEYSには公開鍵のみが保持され、表示しても構いません。CLIENT_PRIVATE_KEYとSYNC_KEYはサーバーやチャットに決して送信しないでください。 - デプロイ、プッシュ、Railway変数の変更、
TRUNCATE、DELETE、またはその他の元に戻せない操作の前にまず確認してください。 データに触れる前にバックアップ(pg_dump、operations.mdを参照)を取ってください。 - プロトコルの一致。 クライアントとサーバーは同じプロトコルバージョンを実行する必要があります。一方を更新した場合は、すべてのマシンで他方も更新するようユーザーに促してください。
- サーバーをリセットしても、マシン上のデータは削除されません。 各マシンはベースをローカルに保持し、次のラウンドですべてを再度アップロードします。すべてのマシンからファイルを削除するには、1台のマシンで削除すれば十分です。そのためにサーバーを操作する必要はありません。
タスク
初期デプロイ
deploy.md → 「Railway」に従います。ユーザーは以下を行う必要があります:
- ダッシュボードでプロジェクトとPostgresを作成するか、Railway CLIの使用を許可する;
- 公開鍵を貼り付ける。
最後に、ログに memory server na porta ... | PCs autorizados: ... が表示されるのを確認します。
マシンを認可する
- 該当マシンで鍵を生成します:
python src/components/remote_client.py keygen <name>(クライアント) またはnpm run keygen -- <name>(ここ)。 <name>:<base64>をCLIENT_PUBLIC_KEYSにカンマ区切りで追加します。他のエントリは削除しないでください。- Railwayは自動的に再起動します。ログに名前が
PCs autorizadosに表示されることを確認します。
マシンを失効させる
CLIENT_PUBLIC_KEYS から該当エントリを削除します。マシンが侵害された場合は、すべてのマシンで SYNC_KEY をローテーション(クライアントのトラブルシューティング)し、履歴をリセット(operations.md)するようユーザーに指示します。
トラブルシューティング
サービスのログ(Railwayダッシュボードまたは railway logs)を読み、operations.md → 「診断」と比較します。クライアント側では、ファイルは sync.log です。409 の後に 201 が続くのは正常です。
データベースのクエリまたはメンテナンス
operations.md のクエリを使用します。1回限りのアクセスには railway connect Postgres を使用します。読み取り専用クエリを優先し、書き込み操作は確認を取ってください。
サーバーを更新する
- リポジトリにプッシュします: Railwayは
Dockerfileからデプロイします。マイグレーションは起動時に実行されます (db.migrate)。 - 次に、ユーザーにクライアントを更新するよう依頼します。