Select-IT SIT-FileSync Docs

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

KomponenteAnforderung
BetriebssystemWindows 10 / 11 / Server 2016+
Runtime.NET 10 Runtime (oder Self-Contained)
RAMMindestens 128 MB verfuegbar
Festplatteca. 50 MB fuer die Installation
NetzwerkFuer Cloud-Backup und Management Server
Management ServerPostgreSQL 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.

  1. Laden Sie die aktuelle Version von hier oder ueber das Management Dashboard herunter.
  2. Speichern Sie SIT-FileSync.exe an einem beliebigen Ort (empfohlen: C:\Program Files\SIT-FileSync\).
  3. Starten Sie die Anwendung per Doppelklick.
  4. Beim ersten Start wird die Konfigurationsdatei unter %ProgramData%\USBBackup\config.json angelegt.
Tipp

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:

Shell
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

  1. Klicken Sie auf Job hinzufuegen im Hauptfenster.
  2. Vergeben Sie einen aussagekraeftigen Namen fuer den Job (z.B. "Dokumente auf USB").
  3. Waehlen Sie eine Quelle — den Ordner, den Sie sichern moechten.
  4. Waehlen Sie ein Ziel — wohin die Sicherung geschrieben werden soll.
  5. Konfigurieren Sie optional Exclude-Patterns, Zeitplan und Verschluesselung.
  6. 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:

QuelltypBeschreibungBeispiel
LokalLokales DateisystemC:\Users\Max\Dokumente
NetzwerkUNC-Pfad / SMB-Freigabe\\server\freigabe\daten
CloudCloud-Speicher als QuelleS3 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:

ZieltypBeschreibungLizenz
USB-LaufwerkRegistriertes USB-Laufwerk mit .backup_target MarkerFree
LokalBeliebiger lokaler OrdnerFree
NetzwerkUNC-Pfad / SMB-FreigabeProfessional
Amazon S3S3-kompatible Speicher (AWS, MinIO, etc.)Professional
SCP / SFTPSecure Copy ueber SSHProfessional
OneDriveMicrosoft OneDriveEnterprise
SharePointMicrosoft SharePoint Document LibrariesEnterprise
NextcloudNextcloud / WebDAVEnterprise

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.

Shell
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.

Beispiel-Patterns
*.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

IntervallBeschreibung
TaeglichEinmal am Tag zu einer definierten Uhrzeit
WoechentlichAn bestimmten Wochentagen zu einer definierten Uhrzeit
Bei AnmeldungAutomatisch beim Windows-Login des Benutzers

Event-Trigger

TriggerBeschreibung
USB-EinsteckenBackup startet automatisch, wenn ein registriertes USB-Laufwerk angeschlossen wird
SystemstartBackup 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 FileSystemWatcher von .NET
  • 2-Sekunden-Debounce verhindert unnoetige Mehrfach-Backups
  • Erkennt neue, geaenderte und geloeschte Dateien
  • Kann parallel zum regulaeren Zeitplan aktiv sein
Hinweis

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:

  1. Der Benutzer vergibt ein Passwort pro Job.
  2. Aus dem Passwort wird ein Data Encryption Key (DEK) abgeleitet.
  3. Der DEK verschluesselt die Backup-Daten in Chunks.
  4. Ein Recovery-Key wird generiert, der den DEK ebenfalls entschluesseln kann.
Wichtig

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.

ModusGeschwindigkeitSpeicherSicherheit
OhneMaximal1:1Keine
Nur KomprimierungHochReduziertKeine
Nur VerschluesselungHoch1:1AES-256
BeidesMittelReduziertAES-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

ModusBeschreibung
Keine (Standard)Vollbackup bei jeder Ausfuehrung. Aeltere Backups werden nie automatisch geloescht.
EinfachBackups werden fuer X Tage aufbewahrt. Aeltere Backups werden automatisch entfernt.
GFS GenerationenGrandfather-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

  1. Beim ersten Backup wird ein Voll-Manifest erstellt. Alle Dateien werden kopiert.
  2. Bei jedem weiteren Backup wird das aktuelle Dateisystem mit dem letzten Manifest verglichen.
  3. Nur geaenderte oder neue Dateien werden in das aktuelle Tages-Verzeichnis kopiert.
  4. Unveraenderte Dateien werden im Manifest per storedIn-Referenz auf das Verzeichnis verwiesen, in dem sie zuletzt gespeichert wurden.
JSON — Manifest-Eintrag
{
  "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.

Achtung

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:

  1. Job waehlen — Waehlen Sie den Backup-Job, aus dem wiederhergestellt werden soll.
  2. Zeitpunkt waehlen — Waehlen Sie das Backup-Datum. Bei GFS-Backups sehen Sie alle verfuegbaren Generationen.
  3. Dateien waehlen — Waehlen Sie einzelne Dateien, Ordner oder das gesamte Backup. Der Versions-Browser zeigt alle verfuegbaren Versionen einer Datei.
  4. 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:

JSON — appsettings.json
{
  "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:

EreignisBeschreibung
Backup fehlgeschlagenEin Client meldet einen fehlgeschlagenen Backup-Job
Client offlineKein Heartbeat seit definierter Zeit
Speicher kritischBackup-Ziel nähert sich der Kapazitaetsgrenze
Update verfuegbarNeue 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

RolleBeschreibungBerechtigungen
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.

  1. MFA in den Benutzer-Einstellungen aktivieren
  2. QR-Code mit Google Authenticator oder kompatibler App scannen
  3. Verifizierungscode eingeben
  4. 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.

HTTP
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

FeatureFreeProfessionalEnterprise
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

EditionPreis
FreeKostenlos
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:

  1. Lizenzschluessel im Management Dashboard eingeben.
  2. Der Server validiert den Schluessel und speichert die Lizenz.
  3. 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

Shell (als Administrator)
# Service installieren
SIT-FileSync.exe /install

# Service starten
net start SITFileSync

Deinstallation

Shell (als Administrator)
# Service stoppen
net stop SITFileSync

# Service deinstallieren
SIT-FileSync.exe /uninstall

Service vs. Desktop Modus

EigenschaftDesktopService
Benutzeranmeldung erforderlichJaNein
GUI verfuegbarJaNein (nur ueber Server)
Ausfuehrung im HintergrundNur wenn minimiertImmer
SystemstartPer Autostart/AufgabenplanerAutomatisch
Netzlaufwerk-ZugriffBenutzer-KontextService-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:

  1. Die neue Version wird heruntergeladen und per SHA-256 verifiziert.
  2. Der Service stoppt sich selbst.
  3. Die EXE wird ersetzt.
  4. Der Service startet mit der neuen Version.
  5. 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:

InterfaceWindowsLinux
IFileSyncEngineRobocopyRunnerrsync / eigene Engine
IDriveDetectorWMI/proc/mounts + udev
ICredentialProtectorDPAPIlibsecret / keyring
ISchedulerServiceschtasks.execron / systemd timer
INetworkMounterWNetAddConnection2mount.cifs

systemd Service

INI — /etc/systemd/system/sit-filesync.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
Shell
# 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:

YAML — docker-compose.yml
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:
Shell
# 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.

Basis-URL

https://msync.select-it.at/api/management

Heartbeat

Clients senden regelmaessig einen Heartbeat, um ihren Status zu melden.

POST /api/management/heartbeat
JSON — Request Body
{
  "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
}
StatusBeschreibung
200 OKHeartbeat empfangen. Antwort enthaelt ggf. Pending-Commands.
401 UnauthorizedFehlender oder ungueltiger API-Key.

Updates abfragen

Gibt die neueste verfuegbare Version zurueck.

GET /api/management/updates/latest
JSON — Response
{
  "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.

GET /api/management/updates/{id}/download
ParameterTypBeschreibung
idintID des Updates (aus /updates/latest)

Gibt die Datei als application/octet-stream zurueck.

Clients auflisten

Gibt eine Liste aller registrierten Clients zurueck.

GET /api/management/clients
JSON — Response
[
  {
    "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.

PUT /api/management/clients/{id}/config
ParameterTypBeschreibung
idGUIDClient-ID

Der Request-Body enthaelt die komplette oder partielle Konfiguration im JSON-Format.

Remote-Restore ausloesen

Loest einen Restore-Vorgang auf einem Client aus.

POST /api/management/clients/{id}/restore
JSON — Request Body
{
  "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).

GET /api/management/features
JSON — Response
{
  "edition": "Professional",
  "features": [
    "NetworkBackup",
    "S3Backup",
    "ScpBackup",
    "Scheduling",
    "RealtimeSync",
    "GfsRetention",
    "ManagementServer",
    "PrePostScripts",
    "Alerting"
  ]
}

Lizenz validieren

Prueft die Gueltigkeit einer Lizenz.

GET /api/management/license/validate
JSON — Response
{
  "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:

HTTP — API-Key
X-Api-Key: sk_live_a1b2c3d4e5f6...
HTTP — JWT Bearer Token
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Fehler-Responses

StatusBeschreibung
400 Bad RequestUngueltige Anfrage (fehlende Pflichtfelder, falsches Format)
401 UnauthorizedFehlende oder ungueltige Authentifizierung
403 ForbiddenKeine Berechtigung fuer diese Aktion
404 Not FoundRessource nicht gefunden (Client, Update, etc.)
429 Too Many RequestsRate-Limit ueberschritten
500 Internal Server ErrorServerfehler — bitte Support kontaktieren