Add built-in backup of the data folder (BL-0044)

The reader owns a scheduled backup into BACKUP (Compose: BACKUP_PATH mounted at
/backup, off when unset). A run pauses the scraper queue through its control
API, waits (bounded) until no job is active, writes a verified tar.gz of DATA
with db.json from memory and scraper/queue.json stored paused, excludes
runtime/lock/pid/temp files, resumes only a queue it paused, then applies
count- or day-based retention to its own archive names only. Schedule,
retention, "Back up now" and last result live in Settings > Service health.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MaashkinoozheandClaude Opus 5.5 committed 2026-10-22 18:03:21 +02:00
1 parent fcc50d576c
commit 086f6353f8
15 files changed
+904 -11

No files matched your search

+3
View File
@@ -9,6 +9,9 @@ DATA_PATH=./data
SCRAPER_DATA_PATH=./data/scraper
SENTINEL_DATA_PATH=./data/sentinel
SCRAPER_TOKEN_PATH=./.secrets/scraper_token
# Built-in backups of DATA_PATH (docs/backup.md): an existing folder, ideally on another
# disk/NAS, writable by uid 1000. Unset = backups off (./backup is then mounted unused).
# BACKUP_PATH=./backup
TZ=Europe/Berlin
COOKIE_SECURE=0
# Optional server-enforced reading windows. Day keys: 0=Sunday through 6=Saturday.