- Updated README to reflect changes in config file structure and usage. - Modified error messages for user registration to be more generic. - Cleaned up startup logic to utilize the new config import functionality when requested. - Adjusted JSON config structure to support user definitions.
220 lines
5 KiB
JSON
220 lines
5 KiB
JSON
{
|
|
"volumes": [
|
|
{
|
|
"name": "local-volume",
|
|
"config": {
|
|
"backend": "directory",
|
|
"path": "/mydata",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
{
|
|
"name": "nfs-volume",
|
|
"config": {
|
|
"backend": "nfs",
|
|
"server": "nfs.example.com",
|
|
"exportPath": "/data",
|
|
"port": 2049,
|
|
"version": "4",
|
|
"readOnly": false
|
|
}
|
|
},
|
|
{
|
|
"name": "smb-volume",
|
|
"config": {
|
|
"backend": "smb",
|
|
"server": "smb.example.com",
|
|
"share": "shared",
|
|
"username": "user",
|
|
"password": "${SMB_PASSWORD}",
|
|
"vers": "3.0",
|
|
"domain": "WORKGROUP",
|
|
"port": 445,
|
|
"readOnly": false
|
|
}
|
|
},
|
|
{
|
|
"name": "webdav-volume",
|
|
"config": {
|
|
"backend": "webdav",
|
|
"server": "webdav.example.com",
|
|
"path": "/remote.php/webdav",
|
|
"username": "user",
|
|
"password": "${WEBDAV_PASSWORD}",
|
|
"port": 80,
|
|
"readOnly": false,
|
|
"ssl": true
|
|
}
|
|
}
|
|
],
|
|
"repositories": [
|
|
{
|
|
"name": "local-repo",
|
|
"config": {
|
|
"backend": "local",
|
|
"path": "/var/lib/zerobyte/repositories"
|
|
},
|
|
"compressionMode": "auto"
|
|
},
|
|
{
|
|
"name": "s3-repo",
|
|
"config": {
|
|
"backend": "s3",
|
|
"bucket": "mybucket",
|
|
"accessKeyId": "${ACCESS_KEY_ID}",
|
|
"secretAccessKey": "${SECRET_ACCESS_KEY}"
|
|
},
|
|
"compressionMode": "auto"
|
|
},
|
|
{
|
|
"name": "gcs-repo",
|
|
"config": {
|
|
"backend": "gcs",
|
|
"bucket": "mybucket",
|
|
"projectId": "my-gcp-project",
|
|
"credentialsJson": "${GCS_CREDENTIALS}"
|
|
}
|
|
},
|
|
{
|
|
"name": "azure-repo",
|
|
"config": {
|
|
"backend": "azure",
|
|
"container": "mycontainer",
|
|
"accountName": "myaccount",
|
|
"accountKey": "${AZURE_KEY}"
|
|
}
|
|
},
|
|
{
|
|
"name": "rclone-repo",
|
|
"config": {
|
|
"backend": "rclone",
|
|
"remote": "myremote",
|
|
"path": "backups/zerobyte"
|
|
}
|
|
},
|
|
{
|
|
"name": "webdav-repo",
|
|
"config": {
|
|
"backend": "webdav",
|
|
"server": "webdav.example.com",
|
|
"path": "/remote.php/webdav",
|
|
"username": "user",
|
|
"password": "${WEBDAV_PASSWORD}",
|
|
"port": 80,
|
|
"ssl": true
|
|
}
|
|
},
|
|
{
|
|
"name": "sftp-repo",
|
|
"config": {
|
|
"backend": "sftp",
|
|
"host": "sftp.example.com",
|
|
"port": 22,
|
|
"user": "sftpuser",
|
|
"privateKey": "${SFTP_PRIVATE_KEY}",
|
|
"path": "/backups"
|
|
}
|
|
}
|
|
],
|
|
"backupSchedules": [
|
|
{
|
|
"name": "local-volume-local-repo",
|
|
"volume": "local-volume",
|
|
"repository": "local-repo",
|
|
"cronExpression": "0 2 * * *",
|
|
"retentionPolicy": { "keepLast": 7, "keepDaily": 7 },
|
|
"includePatterns": ["important-folder"],
|
|
"excludePatterns": ["*.tmp", "*.log"],
|
|
"enabled": true,
|
|
"notifications": ["slack-alerts"]
|
|
}
|
|
],
|
|
"notificationDestinations": [
|
|
{
|
|
"name": "slack-alerts",
|
|
"config": {
|
|
"type": "slack",
|
|
"webhookUrl": "${SLACK_WEBHOOK_URL}",
|
|
"channel": "#backups",
|
|
"username": "zerobyte",
|
|
"iconEmoji": ":floppy_disk:"
|
|
}
|
|
},
|
|
{
|
|
"name": "email-admin",
|
|
"config": {
|
|
"type": "email",
|
|
"smtpHost": "smtp.example.com",
|
|
"smtpPort": 587,
|
|
"username": "admin@example.com",
|
|
"password": "${EMAIL_PASSWORD}",
|
|
"from": "zerobyte@example.com",
|
|
"to": ["admin@example.com"],
|
|
"useTLS": true
|
|
}
|
|
},
|
|
{
|
|
"name": "discord-backups",
|
|
"config": {
|
|
"type": "discord",
|
|
"webhookUrl": "${DISCORD_WEBHOOK_URL}",
|
|
"username": "zerobyte",
|
|
"avatarUrl": "https://example.com/avatar.png",
|
|
"threadId": "1234567890"
|
|
}
|
|
},
|
|
{
|
|
"name": "gotify-notify",
|
|
"config": {
|
|
"type": "gotify",
|
|
"serverUrl": "https://gotify.example.com",
|
|
"token": "${GOTIFY_TOKEN}",
|
|
"path": "/message",
|
|
"priority": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "ntfy-notify",
|
|
"config": {
|
|
"type": "ntfy",
|
|
"serverUrl": "https://ntfy.example.com",
|
|
"topic": "zerobyte-backups",
|
|
"priority": "high",
|
|
"username": "ntfyuser",
|
|
"password": "${NTFY_PASSWORD}"
|
|
}
|
|
},
|
|
{
|
|
"name": "pushover-notify",
|
|
"config": {
|
|
"type": "pushover",
|
|
"userKey": "${PUSHOVER_USER_KEY}",
|
|
"apiToken": "${PUSHOVER_API_TOKEN}",
|
|
"devices": "phone,tablet",
|
|
"priority": 1
|
|
}
|
|
},
|
|
{
|
|
"name": "telegram-notify",
|
|
"config": {
|
|
"type": "telegram",
|
|
"botToken": "${TELEGRAM_BOT_TOKEN}",
|
|
"chatId": "123456789"
|
|
}
|
|
},
|
|
{
|
|
"name": "custom-shoutrrr",
|
|
"config": {
|
|
"type": "custom",
|
|
"shoutrrrUrl": "${SHOUTRRR_URL}"
|
|
}
|
|
}
|
|
],
|
|
"recoveryKey": "${RECOVERY_KEY}",
|
|
"users": [
|
|
{
|
|
"username": "admin",
|
|
"password": "${ADMIN_PASSWORD}"
|
|
}
|
|
]
|
|
}
|