# monitoring-tg Сервис мониторинга Telegram-каналов для портала. Он сохраняет сообщения в Postgres, раскладывает каналы по вертикалям/подразделам и выполняет AI-анализ через OpenAI-compatible endpoint, общий с другими сервисами портала. ## Доступ - Админские операции остаются за админом портала: portal прокидывает `X-User-Is-Admin=1`. - Отдел видит только свои подразделы, каналы, сообщения и промпты через `X-User-Department-Id`. - Руководитель отдела может создавать и редактировать подразделы своего отдела: portal прокидывает `X-User-Is-Department-Head=1`. - Пароли подразделов и IP allowlist удалены. ## Конфигурация Основные переменные: ```env TG_API_ID= TG_API_HASH= TG_PHONE= TG_SESSION_STRING= POSTGRES_HOST=postgres.monitoring-tg.svc.cluster.local POSTGRES_PORT=5432 POSTGRES_USER=parser POSTGRES_PASSWORD=parser POSTGRES_DB=parser PUBLIC_BASE_PATH=/api/monitoring-tg LLM_ENABLED=true LLM_BASE_URL=http://10.2.3.5:8002 LLM_API_KEY= LLM_MODEL=qwen2.5-14b ``` Для локальной админской отладки можно задать `ADMIN_PASSWORD`, но в проде доступ должен идти через портал. ## Запуск в k8s Манифесты лежат в `k8s/`. Перед применением нужно заполнить `k8s/secrets.yaml` реальными Telegram-кредами и, при необходимости, `LLM_API_KEY`. ```bash kubectl apply -k k8s ``` Миграции выполняются entrypoint-ом контейнера перед запуском API. ## Структура ```text src/parser_bot/ ├── api/ FastAPI роуты + Pydantic-схемы ├── db/ SQLAlchemy модели + сессии ├── scheduler/ APScheduler-воркер периодического опроса ├── telegram/ Telethon-клиент ├── web/static/ страницы UI без бандлера ├── config.py pydantic-settings └── main.py FastAPI lifespan + uvicorn alembic/ миграции k8s/ манифесты для портала ```