Claude Memory Sync: servidor
Repositorios:
- Servidor (este): https://github.com/le0nardomartins/ClaudeMemorySync-Server
- Cliente (uno por PC): https://github.com/le0nardomartins/ClaudeMemorySync. Este tiene la skill
claude-memory-sync, realiza la fusión de 3 vías, cifra todo con laSYNC_KEYy también admite un modo sin servidor, mediante un repositorio Git privado.
El servidor no realiza fusión ni lee el contenido. Almacena manifiestos y blobs sellados, y solo acepta una versión nueva si parte de la más reciente (409 conflict en caso contrario).
Lea bajo demanda, en esta carpeta:
deploy.md: subir a Railway o a otro proveedor, actualizarapi.md: protocolo, para depurar solicitudesoperations.md: SQL de consulta y mantenimiento, copia de seguridad, revocación, diagnóstico
Reglas que siempre aplican
- Datos. Con
SYNC_KEYen los PCs, la base de datos solo contiene datos cifrados. Sin ella, contiene claves de API del usuario. En cualquier caso, nunca exponga Postgres públicamente y nunca compartaDATABASE_URL. - Claves.
CLIENT_PUBLIC_KEYSsolo contiene claves públicas, que pueden aparecer.CLIENT_PRIVATE_KEYySYNC_KEYnunca van al servidor ni al chat. - Confirme antes de hacer deploy, push, cambios de variables en Railway,
TRUNCATE,DELETEo cualquier otra acción irreversible. Realice una copia de seguridad (pg_dump, veaoperations.md) antes de modificar datos. - Protocolo acoplado. El cliente y el servidor deben estar en la misma versión del protocolo. Al actualizar uno, recuerde al usuario que actualice el otro en todos los PCs.
- Reiniciar el servidor no elimina nada en los PCs. Cada PC guarda la base de datos localmente y la reenvía todo en la siguiente ronda. Para eliminar un archivo de todos los PCs, basta con eliminarlo en un PC: no toque el servidor para eso.
Tareas
Despliegue inicial
Siga deploy.md → "Railway". El usuario necesita:
- crear el proyecto y Postgres en el panel, o autorizar el uso de la Railway CLI;
- pegar las claves públicas.
Al final, verifique en el log la línea memory server en el puerto ... | PCs autorizados: ....
Autorizar un PC
- En el PC, genere las claves:
python src/components/remote_client.py keygen <nombre>(cliente) onpm run keygen -- <nombre>(aquí). - Agregue
<nombre>:<base64>enCLIENT_PUBLIC_KEYS, separado por coma, sin borrar los demás. - Railway se reinicia automáticamente. Verifique el nombre en
PCs autorizadosen el log.
Revocar un PC
Elimine su entrada de CLIENT_PUBLIC_KEYS. Si la máquina se vio comprometida, indique que cambie la SYNC_KEY en todos los PCs (solución de problemas del cliente) y reinicie el historial (operations.md).
Diagnosticar
Lea los logs del servicio (panel de Railway o railway logs) y compárelos con operations.md → "Diagnóstico". Del lado del cliente, el archivo es sync.log. 409 seguido de 201 es normal.
Consultar o mantener la base de datos
Use las consultas de operations.md. Para acceso puntual, use railway connect Postgres. Prefiera consultas de solo lectura y confirme cualquier escritura.
Actualizar el servidor
- Haga push en el repositorio: Railway realiza el despliegue mediante el
Dockerfile. Las migraciones se ejecutan automáticamente al inicio (db.migrate). - Después, solicite actualizar los clientes.