Claude Memory Sync: Server
Repositorien:
- Server (dieses): https://github.com/le0nardomartins/ClaudeMemorySync-Server
- Client (einer pro PC): https://github.com/le0nardomartins/ClaudeMemorySync. Der Client hat die Skill
claude-memory-sync, führt einen 3-Wege-Merge durch, verschlüsselt alles mit derSYNC_KEYund unterstützt auch einen serverlosen Modus über ein privates Git-Repository.
Der Server führt kein Merge durch und liest den Inhalt nicht. Er speichert versiegelte Manifeste und Blobs und akzeptiert nur eine neue Version, wenn sie von der aktuellsten ausgeht (ansonsten 409 Conflict).
Bei Bedarf lesen Sie in diesem Ordner:
deploy.md: Hochladen auf Railway oder einen anderen Anbieter, Aktualisierenapi.md: Protokoll zum Debuggen von Anfragenoperations.md: SQL für Abfragen und Wartung, Backup, Widerruf, Diagnose
Immer geltende Regeln
- Daten. Mit
SYNC_KEYauf den PCs enthält die Datenbank nur verschlüsselte Daten. Ohne sie enthält sie API-Schlüssel des Benutzers. Setzen Sie Postgres in keinem Fall öffentlich zugänglich und geben Sie niemalsDATABASE_URLweiter. - Schlüssel.
CLIENT_PUBLIC_KEYSenthält nur öffentliche Schlüssel, die sichtbar sein dürfen.CLIENT_PRIVATE_KEYundSYNC_KEYgelangen niemals auf den Server oder in den Chat. - Vorher bestätigen vor Deployment, Push, Änderung von Umgebungsvariablen auf Railway,
TRUNCATE,DELETEoder anderen irreversiblen Aktionen. Erstellen Sie ein Backup (pg_dump, sieheoperations.md), bevor Sie Daten verändern. - Gekoppeltes Protokoll. Client und Server müssen dieselbe Protokollversion verwenden. Wenn Sie eines aktualisieren, erinnern Sie den Benutzer daran, das andere auf allen PCs zu aktualisieren.
- Server zurücksetzen löscht nichts auf den PCs. Jeder PC behält die lokale Datenbank und sendet alles in der nächsten Runde erneut. Um eine Datei von allen PCs zu entfernen, löschen Sie sie einfach auf einem PC: Fassen Sie dafür nicht den Server an.
Aufgaben
Erstmaliges Deployment
Folgen Sie deploy.md → "Railway". Der Benutzer muss:
- das Projekt und Postgres im Dashboard erstellen oder die Nutzung der Railway CLI autorisieren;
- die öffentlichen Schlüssel einfügen.
Prüfen Sie am Ende im Log die Zeile memory server auf port ... | PCs autorisiert: ....
PC autorisieren
- Generieren Sie auf dem PC die Schlüssel:
python src/components/remote_client.py keygen <name>(Client) odernpm run keygen -- <name>(hier). - Fügen Sie
<name>:<base64>inCLIENT_PUBLIC_KEYSein, durch Komma getrennt, ohne die anderen zu löschen. - Railway startet automatisch neu. Prüfen Sie den Namen in
PCs autorisiertim Log.
PC widerrufen
Löschen Sie seinen Eintrag aus CLIENT_PUBLIC_KEYS. Falls der Rechner kompromittiert wurde, empfehlen Sie dem Benutzer, die SYNC_KEY auf allen PCs zu wechseln (Fehlerbehebung des Clients) und den Verlauf zurückzusetzen (operations.md).
Diagnose
Lesen Sie die Logs des Dienstes (Railway-Dashboard oder railway logs) und vergleichen Sie mit operations.md → "Diagnose". Auf Client-Seite ist die Datei sync.log. 409 gefolgt von 201 ist normal.
Datenbank abfragen oder warten
Verwenden Sie die Abfragen aus operations.md. Für punktuellen Zugriff nutzen Sie railway connect Postgres. Bevorzugen Sie schreibgeschützte Abfragen und bestätigen Sie jede Schreiboperation.
Server aktualisieren
- Führen Sie einen Push im Repository aus: Railway deployed über das
Dockerfile. Migrationen laufen beim Start automatisch (db.migrate). - Bitten Sie danach, die Clients zu aktualisieren.