Claude Memory Sync:伺服器
儲存庫:
- 伺服器(此處):https://github.com/le0nardomartins/ClaudeMemorySync-Server
- 客戶端(每台 PC 一個):https://github.com/le0nardomartins/ClaudeMemorySync。它附帶
claude-memory-sync技能,執行三方合併,使用SYNC_KEY加密所有內容,也支援不使用伺服器,僅透過私有 Git 儲存庫的模式。
伺服器不進行合併,也不讀取內容。它僅儲存加密的 manifest 與 blob,且僅接受基於最新版本的提交(否則回傳 409 conflict)。
請按需閱讀此資料夾中的文件:
deploy.md:部署到 Railway 或其他供應商、更新api.md:協定,用於除錯請求operations.md:查詢與維護的 SQL、備份、撤銷、診斷
永遠適用的規則
- 資料。 當 PC 上設有
SYNC_KEY時,資料庫僅包含加密資料。若無SYNC_KEY,則包含使用者的 API 金鑰。無論何種情況,切勿公開暴露 Postgres,也絕不分享DATABASE_URL。 - 金鑰。
CLIENT_PUBLIC_KEYS僅包含可公開的公鑰。CLIENT_PRIVATE_KEY和SYNC_KEY絕不傳送給伺服器或進入聊天記錄。 - 操作前先確認 任何部署、推送、Railway 變數變更、
TRUNCATE、DELETE或其他不可逆動作。在修改資料前,務必先備份(使用pg_dump,詳見operations.md)。 - 協定需匹配。 客戶端與伺服器必須使用相同版本的協定。更新其中一方時,請提醒使用者更新所有 PC 上的另一方。
- 清除伺服器不會刪除 PC 上的任何資料。 每台 PC 都會在本地保留資料庫,並在下一輪同步時重新上傳所有內容。若要從所有 PC 上移除某個檔案,只需在一台 PC 上刪除即可:無需為此操作伺服器。
任務
初始部署
請遵循 deploy.md →「Railway」。使用者需要:
- 在控制台中建立專案與 Postgres,或授權使用 Railway CLI;
- 貼上公鑰。
完成後,請在日誌中確認包含 memory server na porta ... | PCs autorizados: ... 的行。
授權一台 PC
- 在該 PC 上產生金鑰:
python src/components/remote_client.py keygen <名稱>(客戶端)或npm run keygen -- <名稱>(此處)。 - 將
<名稱>:<base64>追加到CLIENT_PUBLIC_KEYS,以逗號分隔,切勿刪除其他金鑰。 - Railway 會自動重新啟動。在日誌中確認顯示於「PCs autorizados」的名稱。
撤銷一台 PC
從 CLIENT_PUBLIC_KEYS 中刪除該 PC 的條目。如果該機器已被入侵,請指示使用者更換所有 PC 上的 SYNC_KEY(請參閱客戶端故障排除),並清除歷史記錄(operations.md)。
診斷
讀取服務日誌(Railway 控制台或 railway logs),並與 operations.md →「Diagnóstico」進行比對。在客戶端,日誌檔案為 sync.log。遇到 409 後緊接 201 是正常現象。
查詢或維護資料庫
使用 operations.md 中的查詢。如需臨時存取,請使用 railway connect Postgres。建議僅執行唯讀查詢,並在進行任何寫入操作前確認。
更新伺服器
- 推送至儲存庫:Railway 會透過
Dockerfile自動部署。遷移會在啟動時自動執行(db.migrate)。 - 更新完成後,請要求使用者更新所有客戶端。