Claude Memory Sync:伺服器
儲存庫:
- 伺服器(此處):https://github.com/le0nardomartins/ClaudeMemorySync-Server
- 客戶端(每台機器一個):https://github.com/le0nardomartins/ClaudeMemorySync。它搭載了
claude-memory-sync技能,執行三方合併,使用SYNC_KEY對所有內容進行加密,並且也支援以私有 Git 儲存庫為基礎的無伺服器模式。
伺服器不執行合併也無法讀取內容。它儲存密封的清單與二進位大物件,並且僅在客戶端基於最新版本建構新版本時才接受(否則回傳 409 衝突)。
按需閱讀此資料夾中的文件:
deploy.md:在 Railway 或其他主機上部署、更新api.md:通訊協定,用於除錯請求operations.md:用於查詢和維護的 SQL、備份、撤銷、診斷
伺服器日誌訊息為葡萄牙語。operations.md 列出了每個訊息及其含義。
始終適用的規則
- 資料。 擁有機器上的
SYNC_KEY,資料庫僅儲存加密資料。沒有它,則儲存使用者的 API 金鑰。無論如何,絕對不要公開 Postgres 或分享DATABASE_URL。 - 金鑰。
CLIENT_PUBLIC_KEYS僅儲存公鑰,可以顯示。CLIENT_PRIVATE_KEY和SYNC_KEY絕不能傳送到伺服器或聊天中。 - 先確認再進行部署、推送、更改 Railway 變數、
TRUNCATE、DELETE或任何其他不可逆的操作。在處理資料之前先備份(pg_dump,請參閱operations.md)。 - 匹配的協定。 客戶端和伺服器必須執行相同的協定版本。當其中一個更新時,提醒使用者更新其他所有機器上的另一個。
- 重置伺服器不會刪除機器上的任何東西。 每台機器都會在本地保留其基礎,並在下一輪重新上傳所有內容。要從所有機器中刪除一個檔案,僅需在一台機器上刪除即可:為此無需觸碰伺服器。
任務
初始部署
遵循 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 中的查詢。對於一次性存取,請使用 railway connect Postgres。偏好唯讀查詢,並確認任何寫入操作。
更新伺服器
- 推送到儲存庫:Railway 從
Dockerfile部署。遷移在啟動時執行(db.migrate)。 - 然後要求使用者更新客戶端。