1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Zesty Backup System Configuration
# Multi-provider cloud backup utility
[]
# Provider: s3, aws, contabo, digitalocean, wasabi, minio, r2, gcs, google, azure, b2, backblaze
= "s3"
# For S3-compatible providers (AWS, Contabo, DigitalOcean Spaces, Wasabi, MinIO, Cloudflare R2)
# Leave endpoint empty for AWS (it will be auto-generated)
# For S3-compatible services, set the endpoint URL
= "https://s3.amazonaws.com"
= "us-east-1"
= "your-bucket-name"
= "your-access-key"
= "your-secret-key"
# For Google Cloud Storage (enterprise)
# provider = "gcs" # or "google"
# bucket = "my-backups"
# credentials_path = "/path/to/service-account-key.json" # Optional: uses GOOGLE_APPLICATION_CREDENTIALS env var if not set
# For Azure Blob Storage (enterprise)
# provider = "azure"
# account_name = "your-account-name"
# account_key = "your-account-key" # Optional: can also use AZURE_STORAGE_ACCOUNT_KEY env var
# bucket = "my-container" # Azure uses "container" instead of "bucket"
# For Backblaze B2 (uncomment and configure)
# account_id = "your-account-id"
# application_key = "your-application-key"
# bucket_id = "your-bucket-id"
# For Google Drive (consumer-grade)
# provider = "googledrive" # or "gdrive"
# access_key = "ya29.a0AfH6SMC..." # OAuth2 access token
# bucket_id = "folder-id-here" # Optional: Google Drive folder ID
# For OneDrive (consumer-grade)
# provider = "onedrive"
# access_key = "eyJ0eXAiOiJKV1QiLCJub..." # OAuth2 access token
# bucket_id = "/drive/root:/Backups" # Optional: folder path
# For Dropbox (consumer-grade)
# provider = "dropbox"
# access_key = "sl.Bk..." # Dropbox access token
# bucket_id = "/Backups" # Optional: folder path
# For Box (consumer-grade)
# provider = "box"
# access_key = "T9cE5asOhuy8CC6..." # OAuth2 access token
# bucket_id = "123456789" # Optional: folder ID
# For pCloud (consumer-grade)
# provider = "pcloud"
# access_key = "your-api-access-token" # Get from https://my.pcloud.com/#page=apikeys
# region = "us" # "us" (default) or "eu" for European data center
# bucket_id = "/Backups" # Optional: folder path
# For MEGA (requires MEGAcmd - install from https://mega.nz/cmd)
# provider = "mega"
# account_name = "your-email@example.com" # MEGA email
# account_key = "your-password" # MEGA password
# bucket_id = "/Backups" # Optional: folder path
[]
# Local backup directory
= "./backups"
# Main project path to backup
= "/path/to/your/project"
# Additional paths to include (files or directories)
= [
# "/etc/nginx/nginx.conf",
# "/etc/nginx/sites-available/your-site",
]
# Incremental backups per day (local)
= 4
# Upload to cloud storage interval in hours
= 24
# Retention: keep backups for N days
= 7
# Compression level (0-22, higher = better compression but slower)
# Recommended: 3 for balanced speed/compression, 22 for maximum compression
= 3
= "zst"
# Paths to exclude from backup (patterns)
= [
# "node_modules",
# ".git",
# "*.log",
]
[]
# Database backup (optional)
# Supported types: postgres, mariadb, mysql, mongodb, cassandra, scylla, redis, sqlite
= false
# type = "postgres" # Default: postgres
# host = "localhost"
# port = 5432
# database = "your_database"
# username = "your_user"
# password = "your_password" # Optional: can also use DB_PASSWORD env var or .env file
[]
# Systemd services to backup (optional)
= [
# "your-service.service",
]
# Systemd timers to backup (optional)
= [
# "your-timer.timer",
]
# Command outputs to capture (general pattern for any command)
# This allows you to backup the output of any command as a text file
= [
# { command = "docker", args = ["ps", "-a"], output_file = "docker_containers.txt", enabled = true },
# { command = "systemctl", args = ["list-units", "--type=service"], output_file = "systemd_services.txt", enabled = false },
]
# Presets for common backup scenarios
[]
# Nginx configuration presets
= false # Backup /etc/nginx/nginx.conf and sites-available/enabled
= [
# "example.com",
# "another-site.com",
]
# Crontab backup
= false
# crontab_user = null # null = current user, or specify username like "www-data"
# User config files (from home directory)
= [
# ".zshrc",
# ".bashrc",
# ".vimrc",
# ".gitconfig",
]
# user_configs_home = null # null = $HOME, or specify path like "/home/username"
# Common /etc files and directories
= [
# "hosts",
# "fstab",
]
= [
# "ssl",
# "letsencrypt",
]
[]
= "info"
= "./logs"