Files
tg-admin-bot/CONFIG.en.md

98 lines
2.7 KiB
Markdown

# Configuration
This project uses `config.yaml`. Start from `config.example.yaml`.
## telegram
- `token` (string, required): Telegram bot token.
- `admin_id` (int, required): Telegram user id with admin access.
## paths
- `artifact_state` (string): JSON file for artifact state.
- `restic_env` (string): Path to a file with RESTIC_* environment variables.
## thresholds
- `disk_warn` (int, percent): Disk usage warning threshold.
- `load_warn` (float): Load warning threshold.
- `high_load_warn` (float): Critical load threshold.
## alerts
- `enabled` (bool): Enable resource alerts.
- `interval_sec` (int): Poll interval.
- `cooldown_sec` (int): Cooldown between alerts.
- `notify_recovery` (bool): Send recovery notifications.
- `smart_enabled` (bool): Enable SMART health polling.
- `smart_interval_sec` (int): SMART poll interval.
- `smart_cooldown_sec` (int): SMART alert cooldown.
- `smart_temp_warn` (int): SMART temperature warning (C).
## audit
- `enabled` (bool): Enable audit logging.
- `path` (string): Log file path. Default `/var/server-bot/audit.log`.
- `rotate_when` (string): Rotation schedule for `TimedRotatingFileHandler`. Example `W0` for weekly on Monday.
- `backup_count` (int): How many rotated files to keep.
## arcane
- `base_url` (string): Arcane API base url.
- `api_key` (string): Arcane API key.
- `env_id` (int): Arcane environment id.
## npmplus
Used for SSL certificate status.
- `base_url` (string): NPMplus API base url, for example `https://10.10.10.10:81/api`.
- `identity` (string): Login email.
- `secret` (string): Login password.
- `token` (string): Optional static token (not recommended if it expires).
- `verify_tls` (bool): Set to `false` for self-signed TLS.
Token flow:
- First token: `POST /api/tokens` with `identity` and `secret`.
- Refresh: `GET /api/tokens` using the cached token.
## security
- `reboot_password` (string): Password required before reboot.
## docker
- `autodiscovery` (bool): Discover containers by name/label.
- `watchdog` (bool): Enable container watchdog notifications.
- `label` (string): Optional label filter `key=value`.
- `match` (list): Name substrings used for discovery.
- `aliases` (map): Alias -> real container name.
- `containers` (map): Explicit container list (legacy modules). Each item can define:
- `name` (string): Container name.
- `url` (string): Health URL for the URLs check.
Example:
```yaml
telegram:
token: "YOUR_TELEGRAM_BOT_TOKEN"
admin_id: 123456789
paths:
artifact_state: "/opt/tg-bot/state.json"
restic_env: "/etc/restic/restic.env"
audit:
enabled: true
path: "/var/server-bot/audit.log"
rotate_when: "W0"
backup_count: 8
npmplus:
base_url: "https://10.10.10.10:81/api"
identity: "your@email.com"
secret: "yourPassword"
verify_tls: false
```