Skip to main content
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: gztar.gz, zst / zstdtar.zst, xztar.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