name: claude-memory-server description: Claude Memory Sync 서버를 배포, 운영 및 진단합니다. (Node + Postgres on Railway) 여러 PC의 Claude Code 구성을 저장하는 암호화된 버전 저장소로, 동시성 제어를 지원합니다. 사용자가 memory sync 서버를 시작하거나 업데이트, PC 인증/해지(CLIENT_PUBLIC_KEYS), 데이터베이스 크기나 이력 확인, 이력 초기화(예: SYNC_KEY 변경 시), 또는 클라이언트에서 발생하는 401/409/413/415/429/503 오류를 조사할 때 사용하세요.
Claude Memory Sync: 서버
리포지토리:
- 서버 (현재): https://github.com/le0nardomartins/ClaudeMemorySync-Server
- 클라이언트 (PC당 하나): https://github.com/le0nardomartins/ClaudeMemorySync. 여기에는
claude-memory-sync스킬이 포함되어 있으며, 3-way 병합을 수행하고 모든 데이터를SYNC_KEY로 암호화하며, 서버 없이 비공개 Git 리포지토리를 사용하는 모드도 지원합니다.
서버는 병합을 수행하지 않으며 내용을 읽지 않습니다. 매니페스트와 봉인된 블롭을 저장하며, 최신 버전을 기반으로 한 새 버전만 허용합니다(그렇지 않으면 409 conflict).
필요 시 이 폴더의 문서를 읽으세요:
deploy.md: Railway 또는 다른 제공자에 배포, 업데이트api.md: 프로토콜, 요청 디버깅용operations.md: SQL 조회 및 유지 관리, 백업, 해지, 진단
항상 적용되는 규칙
- 데이터. PC에서
SYNC_KEY를 사용하면 데이터베이스에는 암호화된 데이터만 있습니다. 키가 없으면 사용자의 API 키가 포함됩니다. 어떤 경우든 Postgres를 공개적으로 노출하지 말고DATABASE_URL을 절대 공유하지 마세요. - 키.
CLIENT_PUBLIC_KEYS에는 공개 키만 있으며, 이는 공개될 수 있습니다.CLIENT_PRIVATE_KEY와SYNC_KEY는 서버나 채팅에 절대 전송되지 않습니다. - 확인 후 진행 deploy, push, 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에서 SYNC_KEY를 변경하도록 안내하고(클라이언트 문제 해결 참조) 이력을 초기화하세요(operations.md).
진단
서비스 로그를 읽고(Railway 대시보드 또는 railway logs) operations.md → "진단"과 비교하세요. 클라이언트 측에서는 sync.log 파일을 확인하세요. 409 뒤에 201이 오는 것은 정상입니다.
데이터베이스 조회 또는 유지 관리
operations.md의 쿼리를 사용하세요. 일회성 액세스는 railway connect Postgres를 사용하세요. 읽기 전용 쿼리를 선호하고 쓰기 작업은 반드시 확인하세요.
서버 업데이트
- 리포지토리에 푸시하면 Railway가
Dockerfile을 통해 배포합니다. 마이그레이션은 시작 시 자동으로 실행됩니다(db.migrate). - 그런 다음 클라이언트를 업데이트하도록 요청하세요.