#Full example
A complete snapr.yaml exercising the most common features. A working dev variant lives at examples/dev/snapr.yaml.
logs:
path: /var/log/snapr
system: true
perJob: true
maxSizeMB: 100
maxBackups: 7
maxAgeDays: 30
compress: true
server:
enabled: true
address: '0.0.0.0:8080'
secret: env:SNAPR_JWT_SECRET
defaultLanguage: en
auth:
enabled: true
username: admin
password: env:SNAPR_ADMIN_PASSWORD
tokenExpiration: 60
permissions:
allowBackupDownload: true
allowManualRun: true
showConfig: true
ui:
enabled: true
jobs:
- name: files-to-s3
schedule: '0 2 * * *'
compression: tar.gz
sources:
- type: local
path: /var/data
excludes: ['*.tmp', '*.log']
storages:
- name: s3-primary
type: s3
bucket: backups
region: us-east-1
accessKeyId: env:S3_KEY
secretAccessKey: env:S3_SECRET
storageClass: STANDARD_IA
retention:
last: 7
- name: postgres-nightly
schedule: '0 3 * * *'
compression: tar.gz
sources:
- type: postgresql
host: db.internal
port: 5432
username: postgres
password: env:PG_PASSWORD
database: app
storages:
- name: local-disk
type: local
path: /var/backups
- name: offsite-sftp
type: sftp
host: offsite.example.com
username: backup
privateKey: /etc/snapr/keys/sftp_id_ed25519
path: /snapr
retention:
last: 30
encryption:
type: openssl
cipher: aes-256-cbc
password: env:BACKUP_ENC_PASSWORD
notifiers:
- type: telegram
botToken: env:TG_BOT_TOKEN
chatId: '-1001234567890'
onFailure: true
- name: huge-archive-split
schedule: '0 4 * * 0'
compression: tar.gz
sources:
- type: local
path: /var/lib/bigdata
storages:
- name: offsite-sftp
type: sftp
host: offsite.example.com
username: backup
privateKey: /etc/snapr/keys/sftp_id_ed25519
path: /snapr/big
retention:
last: 4
encryption:
type: openssl
password: env:BACKUP_ENC_PASSWORD
split:
chunkSize: 1GB