Files
tg-admin-bot/CONFIG.md
2026-02-08 02:21:15 +03:00

130 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Конфигурация
Проект использует `config.yaml`. Начни с `config.example.yaml`.
## telegram
- `token` (string, обяз.): токен бота.
- `admin_id` (int, обяз.): Telegram user id администратора.
## paths
- `artifact_state` (string): JSON файл состояния артефактов.
- `restic_env` (string): путь к файлу с RESTIC_* переменными.
## thresholds
- `disk_warn` (int, %): порог предупреждения по диску.
- `load_warn` (float): порог предупреждения по нагрузке.
- `high_load_warn` (float): порог для критической нагрузки.
## alerts
- `enabled` (bool): включить алерты.
- `interval_sec` (int): интервал опроса.
- `cooldown_sec` (int): кулдаун между алертами.
- `notify_recovery` (bool): уведомлять о восстановлении.
- `smart_enabled` (bool): SMART проверки.
- `smart_interval_sec` (int): интервал SMART.
- `smart_cooldown_sec` (int): кулдаун SMART.
- `smart_temp_warn` (int): порог температуры (C).
## disk_report
- `threshold` (int): порог диска для авто‑снимка.
- `cooldown_sec` (int): кулдаун между снимками.
- `top_dirs` (int): сколько директорий показывать.
- `docker_dir` (string): путь к docker данным.
- `logs_dir` (string): путь к логам.
## audit
- `enabled` (bool): включить аудит.
- `path` (string): путь к лог-файлу. По умолчанию `/var/server-bot/audit.log`.
- `rotate_when` (string): режим ротации (`TimedRotatingFileHandler`), например `W0`.
- `backup_count` (int): сколько файлов хранить.
## incidents
- `enabled` (bool): включить лог инцидентов.
- `path` (string): путь к лог-файлу. По умолчанию `/var/server-bot/incidents.log`.
- `rotate_when` (string): режим ротации (`TimedRotatingFileHandler`), например `W0`.
- `backup_count` (int): сколько файлов хранить.
## external_checks
- `enabled` (bool): включить фоновые проверки.
- `state_path` (string): файл состояния для аптайма, по умолчанию `/var/server-bot/external_checks.json`.
- `timeout_sec` (int): таймаут проверки в секундах.
- `interval_sec` (int): интервал фоновых проверок.
- `services` (list): список проверок.
- `name` (string): название сервиса.
- `type` (string): `http`, `tcp`, `ping`.
- `url` (string): URL для `http`.
- `host` (string): хост для `tcp`/`ping`.
- `port` (int): порт для `tcp`.
## arcane
- `base_url` (string): base url API Arcane.
- `api_key` (string): ключ API Arcane.
- `env_id` (int): ID окружения Arcane.
## npmplus
Используется для статуса SSL сертификатов.
- `base_url` (string): base url API, например `https://10.10.10.10:81/api`.
- `identity` (string): email логин.
- `secret` (string): пароль.
- `token` (string): опционально статический токен (не рекомендуется при истечении).
- `verify_tls` (bool): `false` для self-signed TLS.
- `alerts.enabled` (bool): включить уведомления по истечению.
- `alerts.days` (list): пороги в днях (например 30/14/7/1).
- `alerts.cooldown_sec` (int): кулдаун между одинаковыми алертами.
- `alerts.interval_sec` (int): интервал проверки.
Логика токена:
- первый токен: `POST /api/tokens` с `identity` и `secret`.
- refresh: `GET /api/tokens` с текущим токеном.
## security
- `reboot_password` (string): пароль для подтверждения reboot.
## docker
- `autodiscovery` (bool): автодискавери по имени/label.
- `watchdog` (bool): уведомления о контейнерах.
- `label` (string): фильтр label `key=value`.
- `match` (list): подстроки для поиска контейнеров.
- `aliases` (map): alias -> реальное имя.
- `containers` (map): явный список (legacy). Можно задавать:
- `name` (string)
- `url` (string) для URLs проверки
Пример:
```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
```