SyncVito

SyncVito ist ein Windows-Desktopwerkzeug zum Synchronisieren lokaler Ordner mit NAS- oder anderen Dateisystempfaden. Die Oberfläche ist vollständig deutsch, läuft im Windows-Infobereich weiter und speichert Aufgaben sowie Einstellungen lokal als JSON.

Funktionsumfang

  • Beliebig viele Sync-Aufgaben mit Quell- und Zielordner
  • Einweg-Synchronisation oder bidirektionaler Abgleich
  • Manuelle, zeitgesteuerte oder durch watchdog ausgelöste Echtzeitläufe
  • Optionale Unterauswahl einzelner Dateien und Ordner
  • Löschungen spiegeln oder Dateien grundsätzlich behalten
  • Konfliktwahl: neuerer Zeitstempel gewinnt oder _conflict-Sicherung
  • Erkennung sperrender Windows-Prozesse über den Restart Manager
  • Automatischer Retry für gesperrte Dateien und nicht erreichbare NAS-Pfade
  • Eine zentrale Fortschrittsanzeige, Aktivitätsprotokoll und Status im Tray
  • Aufgabenbezogener Laufzeitstatus mit Worst-Case-Ableitung: grün bei gesunden aktiven Aufgaben, rot bei Pause/Inaktivität und Ausrufezeichen bei Fehlern, NAS-Ausfall oder wartenden Dateisperren
  • Persistente Darstellungseinstellungen und optionaler Windows-Autostart
  • UAC-Manifest mit requireAdministrator
  • Automatische oder manuelle Updateprüfung über öffentliche Gitea-Releases
  • SHA-256-geprüfter Download und sicherer Austausch der EXE nach dem Beenden

Projektseite: gitea.davito.synology.me/Davito/SyncVito

Entwicklung starten

Voraussetzung ist Python 3.11 oder neuer unter Windows.

python -m pip install -r requirements.txt
python main.py

Die Konfiguration wird unter %LOCALAPPDATA%\SyncVito\config.json gespeichert. Der technische Abgleichzustand für bidirektionale Löschungen liegt daneben in sync-state.json.

Tests

python -m pytest

Eigenständige EXE bauen

.\build.ps1

Die Ergebnisse liegen anschließend unter dist\SyncVito.exe und dist\SyncVito.exe.sha256. Die EXE ist eine One-File-Anwendung ohne benötigte Python-Installation und fordert beim Start über das eingebettete Manifest Administratorrechte an.

Hinweis: Eine nicht signierte lokale EXE kann beim ersten Start einen Windows-SmartScreen-Hinweis auslösen. Für die Verteilung in einer Organisation empfiehlt sich eine reguläre Codesignatur.

Updates und Releases

SyncVito fragt höchstens einmal innerhalb von 24 Stunden die stabilen Releases des öffentlichen Gitea-Repositories ab. Die automatische Prüfung lässt sich in den Einstellungen abschalten; eine manuelle Prüfung ist dort und im Tray-Menü jederzeit möglich.

Ein installierbares Release benötigt exakt diese Anhänge:

  • SyncVito.exe
  • SyncVito.exe.sha256

Für ein Release muss die Version in src/syncvito/version.py angepasst und der Quellstand committed sein. Anschließend wird ein Gitea-Token mit Repository-Schreibrecht ausschließlich lokal gesetzt:

$env:GITEA_TOKEN = "<lokales-token>"
.\publish-release.ps1 -Version 1.0.0 -Notes "Erstes stabiles Release"

Das Skript baut und testet die Anwendung, erzeugt Tag und Release und lädt beide Artefakte hoch. Das Token wird weder in der Anwendung noch im Repository gespeichert.

Projektstruktur

src/syncvito/
├── app.py             Anwendungsstart und Einzelinstanzschutz
├── main_window.py     Hauptfenster, Tray und UI-Zustand
├── dialogs.py         Aufgaben- und Unterauswahl-Dialoge
├── coordinator.py     Hintergrundläufe, Zeitplan und Retry
├── sync_engine.py     Dateisystem-Abgleich
├── file_locks.py      Windows-Sperrprozess-Erkennung
├── realtime.py        watchdog-Integration
├── updater.py         Gitea-Protokoll, Download und Integritätsprüfung
├── update_controller.py Hintergrund-Worker für Updates
├── update_dialog.py   deutscher Versionsdialog
├── config_store.py    atomare JSON-Konfiguration
├── state_store.py     bidirektionaler Abgleichzustand
├── models.py          Domänenmodelle und Validierung
├── theme.py           Dark-Mode-Designsystem
└── icons.py           skalierbare Statussymbole

Sicherheitshinweise

Beim Modus „Löschungen spiegeln“ entfernt SyncVito Dateien auf der Gegenseite, nachdem eine Löschung gegenüber dem letzten erfolgreichen Lauf eindeutig erkannt wurde. Vor produktivem Einsatz empfiehlt sich ein Test mit einem kleinen Ordnerpaar und eine vorhandene Datensicherung. Symbolische Links werden bewusst nicht verfolgt.

S
Description
Windows-Tool zur Synchronisation lokaler Ordner mit NAS-Pfaden
Readme
443 KiB
0 Stars 1 Watchers 0 Forks
2026-10-02 05:08:34 +00:00
Languages
Python 91.9%
PowerShell 7.3%
Inno Setup 0.8%