Jobs
jobs is an array of backup jobs. Each job has a cron schedule, one or more sources, one or more storages, and a retention policy.
Fields
Schedule
Standard 5-field cron — minute hour day-of-month month day-of-week.
Even with a future-dated cron, a job can be triggered immediately from the UI (Run now) or via the REST API. Manual runs respect retention and notifiers exactly like scheduled runs. To disable manual runs, set server.permissions.allowManualRun: false.
Compression
¹ tar.gz uses pigz when it's on PATH (all cores); otherwise it falls back to single-threaded gzip transparently.
Aliases: gz → tar.gz, zst / zstd → tar.zst, xz → tar.xz. Omit compression to use plain tar (no compression).
The official Docker image ships tar, pigz, zstd, xz, and zip preinstalled. On bare metal, install whichever compressor matches the formats you use — snapr returns a clear error at run time if a required binary is missing.
Retention
retention.last is required and must be at least 1. After every successful run snapr keeps the N newest archives for that job and deletes the rest from every storage attached to the job.
Hook scripts
beforeScript and afterScript run arbitrary shell commands around the job — quiesce a service, flush caches, post-clean. Both fields are optional and accept multi-line YAML strings.
afterScript runs whether the job succeeded or failed.