config/config.example.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "./config.schema.json",
"servers": [
{
"name": "Main",
"url": "http://actual-main:5006",
"password": "your_password_here",
"syncId": "your_sync_id_here",
"dataDir": "/app/dataDir_Main_temp",
"encryptionPassword": "your_budget_encryption_password_if_encrypted",
"scheduleAlerts": {
"staleAfterDays": 3,
"alerts": [
{ "id": "rent", "schedule": "Rent - Apartment", "graceDays": 6 },
{ "id": "salary", "schedule": "Salary", "graceDays": 3, "earlyDays": 5, "amountTolerancePct": 0 },
{ "id": "gym", "schedule": "Gym", "enabled": false }
]
}
},
{
"name": "Secondary",
"url": "http://actual-Secondary:5006",
"password": "your_password_here",
"syncId": "your_sync_id_here",
"dataDir": "/app/dataDir_Secondary_temp",
"scheduleAlerts": { "alerts": [] },
"sync": {
"schedule": "0 4 * * *",
"maxRetries": 3,
"baseRetryDelayMs": 5000
},
"logging": {
"level": "DEBUG",
"format": "json"
}
}
],
"sync": {
"maxRetries": 5,
"baseRetryDelayMs": 3000,
"schedule": "03 03 */2 * *",
"autoRetry": {
"enabled": true,
"maxAttempts": 1,
"delayMinutes": 31
}
},
"logging": {
"level": "INFO",
"format": "pretty",
"fileFormat": "json",
"includeAccountNames": false,
"logDir": "./logs",
"rotation": {
"enabled": true,
"maxSize": "10M",
"interval": "1d",
"maxFiles": 30,
"compress": "gzip"
},
"syslog": {
"enabled": false,
"host": "localhost",
"port": 514,
"protocol": "udp",
"facility": 16
},
"performance": {
"enabled": true,
"thresholds": {
"slow": 1000,
"verySlow": 5000
}
}
},
"healthCheck": {
"port": 3000,
"host": "0.0.0.0",
"trustProxy": false,
"hsts": false,
"auth": {
"type": "none"
},
"dashboard": {
"enabled": true,
"allowedOrigins": [],
"allowConfigWrites": false,
"auth": {
"type": "none"
}
}
},
"syncHistory": {
"dbPath": "data/sync-history.db",
"retentionDays": 90
},
"prometheus": {
"enabled": true,
"includeDefaultMetrics": true
},
"notifications": {
"branding": true,
"notifyOnSuccess": "errors_only",
"email": {
"enabled": false,
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"auth": {
"user": "your-email@gmail.com",
"pass": "your-app-specific-password"
},
"from": "your-email@gmail.com",
"to": ["admin@example.com"]
},
"telegram": {
"enabled": false,
"botToken": "YOUR_BOT_TOKEN",
"chatId": "YOUR_CHAT_ID",
"pollInterval": 2000
},
"webhooks": {
"slack": [],
"discord": [],
"telegram": [],
"generic": [
{
"name": "example-ntfy-json",
"url": "https://ntfy.sh/your-topic",
"notifyOnSuccess": "always",
"headers": { "Authorization": "Bearer YOUR_NTFY_TOKEN" }
}
]
},
"ntfy": {
"enabled": false,
"url": "https://ntfy.sh/your-topic",
"token": "",
"priorityOnFailure": "high",
"priorityOnSuccess": "default",
"tags": ["money_with_wings"],
"icon": "https://raw.githubusercontent.com/agigante80/Actual-sync/main/unraid/actual-sync-icon.png"
},
"thresholds": {
"consecutiveFailures": 3,
"failureRate": 0.5,
"ratePeriodMinutes": 60
},
"rateLimit": {
"minIntervalMinutes": 15,
"maxPerHour": 4
}
}
}