From 11fd11aa458fde3e27ea84b8aeef43fd7f08672b Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Sun, 12 Apr 2026 01:30:08 +0200 Subject: [PATCH] docs: README Desktop Sync Client komplett dokumentiert - Features-Liste (Virtual Files, Multi-Sync, Offline, Locking, Tray etc.) - Terminalserver-Tabelle (pro User eigene Instanz) - Virtual Files vs. Full Sync Vergleichstabelle - Einstellungen-Pfade pro OS - Config bleibt bei Updates erhalten Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 75c5da5..296f02f 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,38 @@ data/ # Laufzeitdaten (gitignored) Der Desktop-Client (`clients/desktop/`) synchronisiert Dateien zwischen der Cloud und einem lokalen Ordner. Gebaut mit Tauri 2 (Rust + Vue). +### Features + +- **Multi-Sync-Pfade**: Beliebig viele Server-Ordner auf lokale Ordner mappen (z.B. `/Projekte` -> `~/Projekte`, `/Shared/Team` -> `~/Team`) +- **Virtual Files**: `.cloud`-Platzhalter (0 Bytes), Download erst bei Doppelklick. Kein Speicherverbrauch fuer nicht benoetigte Dateien +- **Full Sync**: Alternativ alle Dateien komplett lokal spiegeln (pro Pfad waehlbar) +- **Offline-Markierung**: Einzelne Dateien als offline verfuegbar markieren (Rechtsklick im Datei-Browser) +- **Sofort-Sync**: Filesystem-Watcher erkennt lokale Aenderungen sofort (3s Debounce), kein 30s-Polling +- **File Locking**: Automatisches Ein-/Auschecken mit Heartbeat +- **System-Tray**: Minimiert in den Tray statt zu beenden, Doppelklick oeffnet Fenster +- **Auto-Login**: Zugangsdaten und Sync-Pfade bleiben nach Neustart/Update erhalten +- **Terminalserver**: Pro User eine eigene Instanz, keine Konflikte zwischen Benutzern + +### Terminalserver-Verhalten + +| Szenario | Verhalten | +|----------|-----------| +| User A startet Client | Laeuft, eigenes Lock-File in `%APPDATA%\MiniCloud Sync\` | +| User B startet Client | Laeuft separat, eigenes Lock-File in seinem `%APPDATA%` | +| User A doppelklickt `.cloud` | Laufende Instanz von User A oeffnet die Datei | +| User A startet nochmal | "Already running" -> beendet sich sofort | +| Client crashed | Naechster Start prueft ob PID noch lebt -> stale Lock -> ueberschreibt | + +### Virtual Files vs. Full Sync + +| | Virtual Files | Full Sync | +|---|---|---| +| Speicher | Nur .cloud Platzhalter (0 Bytes) | Alle Dateien komplett lokal | +| Zugriff | Doppelklick = Download + Oeffnen | Sofort verfuegbar | +| Offline | Nur markierte Dateien | Alles offline | +| Upload | Neue lokale Dateien werden hochgeladen | Bidirektionaler Sync | +| Empfehlung | Grosse Datenmengen, Laptops | Kleine Ordner, immer offline noetig | + ### Bauen ```bash @@ -317,7 +349,7 @@ Der Desktop-Client (`clients/desktop/`) synchronisiert Dateien zwischen der Clou ### Auto-Upload auf den Server -Nach dem Build kann der Client automatisch auf den Cloud-Server hochgeladen werden und steht dort zum Download bereit. +Nach dem Build wird der Client automatisch auf den Cloud-Server hochgeladen und steht dort zum Download bereit. **Auf der Entwicklungsmaschine** (nicht auf dem Server!) in die `.env` eintragen: @@ -333,6 +365,15 @@ Danach laedt `./build.sh linux` (etc.) den Build automatisch hoch. Auf der Login **Wichtig:** `CLOUD_URL` und `BUILD_UPLOAD_TOKEN` gehoeren NUR in die `.env` der Entwicklungsmaschine, NICHT auf den Produktionsserver! +### Einstellungen + +Einstellungen werden gespeichert in: +- **Windows**: `%APPDATA%\MiniCloud Sync\config.json` +- **Linux**: `~/.config/MiniCloud Sync/config.json` +- **macOS**: `~/Library/Application Support/MiniCloud Sync/config.json` + +Gespeichert werden: Server-URL, Benutzername, Passwort (base64), Sync-Pfade. Bleiben bei Updates erhalten. + ## Roadmap - Mobile Sync-Client (iOS, Android) mit On-Demand-Download + File Provider