telegram: token: "YOUR_TELEGRAM_BOT_TOKEN" admin_id: 123456789 # Optional list of admins (first is primary for alerts) admin_ids: - 123456789 paths: # JSON state file for artifacts artifact_state: "/opt/tg-bot/state.json" runtime_state: "/var/server-bot/runtime.json" # Optional env file with RESTIC_* variables restic_env: "/etc/restic/restic.env" thresholds: disk_warn: 80 load_warn: 2.0 high_load_warn: 3.0 alerts: enabled: true interval_sec: 60 cooldown_sec: 900 # Optional global dedup cooldown for notify() calls notify_cooldown_sec: 900 # If true, only critical load alerts are sent (no warn/OK) load_only_critical: false # Optional auto-mute windows per category auto_mute: - category: "load" start: "23:00" end: "08:00" # Auto-mute load when critical load fires (seconds) auto_mute_on_high_load_sec: 600 quiet_hours: enabled: false start: "23:00" end: "08:00" # Allow critical alerts during quiet hours allow_critical: true notify_recovery: true smart_enabled: true smart_interval_sec: 3600 smart_cooldown_sec: 21600 smart_temp_warn: 50 raid_enabled: true raid_interval_sec: 300 raid_cooldown_sec: 1800 disk_report: threshold: 90 cooldown_sec: 21600 top_dirs: 8 docker_dir: "/var/lib/docker" logs_dir: "/var/log" audit: enabled: true path: "/var/server-bot/audit.log" rotate_when: "W0" backup_count: 8 incidents: enabled: true path: "/var/server-bot/incidents.log" rotate_when: "W0" backup_count: 8 logging: enabled: true path: "/var/server-bot/bot.log" rotate_when: "W0" backup_count: 8 level: "INFO" safety: # If true, dangerous actions will be skipped dry_run: false reports: weekly: enabled: false day: "Sun" # Mon/Tue/Wed/Thu/Fri/Sat/Sun time: "08:00" # HH:MM server local time selftest: schedule: enabled: false time: "03:30" queue: max_pending_alert: 5 avg_wait_alert: 120 cooldown_sec: 300 external_checks: enabled: true state_path: "/var/server-bot/external_checks.json" timeout_sec: 5 interval_sec: 300 services: - name: "example-site" type: "http" url: "https://example.com" - name: "example-ssh" type: "tcp" host: "example.com" port: 22 arcane: base_url: "http://localhost:3552" api_key: "arc_..." env_id: 0 npmplus: base_url: "https://10.10.10.10:81/api" identity: "your@email.com" secret: "yourPassword" # Optional static token (not recommended if it expires) token: "" verify_tls: true alerts: enabled: true days: - 30 - 14 - 7 - 1 cooldown_sec: 86400 interval_sec: 3600 gitea: base_url: "http://localhost:3000" # Optional API token for private instances token: "" verify_tls: true openwrt: host: "10.10.10.1" user: "root" port: 22 # Optional identity file for SSH identity_file: "" # Disable strict host key checking for auto-accept strict_host_key_checking: false timeout_sec: 8 security: reboot_password: "CHANGE_ME" docker: # If true, discover containers by name/label autodiscovery: true # Enable docker watchdog notifications watchdog: true # Optional label filter: "key=value" label: "" # Name substrings used for discovery match: - "tg-" - "bot" # Alias -> real container name (overrides autodiscovery) aliases: tg-admin-bot: "tg-admin-bot" # Explicit list used by legacy modules containers: tg-admin-bot: name: "tg-admin-bot" url: "http://127.0.0.1:8080/health"