# OneDrive Backup Service Ein .NET 10 Worker-Service zum automatischen Erstellen und Hochladen von Backups auf OneDrive. Unterstützt Cron-basierte Backups sowie manuelles Triggern über `docker exec`. --- ## Inhaltsverzeichnis - [Features](#features) - [Manuelles Backup](#manuelles-backup) - [Umgebungsvariablen](#umgebungsvariablen) --- ## Features - Automatische Backups nach Cron-Schedule (`appsettings.json` / ENV) - Upload zu OneDrive über Microsoft Graph SDK - Behalten nur der letzten N Backups (`KeepLast`) - Unterstützung für manuelles Backup via `docker exec` - Lokale Zeitzone für Logs und Backup-Zeitstempel - Flexible Konfiguration über ENV oder `appsettings.json` --- ## Manuelles Backup Um ein Backup manuell auf einem laufenden Container auszuführen: ```bash docker exec -it onedrive-backup-server dotnet OneDriveBackupService.dll --run-once ``` * Das löst **ein sofortiges Backup** aus * Cron-Loop des Hauptcontainers bleibt ungestört * Backup-Dateien werden wie üblich nach OneDrive hochgeladen --- ## Umgebungsvariablen | Variable | Beschreibung | |----------------|-------------------------------------------------------------| | `Schedule` | Cron-Expression für automatische Backups | | `UploadRoot` | OneDrive Ordner für Backups | | `LocalRoot` | Lokaler Datenpfad für Backups | | `IncludeFile` | Textdatei mit allen unterordnern, die mit ins Backup sollen | | `KeepLast` | Anzahl zu behaltender Backups | | `TenantId` | Azure TenantId | | `ClientId` | Azure ClientId | | `ClientSecret` | Azure Client Secret | | `UserId` | OneDrive User Id | | `TZ` | Zeitzone für Logs / DateTime.Now (optional) | --- ## Hinweise * Die Backup-Dateien erhalten eindeutige Namen mit Timestamp: `backup_YYYYMMDD_HHMMSS.tar.gz` * Alte Backups werden automatisch gelöscht, basierend auf `KeepLast` * `docker exec --run-once` löst ein manuelles Backup aus, ohne den Cron-Loop zu stoppen