{ "$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 } } }