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, you can trigger a job immediately from the UI (Run now) or through 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 is 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, clean up afterwards. Both fields are optional and accept multi-line YAML strings.
afterScript runs whether the job succeeded or failed.Example
snapr.yaml