Files
OneDriveBackupService/README.md

63 lines
2.3 KiB
Markdown

# 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