b78d1eac02be6cba661c5be2795b4448d5f71ad4
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 удалены.
Конфигурация
Основные переменные:
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.
kubectl apply -k k8s
Миграции выполняются entrypoint-ом контейнера перед запуском API.
Структура
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/ манифесты для портала
Description
Languages
Go
56.5%
Python
41.9%
Shell
0.7%
Dockerfile
0.6%
Mako
0.3%