109 lines
3.9 KiB
Markdown
109 lines
3.9 KiB
Markdown
# Конфигурация
|
||
|
||
Проект использует `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).
|
||
|
||
## 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): сколько файлов хранить.
|
||
|
||
## 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
|
||
```
|