sources array, and one job can combine multiple sources — for example an application database plus its upload directory — into a single archive.
snapr.yaml
Shared fields
Every source entry must settype. The remaining fields depend on the type, but a few conventions apply across all of them:
Required external tools
Most database sources shell out to the vendor’s own dump utility. snapr does not bundle these tools — they must be onPATH (or inside the snapr Docker image you build or extend).
If encryption is enabled,
openssl must also be on PATH.
How remote sources are fetched
Database, S3, and bunny.net sources are pulled to the snapr host first, then archived and uploaded to the configured storages. snapr does not stream data directly from the source to the storage backend. This has practical implications:- The host needs free disk space at least equal to the uncompressed source size, plus headroom for the resulting archive.
- The first run downloads everything. Object-store sources (
s3,bunny) support a persistent local cache viasyncPath— later runs only fetch files whose size or modification time changed. WithoutsyncPath, every run re-downloads the full tree. - For very large buckets, factor in egress costs and transfer time.
syncPath is set, the cache directory is preserved between runs.
Source types
Local files
Files and directories on the host filesystem.
PostgreSQL
Logical dumps via
pg_dump.MySQL
Logical dumps via
mysqldump.MariaDB
mariadb-dump with a mysqldump fallback.MongoDB
Dumps via
mongodump, with optional oplog.Redis
Live RDB snapshots or RDB file copies.
SQLite
SQL dumps of a single database file.
S3
Files from any S3-compatible bucket.
bunny.net
Files from a bunny.net Storage Zone.