Uebersicht
SIT-FileSync ist ein professionelles Backup- und File-Sync-Tool von SELECT-IT Beratung und IT Dienstleistung GmbH. Es sichert Ihre Daten zuverlaessig auf lokale Laufwerke, Netzwerkfreigaben und Cloud-Speicher — mit Echtzeit-Synchronisation, Generationen-Verwaltung und AES-256 Verschluesselung.
Die Software ist als Cross-Platform-Loesung konzipiert: Auf Windows laeuft sie als WPF Desktop-Anwendung oder Windows Service, auf Linux als systemd-Daemon. Der optionale Management Server ermoeglicht die zentrale Verwaltung aller Backup-Clients ueber ein Web-Dashboard.
Systemvoraussetzungen
| Komponente | Anforderung |
|---|---|
| Betriebssystem | Windows 10 / 11 / Server 2016+ |
| Runtime | .NET 10 Runtime (oder Self-Contained) |
| RAM | Mindestens 128 MB verfuegbar |
| Festplatte | ca. 50 MB fuer die Installation |
| Netzwerk | Fuer Cloud-Backup und Management Server |
| Management Server | PostgreSQL 14+, .NET 10, Linux oder Windows |
Download & Installation
SIT-FileSync wird als einzelne EXE-Datei ausgeliefert (Single-File Deployment). Es ist keine aufwaendige Installation erforderlich.
- Laden Sie die aktuelle Version von hier oder ueber das Management Dashboard herunter.
- Speichern Sie
SIT-FileSync.exean einem beliebigen Ort (empfohlen:C:\Program Files\SIT-FileSync\). - Starten Sie die Anwendung per Doppelklick.
- Beim ersten Start wird die Konfigurationsdatei unter
%ProgramData%\USBBackup\config.jsonangelegt.
Wenn SIT-FileSync ueber den Management Server verwaltet wird, erhalten Clients automatisch Updates. Eine manuelle Installation ist dann nur fuer die Ersteinrichtung noetig.
Schnellstart
Erster Start
Nach dem Start von SIT-FileSync oeffnet sich das Hauptfenster im GUI-Modus. Die Anwendung unterstuetzt verschiedene Startmodi:
SIT-FileSync.exe # GUI-Modus (Standard)
SIT-FileSync.exe --silent # Stiller Modus (fuer geplante Aufgaben)
SIT-FileSync.exe --dryrun # Simulation ohne echtes Kopieren
SIT-FileSync.exe --config # Konfigurationsoberflaeche oeffnen
SIT-FileSync.exe --adddrive # USB-Laufwerk registrieren (Konsole)
Beim ersten Start ist die Job-Liste leer. Ueber den Button Job hinzufuegen legen Sie Ihren ersten Backup-Job an.
Ersten Backup-Job anlegen
- Klicken Sie auf Job hinzufuegen im Hauptfenster.
- Vergeben Sie einen aussagekraeftigen Namen fuer den Job (z.B. "Dokumente auf USB").
- Waehlen Sie eine Quelle — den Ordner, den Sie sichern moechten.
- Waehlen Sie ein Ziel — wohin die Sicherung geschrieben werden soll.
- Konfigurieren Sie optional Exclude-Patterns, Zeitplan und Verschluesselung.
- Klicken Sie auf Speichern.
Anschliessend erscheint der Job in der Liste. Mit dem Play-Button starten Sie das Backup manuell. Im Fortschrittsbereich sehen Sie den aktuellen Status, kopierte Dateien und eventuelle Fehler.
Backup ausfuehren
Ein Backup-Job kann auf verschiedene Arten ausgefuehrt werden:
- Manuell — Per Klick auf den Start-Button im Hauptfenster
- Geplant — Ueber den Windows Aufgabenplaner (schtasks) im Silent-Modus
- Event-basiert — Automatisch beim Einstecken eines registrierten USB-Laufwerks
- Echtzeit — Per FileSystemWatcher bei Aenderungen in der Quelle
- Remote — Ueber den Management Server ausgeloest
Dateien wiederherstellen
Oeffnen Sie den Restore-Wizard ueber das Menue oder den entsprechenden Button im Hauptfenster. Waehlen Sie den Job, den Zeitpunkt und die gewuenschten Dateien aus. Der Wizard fuehrt Sie Schritt fuer Schritt durch den Wiederherstellungsprozess.
Backup-Jobs
Ein Backup-Job definiert, was von wo nach wohin gesichert wird und mit welchen Einstellungen. Jeder Job hat eine eigene Konfiguration fuer Verschluesselung, Zeitplan, Aufbewahrung und Ausschluss-Regeln.
Job anlegen / bearbeiten / loeschen
Jobs werden ueber die grafische Oberflaeche verwaltet. Jeder Job hat eine eindeutige ID und wird in der zentralen Konfigurationsdatei gespeichert. Beim Loeschen eines Jobs werden die bereits erstellten Backups nicht automatisch entfernt.
Quellen konfigurieren
Als Quelle fuer ein Backup koennen folgende Typen verwendet werden:
| Quelltyp | Beschreibung | Beispiel |
|---|---|---|
| Lokal | Lokales Dateisystem | C:\Users\Max\Dokumente |
| Netzwerk | UNC-Pfad / SMB-Freigabe | \\server\freigabe\daten |
| Cloud | Cloud-Speicher als Quelle | S3 Bucket, OneDrive Ordner |
Fuer Netzwerk-Quellen koennen Zugangsdaten hinterlegt werden, die sicher per DPAPI (Windows) verschluesselt gespeichert werden.
Ziele konfigurieren
SIT-FileSync unterstuetzt eine breite Palette an Backup-Zielen:
| Zieltyp | Beschreibung | Lizenz |
|---|---|---|
| USB-Laufwerk | Registriertes USB-Laufwerk mit .backup_target Marker | Free |
| Lokal | Beliebiger lokaler Ordner | Free |
| Netzwerk | UNC-Pfad / SMB-Freigabe | Professional |
| Amazon S3 | S3-kompatible Speicher (AWS, MinIO, etc.) | Professional |
| SCP / SFTP | Secure Copy ueber SSH | Professional |
| OneDrive | Microsoft OneDrive | Enterprise |
| SharePoint | Microsoft SharePoint Document Libraries | Enterprise |
| Nextcloud | Nextcloud / WebDAV | Enterprise |
USB-Laufwerk registrieren
USB-Laufwerke werden ueber eine eindeutige GUID identifiziert. Bei der Registrierung wird eine versteckte Datei .backup_target im JSON-Format auf dem Laufwerk abgelegt. Registrierte Laufwerke werden automatisch erkannt, wenn sie angeschlossen werden.
SIT-FileSync.exe --adddrive
Amazon S3 Konfiguration
Fuer S3-kompatible Ziele werden folgende Angaben benoetigt:
- Endpoint — S3-Endpoint-URL (z.B.
https://s3.eu-central-1.amazonaws.com) - Bucket — Name des S3-Buckets
- Access Key — AWS Access Key ID
- Secret Key — AWS Secret Access Key (wird verschluesselt gespeichert)
- Region — AWS Region (z.B.
eu-central-1)
SIT-FileSync verwendet Multipart-Upload mit 1 MB Buffer und unterstuetzt bis zu 8 parallele Connections fuer optimale Uebertragungsgeschwindigkeit.
Exclude-Patterns
Dateien und Ordner koennen ueber Glob-Patterns vom Backup ausgeschlossen werden. Patterns werden pro Job konfiguriert.
*.tmp # Alle temporaeren Dateien
*.log # Alle Log-Dateien
node_modules/ # Node.js Abhaengigkeiten
.git/ # Git-Repositories
~$* # Office temporaere Dateien
Thumbs.db # Windows Thumbnails
*.bak # Backup-Dateien
Parallele Kopien & Bandbreiten-Limit
Die Anzahl paralleler Kopiervorgaenge kann pro Job konfiguriert werden (Standard: 8). Zusaetzlich laesst sich ein Bandbreiten-Limit setzen, um den Netzwerkverkehr zu begrenzen — besonders nuetzlich bei Cloud-Backups waehrend der Arbeitszeit.
Zeitplan & Trigger
Backup-Jobs koennen automatisch nach Zeitplan oder durch Ereignisse ausgeloest werden. Die Zeitplanung erfolgt ueber den Windows Aufgabenplaner (schtasks.exe), auf Linux ueber cron oder systemd timer.
Zeitplan-Optionen
| Intervall | Beschreibung |
|---|---|
| Taeglich | Einmal am Tag zu einer definierten Uhrzeit |
| Woechentlich | An bestimmten Wochentagen zu einer definierten Uhrzeit |
| Bei Anmeldung | Automatisch beim Windows-Login des Benutzers |
Event-Trigger
| Trigger | Beschreibung |
|---|---|
| USB-Einstecken | Backup startet automatisch, wenn ein registriertes USB-Laufwerk angeschlossen wird |
| Systemstart | Backup startet beim Hochfahren des Systems |
Echtzeit-Sync (FileSystemWatcher)
Der Echtzeit-Sync ueberwacht Quell-Ordner auf Aenderungen und sichert betroffene Dateien automatisch. Diese Funktion ist pro Quelle einzeln konfigurierbar.
- Basiert auf dem
FileSystemWatchervon .NET - 2-Sekunden-Debounce verhindert unnoetige Mehrfach-Backups
- Erkennt neue, geaenderte und geloeschte Dateien
- Kann parallel zum regulaeren Zeitplan aktiv sein
FileSystemWatcher hat systembedingte Einschraenkungen bei Netzlaufwerken. Fuer Netzwerk-Quellen empfehlen wir einen zeitgesteuerten Backup-Plan.
Pre/Post Backup Scripts
Fuer jeden Job koennen optionale Skripte definiert werden, die vor und nach dem Backup ausgefuehrt werden:
- Pre-Backup Script — Wird vor dem Kopiervorgang ausgefuehrt (z.B. Datenbank-Dump, Dienste stoppen)
- Post-Backup Script — Wird nach dem Kopiervorgang ausgefuehrt (z.B. Benachrichtigung, Aufraeum-Arbeiten)
Skripte koennen als .bat, .cmd oder .ps1 Dateien hinterlegt werden. Der Exit-Code des Pre-Scripts bestimmt, ob das Backup fortgesetzt wird (0 = Erfolg, alles andere bricht ab).
Verschluesselung & Sicherheit
SIT-FileSync bietet umfassende Verschluesselung und Komprimierung fuer Ihre Backups. Alle sicherheitskritischen Daten werden mit branchenueblichen Verfahren geschuetzt.
AES-256 Verschluesselung
Backups koennen mit AES-256-GCM verschluesselt werden. Die Verschluesselung verwendet ein Zwei-Stufen-Schluesselmanagement:
- Der Benutzer vergibt ein Passwort pro Job.
- Aus dem Passwort wird ein Data Encryption Key (DEK) abgeleitet.
- Der DEK verschluesselt die Backup-Daten in Chunks.
- Ein Recovery-Key wird generiert, der den DEK ebenfalls entschluesseln kann.
Bewahren Sie den Recovery-Key sicher auf. Ohne Passwort und ohne Recovery-Key koennen verschluesselte Backups nicht wiederhergestellt werden.
Komprimierung (gzip)
Backup-Daten koennen optional mit gzip komprimiert werden. Dies reduziert den Speicherverbrauch, insbesondere bei Text-lastigen Backups.
Verschluesselung + Komprimierung kombiniert
Beide Optionen koennen kombiniert werden. Die Reihenfolge ist immer: Komprimierung zuerst, dann Verschluesselung. Dies ist kryptographisch korrekt und liefert optimale Kompressionsraten.
| Modus | Geschwindigkeit | Speicher | Sicherheit |
|---|---|---|---|
| Ohne | Maximal | 1:1 | Keine |
| Nur Komprimierung | Hoch | Reduziert | Keine |
| Nur Verschluesselung | Hoch | 1:1 | AES-256 |
| Beides | Mittel | Reduziert | AES-256 |
Recovery-Key
Bei der Aktivierung der Verschluesselung wird ein Recovery-Key generiert. Dieser Key erlaubt die Wiederherstellung der Daten, falls das Passwort verloren geht.
- Der Recovery-Key wird einmalig bei der Einrichtung angezeigt.
- Speichern Sie ihn an einem sicheren, separaten Ort.
- In der Enterprise-Edition kann der Recovery-Key optional verschluesselt am Management Server hinterlegt werden (Passwort-Backup am Server).
Aufbewahrung (Retention)
Die Aufbewahrungsstrategie bestimmt, wie lange Backup-Versionen vorgehalten werden und wann aeltere Versionen geloescht werden.
Aufbewahrungsmodi
| Modus | Beschreibung |
|---|---|
| Keine (Standard) | Vollbackup bei jeder Ausfuehrung. Aeltere Backups werden nie automatisch geloescht. |
| Einfach | Backups werden fuer X Tage aufbewahrt. Aeltere Backups werden automatisch entfernt. |
| GFS Generationen | Grandfather-Father-Son Rotation mit taeglichen, woechentlichen, monatlichen und jaehrlichen Sicherungen. |
GFS Generationen
Das GFS-Schema (Grandfather-Father-Son) ist die empfohlene Aufbewahrungsstrategie fuer professionelle Backups:
- Daily (Son) — Taegliche Sicherungen, z.B. die letzten 7 Tage
- Weekly (Father) — Woechentliche Sicherungen, z.B. die letzten 4 Wochen
- Monthly (Grandfather) — Monatliche Sicherungen, z.B. die letzten 12 Monate
- Yearly — Jaehrliche Sicherungen, unbegrenzt oder fuer X Jahre
Jede Generation basiert auf dem manifest-basierten inkrementellen Backup. Nur tatsaechlich geaenderte Dateien werden kopiert, aber jeder Sicherungspunkt ist vollstaendig wiederherstellbar.
Manifest-basiertes inkrementelles Backup
SIT-FileSync verwendet ein Manifest-System fuer effiziente inkrementelle Backups. Jedes Backup erzeugt ein Manifest — eine JSON-Datei, die den Zustand aller Dateien zum Zeitpunkt des Backups beschreibt.
Wie Manifeste funktionieren
- Beim ersten Backup wird ein Voll-Manifest erstellt. Alle Dateien werden kopiert.
- Bei jedem weiteren Backup wird das aktuelle Dateisystem mit dem letzten Manifest verglichen.
- Nur geaenderte oder neue Dateien werden in das aktuelle Tages-Verzeichnis kopiert.
- Unveraenderte Dateien werden im Manifest per
storedIn-Referenz auf das Verzeichnis verwiesen, in dem sie zuletzt gespeichert wurden.
{
"relativePath": "Dokumente/Vertrag.pdf",
"hash": "a1b2c3d4e5f6...",
"size": 245760,
"lastModified": "2026-03-15T14:30:00Z",
"storedIn": "2026-03-10"
}
Das Feld storedIn zeigt an, dass die Datei physisch im Backup vom 10. Maerz gespeichert ist. Beim Restore wird sie automatisch von dort geladen.
Datei-Migration
Wenn eine aeltere Generation geloescht wird (z.B. ein Daily aelter als 7 Tage), werden Dateien, die von neueren Manifesten referenziert werden, automatisch in das naechste aktive Verzeichnis migriert. So bleiben alle aktiven Backups vollstaendig wiederherstellbar.
Loeschen Sie niemals manuell Dateien aus dem Backup-Verzeichnis. Verwenden Sie immer die Aufbewahrungs-Funktionen von SIT-FileSync, damit Manifest-Referenzen korrekt aktualisiert werden.
Wiederherstellung
SIT-FileSync bietet mehrere Wege, Daten aus einem Backup wiederherzustellen — vom einfachen Restore-Wizard bis zum detaillierten Versions-Browser.
Restore-Wizard (WPF)
Der Restore-Wizard fuehrt Sie in vier Schritten durch die Wiederherstellung:
- Job waehlen — Waehlen Sie den Backup-Job, aus dem wiederhergestellt werden soll.
- Zeitpunkt waehlen — Waehlen Sie das Backup-Datum. Bei GFS-Backups sehen Sie alle verfuegbaren Generationen.
- Dateien waehlen — Waehlen Sie einzelne Dateien, Ordner oder das gesamte Backup. Der Versions-Browser zeigt alle verfuegbaren Versionen einer Datei.
- Ziel waehlen — Original-Speicherort oder ein alternatives Ziel. Bestehende Dateien koennen ueberschrieben oder umbenannt werden.
Web-basierter Restore
Ueber das Management Server Dashboard kann ein Restore auch remote ausgeloest werden. Der Administrator waehlt den Client, den Job und die gewuenschten Dateien. Der Restore-Befehl wird per SignalR an den Client gesendet.
Versions-Browser
Der Versions-Browser zeigt fuer jede Datei alle verfuegbaren Versionen mit Datum, Groesse und SHA-256 Hash. So koennen Sie gezielt eine bestimmte Version einer Datei wiederherstellen.
Manifest-Recovery bei korrupten Manifesten
Falls ein Manifest beschaedigt ist, kann SIT-FileSync versuchen, es aus den vorhandenen Backup-Dateien zu rekonstruieren. Dieser Prozess scannt das Backup-Verzeichnis, berechnet Hashes und erstellt ein neues Manifest.
Integritaets-Pruefung
Die Integritaets-Pruefung vergleicht die SHA-256 Hashes aller Backup-Dateien mit den im Manifest gespeicherten Werten. So erkennen Sie fruehzeitig, ob Backup-Daten beschaedigt wurden.
- Kann manuell oder automatisch nach jedem Backup ausgefuehrt werden
- Prueft Hash-Werte, Dateigroessen und Manifest-Konsistenz
- Ergebnis wird im Backup-Log und am Management Server protokolliert
Management Server
Der Management Server ist die zentrale Steuerungseinheit fuer alle SIT-FileSync Clients. Er laeuft als ASP.NET Core Web-Anwendung und bietet ein Echtzeit-Dashboard, Client-Verwaltung, Lizenz-Management und Remote-Steuerung.
Einrichtung
Voraussetzungen
- PostgreSQL 14+ als Datenbank
- .NET 10 Runtime oder Docker
- Linux oder Windows Server
- HTTPS-Zertifikat (empfohlen: Let's Encrypt)
Konfiguration
Die Server-Konfiguration erfolgt ueber appsettings.json oder Umgebungsvariablen:
{
"ConnectionStrings": {
"Default": "Host=localhost;Database=sitfilesync;Username=sync;Password=..."
},
"ManagementServer": {
"BaseUrl": "https://msync.select-it.at",
"JwtSecret": "...",
"AllowRegistration": false
},
"Alerting": {
"TeamsWebhookUrl": "https://outlook.office.com/webhook/..."
}
}
Dashboard
Das Dashboard zeigt eine Echtzeitansicht aller verbundenen Clients:
- Status-Uebersicht — Online/Offline, letzter Heartbeat, aktuelle Aktion
- Backup-Historie — Letzte Backups mit Status, Dauer und kopierten Dateien
- Fehler-Uebersicht — Clients mit fehlgeschlagenen Backups oder laengerer Inaktivitaet
- Speicher-Statistik — Verbrauchter Speicher pro Client und Job
Client-Verwaltung
Im Bereich Client-Verwaltung koennen Sie:
- Clients einsehen — Alle registrierten Clients mit Hostname, Version und Status
- Remote-Backup ausloesen — Ein Backup auf einem Client per Knopfdruck starten
- Config-Push — Konfigurationsaenderungen zentral an Clients verteilen
- Auto-Update — Neue Versionen ueber den Server verteilen, Clients aktualisieren automatisch
SignalR Echtzeit-Kommunikation
Die Kommunikation zwischen Server und Clients erfolgt ueber SignalR (WebSocket). Clients verbinden sich beim Start mit dem Server und halten eine persistente Verbindung. Dadurch koennen Befehle in Echtzeit uebermittelt werden.
Alerting
Der Server kann bei bestimmten Ereignissen Benachrichtigungen senden:
| Ereignis | Beschreibung |
|---|---|
| Backup fehlgeschlagen | Ein Client meldet einen fehlgeschlagenen Backup-Job |
| Client offline | Kein Heartbeat seit definierter Zeit |
| Speicher kritisch | Backup-Ziel nähert sich der Kapazitaetsgrenze |
| Update verfuegbar | Neue Version wurde am Server bereitgestellt |
Benachrichtigungen werden aktuell ueber Microsoft Teams Webhook gesendet. Weitere Kanaele (E-Mail, Slack) sind geplant.
Berichte
Der Management Server generiert Berichte ueber den Backup-Status aller Clients. Diese koennen im Dashboard eingesehen oder als Export heruntergeladen werden. Berichte umfassen Backup-Erfolgsquoten, Speicherverbrauch, Client-Aktivitaet und Versionsverteilung.
Benutzerverwaltung
Der Management Server verfuegt ueber ein rollenbasiertes Zugriffssystem fuer die Verwaltung von Benutzern und deren Berechtigungen.
Rollen & Berechtigungen
| Rolle | Beschreibung | Berechtigungen |
|---|---|---|
| SuperAdmin | Vollzugriff auf alle Funktionen | Alle Clients, Benutzer verwalten, Lizenzen, Server-Konfiguration, API-Keys |
| GroupAdmin | Verwaltung zugewiesener Client-Gruppen | Zugewiesene Clients einsehen und steuern, Backups ausloesen, Restore |
| Viewer | Nur-Lese-Zugriff | Dashboard einsehen, Backup-Status pruefen, Berichte ansehen |
Client-Zuweisung
Clients koennen einzelnen Benutzern oder Gruppen zugewiesen werden. Ein GroupAdmin sieht nur die Clients, die seiner Gruppe zugeordnet sind.
Google Authenticator (MFA)
Fuer erhoehte Sicherheit kann die Zwei-Faktor-Authentifizierung mit Google Authenticator (TOTP) aktiviert werden. MFA ist fuer SuperAdmin-Konten dringend empfohlen.
- MFA in den Benutzer-Einstellungen aktivieren
- QR-Code mit Google Authenticator oder kompatibler App scannen
- Verifizierungscode eingeben
- Recovery-Codes sicher aufbewahren
API-Keys
Fuer die Maschine-zu-Maschine-Kommunikation koennen API-Keys generiert werden. API-Keys werden im HTTP-Header X-Api-Key uebermittelt und haben die gleichen Berechtigungen wie der zugehoerige Benutzer.
GET /api/management/clients HTTP/1.1
Host: msync.select-it.at
X-Api-Key: sk_live_a1b2c3d4e5f6...
Lizenz-Modell
SIT-FileSync ist in drei Editionen verfuegbar. Jede Edition erweitert den Funktionsumfang der vorherigen.
Feature-Matrix
| Feature | Free | Professional | Enterprise |
|---|---|---|---|
| Lokales Backup | ✓ | ✓ | ✓ |
| USB-Laufwerke | ✓ | ✓ | ✓ |
| SHA-256 Verifizierung | ✓ | ✓ | ✓ |
| Versionierung | ✓ | ✓ | ✓ |
| Duplikaterkennung | ✓ | ✓ | ✓ |
| AES-256 Verschluesselung | ✓ | ✓ | ✓ |
| Exclude-Patterns | ✓ | ✓ | ✓ |
| Netzlaufwerke (UNC/SMB) | — | ✓ | ✓ |
| Amazon S3 | — | ✓ | ✓ |
| SCP / SFTP | — | ✓ | ✓ |
| Zeitplanung & Event-Trigger | — | ✓ | ✓ |
| Echtzeit-Sync | — | ✓ | ✓ |
| GFS Generationen | — | ✓ | ✓ |
| Management Server | — | ✓ | ✓ |
| Pre/Post Scripts | — | ✓ | ✓ |
| Benachrichtigungen | — | ✓ | ✓ |
| OneDrive | — | — | ✓ |
| SharePoint | — | — | ✓ |
| Nextcloud / WebDAV | — | — | ✓ |
| Client-Gruppen | — | — | ✓ |
| Lizenz-Verwaltung | — | — | ✓ |
| Passwort-Backup am Server | — | — | ✓ |
| Config-Push & Remote-Restore | — | — | ✓ |
Preise
| Edition | Preis |
|---|---|
| Free | Kostenlos |
| Professional | € 4,90 / Endpoint / Monat |
| Enterprise | € 9,90 / Endpoint / Monat |
Lizenz-Aktivierung
Lizenzen werden ueber den Management Server verwaltet und an Clients verteilt. Die Aktivierung erfolgt in drei Schritten:
- Lizenzschluessel im Management Dashboard eingeben.
- Der Server validiert den Schluessel und speichert die Lizenz.
- Clients erhalten die Lizenzinformation automatisch beim naechsten Heartbeat.
Trial-Modus (30 Tage)
Neue Installationen starten automatisch mit einer 30-Tage-Testlizenz fuer die Professional-Edition. Alle Features sind waehrend der Testphase uneingeschraenkt verfuegbar. Nach Ablauf wird der Client auf die Free-Edition zurueckgestuft.
Lizenz-Sync vom Server
Clients synchronisieren ihren Lizenzstatus regelmaessig mit dem Management Server. So koennen Lizenzen zentral verwaltet, umgezogen und bei Bedarf deaktiviert werden, ohne dass ein Eingriff am Client noetig ist.
Windows Service
SIT-FileSync kann als Windows-Dienst installiert werden. Im Service-Modus laeuft die Anwendung im Hintergrund, unabhaengig von der Benutzeranmeldung.
Installation
# Service installieren
SIT-FileSync.exe /install
# Service starten
net start SITFileSync
Deinstallation
# Service stoppen
net stop SITFileSync
# Service deinstallieren
SIT-FileSync.exe /uninstall
Service vs. Desktop Modus
| Eigenschaft | Desktop | Service |
|---|---|---|
| Benutzeranmeldung erforderlich | Ja | Nein |
| GUI verfuegbar | Ja | Nein (nur ueber Server) |
| Ausfuehrung im Hintergrund | Nur wenn minimiert | Immer |
| Systemstart | Per Autostart/Aufgabenplaner | Automatisch |
| Netzlaufwerk-Zugriff | Benutzer-Kontext | Service-Konto konfigurierbar |
Auto-Update im Service-Modus
Im Service-Modus prueft SIT-FileSync regelmaessig den Management Server auf Updates. Wenn eine neue Version verfuegbar ist:
- Die neue Version wird heruntergeladen und per SHA-256 verifiziert.
- Der Service stoppt sich selbst.
- Die EXE wird ersetzt.
- Der Service startet mit der neuen Version.
- Bei Fehler erfolgt ein automatischer Rollback zur vorherigen Version.
Linux & Docker
SIT-FileSync ist als Cross-Platform-Anwendung konzipiert. Auf Linux stehen plattformspezifische Implementierungen hinter den gleichen Interfaces bereit.
Infrastructure.Linux
Die Linux-spezifischen Implementierungen ersetzen die Windows-Pendants:
| Interface | Windows | Linux |
|---|---|---|
IFileSyncEngine | RobocopyRunner | rsync / eigene Engine |
IDriveDetector | WMI | /proc/mounts + udev |
ICredentialProtector | DPAPI | libsecret / keyring |
ISchedulerService | schtasks.exe | cron / systemd timer |
INetworkMounter | WNetAddConnection2 | mount.cifs |
systemd Service
[Unit]
Description=SIT-FileSync Backup Service
After=network.target
[Service]
Type=notify
ExecStart=/opt/sit-filesync/SIT-FileSync --silent
WorkingDirectory=/opt/sit-filesync
Restart=on-failure
RestartSec=10
User=sitfilesync
Environment=DOTNET_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
# Service aktivieren und starten
sudo systemctl enable sit-filesync
sudo systemctl start sit-filesync
# Status pruefen
sudo systemctl status sit-filesync
# Logs ansehen
sudo journalctl -u sit-filesync -f
Docker Deployment
Der Management Server kann auch als Docker-Container betrieben werden:
version: '3.8'
services:
db:
image: postgres:16
environment:
POSTGRES_DB: sitfilesync
POSTGRES_USER: sync
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
server:
image: selectit/sit-filesync-server:latest
ports:
- "443:8443"
environment:
ConnectionStrings__Default: "Host=db;Database=sitfilesync;Username=sync;Password=${DB_PASSWORD}"
ManagementServer__BaseUrl: "https://msync.select-it.at"
ManagementServer__JwtSecret: ${JWT_SECRET}
volumes:
- uploads:/app/uploads
- certs:/app/certs
depends_on:
- db
restart: unless-stopped
volumes:
pgdata:
uploads:
certs:
# Container starten
docker compose up -d
# Logs ansehen
docker compose logs -f server
# Update auf neue Version
docker compose pull && docker compose up -d
Die Konfigurationsdatei auf Linux liegt unter ~/.config/sit-filesync/config.json.
API-Referenz
Die Management Server API ermoeglicht die Integration mit externen Systemen. Alle Endpunkte erfordern Authentifizierung per X-Api-Key Header oder JWT Bearer Token.
https://msync.select-it.at/api/management
Heartbeat
Clients senden regelmaessig einen Heartbeat, um ihren Status zu melden.
{
"clientId": "550e8400-e29b-41d4-a716-446655440000",
"hostname": "DESKTOP-ABC123",
"version": "2.5.0",
"os": "Windows 11",
"lastBackupStatus": "Success",
"lastBackupTime": "2026-03-28T03:00:00Z",
"diskFreeBytes": 107374182400
}
| Status | Beschreibung |
|---|---|
200 OK | Heartbeat empfangen. Antwort enthaelt ggf. Pending-Commands. |
401 Unauthorized | Fehlender oder ungueltiger API-Key. |
Updates abfragen
Gibt die neueste verfuegbare Version zurueck.
{
"id": 42,
"version": "2.5.1",
"releaseDate": "2026-03-27T10:00:00Z",
"sha256": "a1b2c3d4...",
"size": 15728640,
"releaseNotes": "Bugfix: S3 Multipart-Upload Timeout"
}
Update herunterladen
Laedt die EXE-Datei eines spezifischen Updates herunter.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | int | ID des Updates (aus /updates/latest) |
Gibt die Datei als application/octet-stream zurueck.
Clients auflisten
Gibt eine Liste aller registrierten Clients zurueck.
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"hostname": "DESKTOP-ABC123",
"version": "2.5.0",
"os": "Windows 11",
"isOnline": true,
"lastSeen": "2026-03-28T14:55:00Z",
"lastBackupStatus": "Success",
"group": "Buchhaltung"
}
]
Konfiguration an Client senden
Setzt die Konfiguration eines spezifischen Clients. Der Client uebernimmt die Aenderungen beim naechsten Heartbeat oder sofort ueber SignalR.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | GUID | Client-ID |
Der Request-Body enthaelt die komplette oder partielle Konfiguration im JSON-Format.
Remote-Restore ausloesen
Loest einen Restore-Vorgang auf einem Client aus.
{
"jobId": "backup-job-guid",
"date": "2026-03-27",
"targetPath": "C:\\Restore",
"files": [
"Dokumente/Vertrag.pdf",
"Dokumente/Rechnung.xlsx"
]
}
Feature-Flags abfragen
Gibt die aktivierten Features fuer den aktuellen Client zurueck (basierend auf der Lizenz).
{
"edition": "Professional",
"features": [
"NetworkBackup",
"S3Backup",
"ScpBackup",
"Scheduling",
"RealtimeSync",
"GfsRetention",
"ManagementServer",
"PrePostScripts",
"Alerting"
]
}
Lizenz validieren
Prueft die Gueltigkeit einer Lizenz.
{
"valid": true,
"edition": "Professional",
"expiresAt": "2027-03-28T00:00:00Z",
"maxEndpoints": 50,
"usedEndpoints": 12,
"isTrial": false
}
Authentifizierung
Alle API-Anfragen muessen authentifiziert werden. Es stehen zwei Methoden zur Verfuegung:
X-Api-Key: sk_live_a1b2c3d4e5f6...
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Fehler-Responses
| Status | Beschreibung |
|---|---|
400 Bad Request | Ungueltige Anfrage (fehlende Pflichtfelder, falsches Format) |
401 Unauthorized | Fehlende oder ungueltige Authentifizierung |
403 Forbidden | Keine Berechtigung fuer diese Aktion |
404 Not Found | Ressource nicht gefunden (Client, Update, etc.) |
429 Too Many Requests | Rate-Limit ueberschritten |
500 Internal Server Error | Serverfehler — bitte Support kontaktieren |