# .env.watchdog — конфигурация sidecar-watchdog (контейнер orchestrator-watchdog). # Канонический example (ORCH-102, ADR-001 D5; симметрия .env.example/.env.staging.example). # # ⚠️ СЕМАНТИКА ФАЙЛА-НОСИТЕЛЯ: sidecar-контейнер читает ТОЛЬКО этот файл # (compose: env_file {path: .env.watchdog, required: false}). Ключ WATCHDOG_*, # положенный в .env, для sidecar ИНЕРТЕН (его видит лишь контейнер орка). # Отсутствие файла НЕ ломает `docker compose up` (required: false); нет токена → # fail-safe: watchdog пишет алерты в логи, но не отправляет. # # Создание на хосте: cp .env.watchdog.example .env.watchdog → заполнить два токена. # DO NOT COMMIT реальный .env.watchdog — этот файл только шаблон (зеркало # .env.staging.example); реальные значения живут на хосте. # # Нормативы: # * C-1 (ORCH-100): у watchdog СВОЙ Telegram-бот — независимый канал алертов. # Переиспользовать токен орка (ORCH_TELEGRAM_BOT_TOKEN) ЗАПРЕЩЕНО: упавший # орк не сможет сообщить о себе своим же ботом. # * Когерентность порта: WATCHDOG_METRICS_URL следует за прод-портом # (ORCH_DEPLOY_PROD_TARGET_PORT) — сменил порт орка → обнови URL здесь. # * Key-set этого файла = блок WATCHDOG_* в .env.example (канон ключей); # синхронность держит tests/test_lite_setup_doc.py (key-sync, TC-02b). # Значения = дефолты watchdog/config.py. WATCHDOG_ENABLED=true WATCHDOG_INTERVAL_S=30 WATCHDOG_HTTP_TIMEOUT_S=5 WATCHDOG_COOLDOWN_S=1800 WATCHDOG_METRICS_URL=http://127.0.0.1:8500/metrics WATCHDOG_ORCH_DOWN_TICKS=3 WATCHDOG_MEM_PCT=90 WATCHDOG_DISK_CRIT_ENABLED=false WATCHDOG_DISK_CRIT_PCT=97 WATCHDOG_DISK_PATHS=/repos,/app/data WATCHDOG_AGENT_HUNG_MIN=20 WATCHDOG_AGENT_CPU_FLOOR=0.01 WATCHDOG_STAGE_STUCK_MIN=120 WATCHDOG_QUEUE_DEPTH=20 WATCHDOG_CONTAINERS=orchestrator WATCHDOG_DOCKER_SOCK=/var/run/docker.sock WATCHDOG_DEPS= WATCHDOG_TG_BOT_TOKEN= WATCHDOG_TG_CHAT_ID=