1 02 Configuration
sophrosyne edited this page 2026-10-06 21:53:18 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Конфигурация

Полное описание параметров конфигурации СТАНКИН Анти-Спам. Конфигурация разделена на статическую (переменные окружения) и динамическую (настройки в базе данных).

Переменные окружения

Переменные окружения задаются в файле .env. Изменение требует перезапуска приложения.

База данных

Переменная Обязательная По умолчанию Описание
DATABASE_URL Да — Строка подключения к PostgreSQL

Telegram-бот

Переменная Обязательная По умолчанию Описание
BOT_TOKEN Да — Токен бота от @BotFather
TEST_BOT_TOKEN Нет — Токен тестового бота (для режима TESTING)
TESTING Нет false Режим тестирования: проверяются все сообщения, включая от админов
NOTIFICATION_CHAT_ID Да 0 ID чата для уведомлений (чат управления)

Треды уведомлений

ID тредов (topic ID) в супергруппе управления для категоризации уведомлений:

Переменная По умолчанию Описание
NOTIFICATION_CHAT_98_SPAM_THREAD 1 Тред для спама с уверенностью >= 98%
NOTIFICATION_CHAT_94_SPAM_THREAD 2 Тред для спама с уверенностью 94-98%
NOTIFICATION_CHAT_NS_SPAM_THREAD 3 Тред для неуверенного спама
NOTIFICATION_CHAT_MUTED_THREAD 4 Тред для ограниченных пользователей
NOTIFICATION_CHAT_BACKUP_THREAD 5 Тред для отправки бэкапов БД
NOTIFICATION_CHAT_WHITELIST_THREAD 6 Тред для уведомлений о добавлении пользователей в белый список

Веб-панель

Переменная Обязательная По умолчанию Описание
SECRET_KEY Да — Секретный ключ для подписи сессий и JWT
PANEL_PORT Нет 12523 Порт веб-панели
PERMANENT_SESSION_LIFETIME Нет 60 Время жизни сессии в минутах
REMEMBER_COOKIE_DURATION Нет 10080 Время жизни cookie "Запомнить меня" в минутах (10080 = 7 дней)

Пути

Переменная По умолчанию Описание
LOGS_DIR logs Директория для логов
MODELS_DIR models Директория с ML-моделями
ORT_DISABLE_TELEMETRY 1 Отключение телеметрии ONNX Runtime. Обход segfault onnxruntime 1.29.0 на Python 3.14 при импорте (static initialization order fiasco в POSIX telemetry, PR microsoft/onnxruntime#29880). Без этой переменной бот падает по SIGSEGV при первом BERT-инференсе в Linux-образах.
TZ Europe/Moscow Таймзона для логов, уведомлений и логики бота (стандартная переменная POSIX). Задаётся в Dockerfile, может переопределяться через docker-compose или .env.

Прокси

Переменная Обязательная По умолчанию Описание
PROXY_URL Нет — SOCKS5 прокси для Telegram Bot API. Формат: socks5://user:password@host:port

Мониторинг (Sentry)

Переменная По умолчанию Описание
SENTRY_DSN — DSN для Sentry. Если не указан, мониторинг отключён
SENTRY_TRACES_SAMPLE_RATE 0.1 Процент трейс-сессий (0.0-1.0)
SENTRY_ENABLE_LOGS false Включить отправку логов в Sentry (требует Sentry SDK 2.35.0+)
SENTRY_LOGS_LEVEL INFO Уровень логов для structured logs
SENTRY_BREADCRUMBS_LEVEL INFO Уровень логов для breadcrumbs
SENTRY_EVENT_LEVEL ERROR Уровень логов для events

OpenAI (опционально)

Переменная Обязательная По умолчанию Описание
OPENAI_API_KEY Нет — API ключ OpenAI для ChatGPT-анализа. Если не указан, проверка отключена

Поддержка

Переменная По умолчанию Описание
HELPDESK_EMAIL support@example.com Email технической поддержки

Настройки в базе данных

Настройки в БД изменяются через веб-панель без перезапуска приложения. Поддерживаются глобальные настройки и индивидуальные настройки для каждого чата.

Модель

Ключ По умолчанию Описание
BERT_MODEL finetuned_rubert_tiny2_raw Имя директории с BERT-моделью

Пороги BERT

Ключ По умолчанию Описание
BERT_THRESHOLD 0.945 Порог уверенности для классификации спама
BERT_SURE_THRESHOLD 0.98 Порог высокой уверенности (безусловный спам)

Проверки

Ключ По умолчанию Описание
CHECK_REPLY_MARKUP true Проверять наличие inline-клавиатуры у сообщения
CHECK_CAS true Проверять пользователя через CAS
CHECK_LOLS true Проверять пользователя через LOLS
CHECK_EMAIL_NOT_SURE true Проверять email в сообщениях серой зоны
ENABLE_CHATGPT false Включить ChatGPT-анализ для серой зоны

Действия

Ключ По умолчанию Описание
ENABLE_DELETING true Удалять спам-сообщения
ENABLE_AUTOMUTING false Автоматически ограничивать отправителей спама
COLLECT_ALL_MESSAGES false Собирать все сообщения в БД (для анализа)

Логирование

Настройки логирования доступны только в per-chat настройках. Глобально они не настраиваются, так как лог-топик настраивается индивидуально для каждого чата.

Ключ По умолчанию Описание
LOG_TO_TOPIC false Логировать все сообщения в отдельный топик чата управления
LOG_TOPIC_ID 0 ID топика для логирования (0 — отключено)

При включённом LOG_TO_TOPIC и заданном LOG_TOPIC_ID > 0 бот отправляет в указанный топик чата управления уведомление о каждом сообщении (кроме сообщений от администраторов и системных пользователей):

  • текстовые сообщения — с вердиктом RuBert (оценка BERT);
  • нетекстовые сообщения (стикер, фото, документ и т.д.) — с типом контента, без BERT;
  • сообщения от whitelisted-пользователей — с полным анализом (BERT + CAS + LOLS + ChatGPT) и меткой «Вайтлистед», но без действий мьюта/удаления.

Если анализ BERT завершается ошибкой, лог всё равно отправляется с вердиктом N/A — сообщение не теряется.

Интерфейс

Ключ По умолчанию Описание
PER_PAGE 10 Количество записей на странице в веб-панели

Резервное копирование

Ключ По умолчанию Описание
BACKUP_ENABLED false Включить автоматические бэкапы БД
BACKUP_START_TIME 03:00 Время начала бэкапа (формат HH:MM)
BACKUP_INTERVAL_HOURS 24 Интервал между бэкапами в часах