# Инфраструктура

## Общая схема
Проект представляет собой веб-приложение с бэкендом на Python (FastAPI) и фронтендом в виде PWA. Основные компоненты:

- **Бэкенд-сервер** – обрабатывает API-запросы, управляет БД, запускает сбор новостей.
- **База данных** – PostgreSQL, основное хранилище.
- **Очередь задач** – внутренняя система на основе таблицы в БД для асинхронной обработки сборов.
- **Интеграция с мессенджерами** – боты для Telegram, MAX, VK, которые принимают команды и отправляют ленты.
- **Парсеры** – модули для извлечения новостей из RSS, HTML, Telegram-каналов, VK-сообществ, MAX, YouTube, GitHub, Reddit, Google News.
- **AI-обработка** – использование внешнего API для перевода и суммаризации (Cloudflare Workers AI).
- **Платежи** – интеграция с Robokassa.

## Деплой и доступность
- Приложение работает на сервере под управлением Linux.
- Веб-сервер (Nginx) выступает обратным прокси для статики и API.
- Для доступа к некоторым внешним ресурсам используется VPN-туннель (AmneziaWG), обеспечивающий обход географических ограничений.
- Статические файлы (картинки, иконки) раздаются через CDN для ускорения загрузки.

## Безопасность
- Все соединения защищены TLS.
- Аутентификация через российские ID-сервисы (VK, MAX, Яндекс) в соответствии с законодательством РФ.
- Хранение паролей пользователей (для email-входа).
- Регулярное резервное копирование БД.
- Защита от брутфорса (Fail2Ban).

## Мониторинг и логи
- Логирование всех API-запросов и ошибок в структурированном формате.
- Ежедневный анализ логов для выявления аномалий.
- Уведомления администратора о критических ошибках через Telegram.

## Обновления
- Код проекта хранится в Git-репозитории.
- Публичная часть (webapp) автоматически синхронизируется с GitHub.
- Для обновления бэкенда используется скрипт graceful restart, обеспечивающий минимальное время простоя.
