63 lines
2.3 KiB
Markdown
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
|