Современный Telegram-бот для проверки доменов на пригодность для Reality/VLESS прокси с поддержкой мультиязычности и геолокации IP-адресов.⚡ Domain Reality Checker Bot — это усовершенствованный Telegram-бот на базе Python и библиотеки Aiogram для проверки доменов на пригодность
- 🎯 Контекстные ответы — результаты приходят в нужную тему
- 🔄 Поддержка всех команд — работают команды с префиксом, упоминания и ответы
-
DNS - разрешение A-записи (IPv4)## 💬 Умная работа в группах
-
TLS - проверка версии (TLSv1.3), шифра, сертификата
-
HTTP - поддержка HTTP/2, HTTP/3, TTFB, редиректы### 📋 Краткие отчёты с reply
-
Порты - сканирование TCP портов (80, 443, 8443)- В группах бот всегда отвечает через reply на оригинальное сообщение
-
География - определение страны, города, провайдера- Отправляется краткий отчёт для экономии места в чате
-
Безопасность - проверка в чёрных списках Spamhaus- К краткому отчёту добавляется кнопка "📄 Полный отчёт в ЛС"
-
Ping - измерение задержки до сервера
-
WHOIS - информация о сроке действия домена### 📄 Полные отчёты в личных сообщениях
-
Оценка - автоматический вердикт о пригодности для Reality- Полные отчёты автоматически отправляются в ЛС пользователя
-
Команда
!full domain.comв группе → полный отчёт приходит в ЛС
🌍 Геолокация IP-адресов- Кнопка "📄 Полный отчёт в ЛС" → умная ссылка на бота с автоматическим запросом
-
Определение страны и города по IP- Безопасность: deep link работает для любого пользователя
-
Информация о провайдере/ISP
-
Получение координат (широта, долгота)💡 Как это работает: Кнопка содержит ссылку вида
https://t.me/botname?start=full_domain.com, которая автоматически откроет бота и запросит полный отчёт. Никакой предварительной настройки не требуется! -
Поддержка IPv4 адресов
-
Работа с базой GeoLite2-City### 🔄 Поведение по типам чатов
| Тип чата | Краткий отчёт | Полный отчёт | Кнопка |
-
Интерфейс на русском и английском языках| Личные сообщения | В том же чате | В том же чате | "Полный отчёт" |
-
Автоопределение языка из настроек Telegram| Группы/Супергруппы | Reply в группе | Отправка в ЛС | "📄 Полный отчёт в ЛС" |
-
Переключение языка командой
/language| Темы в супергруппах | Reply в теме | Отправка в ЛС | "📄 Полный отчёт в ЛС" | -
Сохранение выбора в Redis
🚀 Быстрый запуск с Dockereality/VLESS прокси. Бот работает асинхронно, использует Redis для управления очередью задач и кэширования результатов, а также предоставляет краткие и полные отчёты о проверке доменов.
-
Умные ответы через reply в группах## ✨ Новые возможности
-
Краткие отчёты в чате + inline кнопка "Полный в ЛС"
-
Полные отчёты автоматически в личные сообщения### 🚀 Система повторных попыток (Retry Logic)
-
Поддержка тем в супергруппах- Exponential backoff с настраиваемым jitter
-
Команды с префиксом (!check, !full)- Автоматические повторы для Redis, Telegram API и проверки доменов
-
Упоминания бота (@botname domain.com)- Гибкая конфигурация времени ожидания и количества попыток
-
Авторизация групп через whitelist
-
Connection Pool для Redis (35 подключений)- Батч-обработка по 3 домена за раз для оптимизации
-
Асинхронная обработка задач- Подробная статистика выполнения (успешно, из кэша, ошибки)
-
Кэширование результатов на 1 час
-
Graceful shutdown с корректным закрытием ресурсов### 📈 Система аналитики
-
Батч-обработка множественных доменов- Сбор метрик использования бота и проверок доменов
-
Прогресс-бары для долгих операций- Детальные отчеты для администратора (/analytics)
-
Трекинг популярных доменов и пользовательской активности
-
Аналитика использования бота### 🔒 Безопасность для групповых чатов
-
История последних 10 проверок- Авторизация групп через переменные окружения
-
Лимиты запросов (защита от спама)- Автоматический выход из неавторизованных групп
-
Админ-панель с управлением- Гибкое управление списком разрешенных групп
-
Inline кнопки для удобной навигации
- Контекстная работа с топиками Telegram
-
/start- Запустить бота -
/help- Показать справку### 🎛️ Групповой режим работы -
/check <домен>- Краткая проверка- Команды с префиксом (!check, !full, !help) -
/full <домен>- Полная проверка- Упоминания бота (@botname domain.com) -
/ip <адрес>- Информация об IP адресе ⭐ NEW- Ответы на сообщения бота с новыми доменами -
/mode- Сменить режим вывода (full/short)- Настраиваемый префикс команд -
/history- История проверок- Умные ответы в группах: краткие отчёты с reply + кнопка "Полный в ЛС" -
/language- Выбрать язык интерфейса- Полные отчёты в ЛС: автоматическая отправка полных отчётов в личные сообщения
-
!check <домен>- Проверка в группе -
!full <домен>- Полная проверка в группеБот выполняет комплексную проверку доменов и возвращает отчёт, включающий: -
!help- Справка для группы -
@botname <домен>- Упоминание бота- 🌐 DNS: Разрешение A-записи (IPv4) -
📡 Скан портов: Проверка открытых TCP-портов (80, 443, 8443)
-
/admin- Панель администратора- 🚫 Spamhaus: Проверка IP в чёрных списках Spamhaus -
/analytics- Статистика использования- 🟢 Ping: Задержка до сервера (в миллисекундах) -
/reset_queue- Сбросить очередь- 🔒 TLS: Версия TLS (например, TLSv1.3), шифр, срок действия сертификата -
/clearcache- Очистить кэш- 🌐 HTTP: Поддержка HTTP/2 и HTTP/3, TTFB (время до первого байта), редиректы, сервер, наличие WAF и CDN -
/groups- Управление группами- 📄 WHOIS: Срок действия домена -
🛰 Оценка пригодности: Вердикт, пригоден ли домен для Reality (учитывает отсутствие CDN, поддержку HTTP/2, TLSv1.3 и пинг < 50 мс)
services:✅ A: 185.232.233.233
bot:🟢 Ping: ~25.0 ms
image: ghcr.io/dignezzz/bot-reality:latest 🔒 TLS
command: python bot.py✅ TLSv1.3 поддерживается
environment: 🌐 HTTP
- BOT_TOKEN=${BOT_TOKEN}❌ HTTP/2 не поддерживается
- ADMIN_ID=${ADMIN_ID}❌ HTTP/3 не поддерживается
- REDIS_HOST=redis🟢 WAF не обнаружен
- BOT_USERNAME=${BOT_USERNAME}🟢 CDN не обнаружен
depends_on: 🛰 Оценка пригодности
- redis❌ Не пригоден: HTTP/2 отсутствует
restart: unless-stopped[Полный отчёт]
worker:
image: ghcr.io/dignezzz/bot-reality:latest### Пример полного отчёта
command: python worker.py```
environment:🔍 Проверка: google.com:443
- BOT_TOKEN=${BOT_TOKEN}🌐 DNS
- REDIS_HOST=redis✅ A: 142.250.74.14
depends_on:📡 Скан портов
- redis🟢 TCP 80 открыт
restart: unless-stopped🟢 TCP 443 открыт
deploy:🔴 TCP 8443 закрыт
replicas: 3🌍 География и ASN
📍 IP: SE / Stockholm County / Stockholm
redis:🏢 ASN: AS15169 Google LLC
image: redis:7-alpine✅ Не найден в Spamhaus
restart: unless-stopped🟢 Ping: ~7.7 ms
✅ TLSv1.3 поддерживается
### 2. Создайте .env файл✅ TLS_AES_256_GCM_SHA384 используется
```env⏳ TLS сертификат истекает через 65 дн.
BOT_TOKEN=ваш_токен_от_BotFather🌐 HTTP
ADMIN_ID=ваш_telegram_id✅ HTTP/2 поддерживается
BOT_USERNAME=имя_вашего_бота✅ HTTP/3 (h3) поддерживается
```⏱️ TTFB: 0.13 сек
🔁 Redirect: https://www.google.com/
### 3. Запустите🧾 Сервер: Google Web Server
```bash🟢 WAF не обнаружен
docker-compose up -d⚠️ CDN обнаружен: Google
```📄 WHOIS
📆 Срок действия: 2028-09-14T04:00:00
### 4. Проверьте логи🛰 Оценка пригодности
```bash❌ Не пригоден: CDN обнаружен (Google)
docker-compose logs -f```
```env- /check <domain> — Краткая проверка домена
BOT_TOKEN= # Токен от @BotFather- /full <domain> — Полная проверка домена
ADMIN_ID= # Telegram ID администратора- /mode — Переключить режим вывода (краткий/полный)
BOT_USERNAME= # Имя бота (для deep links)- /history — Показать последние 10 проверок
### Групповые команды
### Redis- `!check <domain>` — Краткая проверка в группе
```env- `!full <domain>` — Полная проверка в группе
REDIS_HOST=redis # Хост Redis (по умолчанию: redis)- `!help` — Справка по командам в группе
REDIS_PORT=6379 # Порт Redis- `@botname <domain>` — Упоминание бота для проверки
REDIS_PASSWORD= # Пароль (если есть)- Ответ на сообщение бота с новым доменом
```env- /reset_queue — Сбросить очередь проверок
GROUP_MODE_ENABLED=true # Включить работу в группах- /clearcache — Очистить кэш результатов
GROUP_COMMAND_PREFIX=! # Префикс команд- /analytics — Показать аналитику использования
GROUP_OUTPUT_MODE=short # short или full- /groups — Управление авторизованными группами
AUTHORIZED_GROUPS=-100123,-100456 # ID разрешенных групп (через запятую)- /groups_add <ID> — Добавить группу в авторизованные
AUTO_LEAVE_UNAUTHORIZED=false # Автоматически покидать неразрешенные группы- /groups_remove <ID> — Удалить группу из авторизованных
```- /groups_current — Показать ID текущей группы
PRIVATE_RATE_LIMIT_PER_MINUTE=10 # Проверок в минуту (личка)### Быстрая настройка команд
PRIVATE_DAILY_LIMIT=100 # Проверок в день (личка)Полная заготовка команд для настройки в @BotFather находится в файле [`BOTFATHER_COMMANDS.txt`](BOTFATHER_COMMANDS.txt).
GROUP_RATE_LIMIT_MINUTES=5 # Интервал между проверками в группе
GROUP_DAILY_LIMIT=50 # Проверок в день (группа)#### Основные команды для @BotFather:
/setcommands
GEOIP2_DB_PATH=GeoLite2-City.mmdb # Путь к базе GeoIP2full - 📄 Полная проверка домена
GEOIP2_AUTO_UPDATE=true # Автообновление базыmode - ⚙️ Переключить режим вывода
```history - 📜 Показать последние проверки
SAVE_APPROVED_DOMAINS=false # Сохранять пригодные домены```
AUTO_DELETE_GROUP_MESSAGES=true # Автоудаление сообщений в группах/setdescription
AUTO_DELETE_TIMEOUT=300 # Время до удаления (секунды)Бот для проверки доменов на пригодность для Reality/VLESS прокси. Проверяет DNS, TLS, HTTP/2, ping, WHOIS и выдает краткие/полные отчеты. Поддерживает работу в группах с умными ответами.
- Групповой режим: Включить возможность добавления в группы
-
Python 3.9+- Инлайн-режим: По желанию для расширенного функционала
-
Redis 6.0+
-
GeoLite2-City.mmdb (для функции /ip)💡 Полный список команд и настроек смотрите в
BOTFATHER_COMMANDS.txt
# Клонировать репозиторий### Основные настройки
git clone https://github.com/DigneZzZ/bot-reality.git```env
cd bot-realityBOT_TOKEN=your-telegram-bot-token # Токен бота от @BotFather
ADMIN_ID=123456789 # ID администратора
# Создать виртуальное окружениеREDIS_HOST=redis # Хост Redis
python -m venv venvREDIS_PORT=6379 # Порт Redis
source venv/bin/activate # Linux/MacREDIS_PASSWORD= # Пароль Redis (опционально)
# или venv\Scripts\activate # Windows```
# Установить зависимости### Настройки групповой работы
pip install -r requirements.txt```env
GROUP_MODE_ENABLED=true # Включить работу в группах
# Скопировать .envGROUP_COMMAND_PREFIX=! # Префикс команд в группах
cp .env.sample .envGROUP_OUTPUT_MODE=short # Режим вывода в группах: short (краткий) или full (полный)
# Отредактировать .envAUTHORIZED_GROUPS=-1001234567890,-1009876543210 # ID разрешенных групп
AUTO_LEAVE_UNAUTHORIZED=false # Автоматически покидать неавторизованные группы
# Запустить RedisBOT_USERNAME=your_bot_username # Имя пользователя бота для deep links
docker run -d -p 6379:6379 redis:7-alpine```
# Запустить бота### Дополнительные настройки
python bot.py```env
SAVE_APPROVED_DOMAINS=false # Сохранять список пригодных доменов
# В другом терминале запустить worker```
python worker.py
```## 🔒 Настройка безопасности для групп
### Загрузка GeoIP2 базы### 1. Получение ID группы
```bashДобавьте бота в группу и используйте команду:
# Скачать GeoLite2-City.mmdb```
python download_geoip2.py/groups_current
Добавьте ID в переменную окружения:
## 📊 Примеры использования```env
AUTHORIZED_GROUPS=-1001234567890,-1009876543210
### Проверка домена```
👤 Пользователь: /check google.com### 3. Автоматический выход
Для автоматического выхода из неавторизованных групп:
🤖 Бот:```env
🔍 Проверка: google.comAUTO_LEAVE_UNAUTHORIZED=true
✅ A: 142.250.74.14```
🟢 Ping: ~7.7 ms
🔒 TLS: TLSv1.3## 🧵 Работа с темами в супергруппах
✅ HTTP/2 поддерживается
✅ HTTP/3 поддерживаетсяБот автоматически определяет тему (топик), в которой его упомянули, и отвечает именно в ней:
🟢 WAF не обнаружен
❌ Не пригоден: CDN обнаружен- 📱 Организованность — обсуждения не смешиваются между темами
[📄 Полный отчет] [🔄 Перепроверить]- 🔄 Поддержка всех команд — работают команды с префиксом, упоминания и ответы
## �🚀 Быстрый запуск с Docker
### Информация об IP
```1. Убедитесь, что установлены [Docker](https://docs.docker.com/get-docker/) и [Docker Compose](https://docs.docker.com/compose/install/).
👤 Пользователь: /ip 8.8.8.8
2. Создайте файл `.env` с токеном Telegram-бота, полученным от `@BotFather`:
🤖 Бот: ```bash
🌐 Информация об IP адресе echo "BOT_TOKEN=your-telegram-bot-token" > .env
🌐 IP адрес: 8.8.8.8
🌍 Страна: United States (US)3. Создайте файл docker-compose.yml:
🏙️ Город: Mountain View ```yaml
🔌 Провайдер: Google LLC services:
📍 Координаты: 37.4056, -122.0775 bot:
image: ghcr.io/dignezzz/bot-reality:latest
### Выбор языка command: python bot.py
``` environment:
👤 Пользователь: /language - BOT_TOKEN=${BOT_TOKEN}
- REDIS_HOST=redis
🤖 Бот: - REDIS_PORT=6379
🌐 Выберите язык интерфейса: depends_on:
[🇷🇺 Русский] [🇬🇧 English] - redis
``` restart: unless-stopped
healthcheck:
## 🏗️ Архитектура test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
``` timeout: 5s
┌─────────────┐ retries: 3
│ Telegram │ logging:
│ Users │ driver: json-file
└──────┬──────┘ options:
│ max-size: "10m"
▼ max-file: "3"
┌─────────────┐ ┌──────────────┐ compress: "true"
│ bot.py │───▶│ localization │ worker:
│ (handlers) │ │ (i18n) │ container_name: domain-worker
└──────┬──────┘ └──────────────┘ image: ghcr.io/dignezzz/bot-reality:latest
│ command: python worker.py
▼ environment:
┌─────────────┐ ┌──────────────┐ - BOT_TOKEN=${BOT_TOKEN}
│ Redis │◀───│ redis_queue │ - REDIS_HOST=redis
│ (cache + │ │ (queue) │ - REDIS_PORT=6379
│ queue) │ └──────────────┘ depends_on:
└──────┬──────┘ - redis
│ restart: unless-stopped
▼ healthcheck:
┌─────────────┐ ┌──────────────┐ test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
│ worker.py │───▶│ checker.py │ interval: 30s
│ (async │ │ (domain │ timeout: 5s
│ workers) │ │ checks) │ retries: 3
└─────────────┘ └──────────────┘ deploy:
│ replicas: 3
▼ logging:
┌──────────────┐ driver: json-file
│ GeoIP2 │ options:
│ (geoip2 │ max-size: "10m"
│ integration) │ max-file: "3"
└──────────────┘ compress: "true"
``` redis:
container_name: domain-redis
## 📦 Основные модули image: redis:7
restart: unless-stopped
- **bot.py** - Главный файл с обработчиками команд healthcheck:
- **worker.py** - Асинхронные воркеры для проверки доменов test: ["CMD", "redis-cli", "ping"]
- **checker.py** - Логика проверки доменов (DNS, TLS, HTTP, etc.) interval: 10s
- **redis_queue.py** - Управление очередью задач в Redis timeout: 3s
- **localization.py** - Система мультиязычности retries: 5
- **geoip2_integration.py** - Интеграция с GeoIP2 logging:
- **analytics.py** - Сбор и анализ статистики driver: json-file
- **retry_logic.py** - Система повторных попыток options:
- **progress_tracker.py** - Прогресс-бары для операций max-size: "5m"
max-file: "2"
## 🔧 Настройка в @BotFather compress: "true"
start - 🚀 Запустить бота ```bash
help - ℹ️ Показать справку docker compose up -d
check - 🔍 Краткая проверка домена ```
full - 📄 Полная проверка домена
ip - 🌐 Информация об IP адресе5. Проверьте логи для подтверждения запуска:
mode - ⚙️ Сменить режим вывода ```bash
history - 📜 История проверок docker compose logs -f
language - 🌍 Выбрать язык ```
admin - 🔐 Панель администратора
```## � Лимиты и ограничения
### Описание бота### Лимиты для пользователей
```- **10 проверок в минуту** на пользователя
Бот для проверки доменов на пригодность для Reality/VLESS. - **100 проверок в день** на пользователя
Проверяет DNS, TLS, HTTP/2, ping, безопасность. - **Автоматическая блокировка** при превышении лимитов
Определяет геолокацию IP. Поддержка RU/EN.
```### Система наказаний
- **5+ нарушений** → временная блокировка
Полная настройка в файле `BOTFATHER_COMMANDS.txt`- **Прогрессивные тайм-ауты**: 1 мин → 5 мин → 15 мин → 1 час
- **Автоматическое снятие** блокировок по истечении времени
## 📚 Документация
### Производительность
- **MULTILANGUAGE.md** - Подробности о мультиязычности- **Асинхронная обработка** для высокой пропускной способности
- **IMPROVEMENTS_CRITICAL.md** - Критические улучшения- **Redis кэширование** результатов на 1 час
- **ALL_IMPROVEMENTS_SUMMARY.md** - Полная сводка всех обновлений- **Батч-обработка** для множественных проверок
- **DEPLOYMENT_QUICK_GUIDE.md** - Быстрый гайд по деплою- **Автоматические повторы** при сбоях
- **GEOIP_FEATURES.md** - Возможности GeoIP2
## 🏗️ Архитектура
## 🤝 Поддержка и обратная связь
### Компоненты системы
- **Вопросы**: [GitHub Issues](https://github.com/DigneZzZ/bot-reality/issues)```
- **Предложения**: Pull Requests приветствуются┌─────────────┐ ┌─────────────┐ ┌─────────────┐
- **Связь**: Telegram [@DigneZzZ](https://t.me/DigneZzZ)│ Telegram │───▶│ Bot │───▶│ Redis │
│ Updates │ │ (bot.py) │ │ Queue │
## 📄 Лицензия└─────────────┘ └─────────────┘ └─────────────┘
│ │
MIT License. Подробности в файле [LICENSE](LICENSE). ▼ ▼
┌─────────────┐ ┌─────────────┐
## 🏆 Благодарности │ Analytics │ │ Worker │
│ Collector │ │ (worker.py) │
- [Aiogram](https://github.com/aiogram/aiogram) - Telegram Bot API framework └─────────────┘ └─────────────┘
- [Redis](https://redis.io/) - In-memory data store │ │
- [MaxMind](https://www.maxmind.com/) - GeoLite2 database ▼ ▼
- [Docker](https://docker.com/) - Containerization platform ┌─────────────┐ ┌─────────────┐
│ Metrics │ │ Domain │
--- │ Storage │ │ Checker │
└─────────────┘ └─────────────┘
<div align="center">```
**Made with ❤️ by [DigneZzZ](https://github.com/DigneZzZ)**### Модули
- **`bot.py`** — основная логика бота и обработка команд
Если проект полезен, поставьте ⭐!- **`worker.py`** — воркер для выполнения проверок доменов
- **`checker.py`** — модуль проверки доменов (DNS, TLS, HTTP, etc.)
</div>- **`redis_queue.py`** — управление очередью задач в Redis
- **`retry_logic.py`** — система повторных попыток с экспоненциальным backoff
- **`progress_tracker.py`** — прогресс-бары и батч-обработка
- **`analytics.py`** — сбор и анализ метрик использования
## 🛠️ Локальная разработка
### Требования
- Python 3.9+
- Redis 6.0+
- Docker & Docker Compose
### Установка для разработки
1. Клонируйте репозиторий:
```bash
git clone https://github.com/DigneZzZ/bot-reality.git
cd bot-reality
-
Создайте виртуальное окружение:
python -m venv venv source venv/bin/activate # Linux/Mac # или venv\Scripts\activate # Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте переменные окружения в
.env -
Запустите Redis:
docker run -d -p 6379:6379 redis:7
-
Запустите бота и воркер:
python bot.py & python worker.py
- Установите Python 3.11+ и Redis.
- Клонируйте репозиторий:
git clone https://github.com/dignezzz/bot-reality.git cd bot-reality - Создайте виртуальное окружение и установите зависимости:
python -m venv venv source venv/bin/activate # На Windows: venv\Scripts\activate pip install -r requirements.txt
- Настройте переменные окружения:
export BOT_TOKEN=your-telegram-bot-token export REDIS_HOST=localhost export REDIS_PORT=6379
- Запустите бота:
python bot.py
- В отдельном терминале запустите воркер:
python worker.py redis-cli --version
# Статус контейнеров
docker-compose ps
# Логи всех сервисов
docker-compose logs -f
# Логи конкретного сервиса
docker-compose logs -f bot
docker-compose logs -f worker
# Мониторинг Redis
docker exec -it domain-redis redis-cli monitor- Команда
/analytics— детальная аналитика для администратора - Автоматический сбор метрик по пользователям и доменам
- Отслеживание производительности и ошибок
Мы приветствуем вклад в развитие проекта!
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/AmazingFeature) - Зафиксируйте изменения (
git commit -m 'Add some AmazingFeature') - Отправьте ветку (
git push origin feature/AmazingFeature) - Откройте Pull Request
- Используйте GitHub Issues для сообщения об ошибках
- Предоставьте подробное описание проблемы
- Включите логи и шаги для воспроизведения
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
- Aiogram — современная асинхронная библиотека для Telegram Bot API
- Redis — быстрое хранилище данных в памяти
- Docker — контейнеризация и оркестрация
- OpenAI — ИИ-ассистент в разработке
- OpeNode.xyz — поддержка проекта
- 🌐 Веб-интерфейс для управления ботом
- 📊 Расширенная аналитика с графиками
- 🔄 API для интеграции с внешними сервисами
- 🎯 Машинное обучение для улучшения оценки доменов
- 🔒 Дополнительные проверки безопасности
🌟 Если проект оказался полезным, поставьте звездочку!
Made with ❤️ by DigneZzZ and AI
aiogram: Асинхронный фреймворк для Telegram-ботов.redis: Клиент для взаимодействия с Redis.httpx,h2: Проверка HTTP/2 и HTTP/3.requests,python-whois: Запросы к внешним API и WHOIS.ping3,dnspython: Пинг и DNS-запросы.aiohttp: Асинхронные HTTP-запросы.
Полный список в requirements.txt.
Найдите бота в Telegram и начните взаимодействие:
/start: Приветственное сообщение с инлайн-кнопками./check <домен>: Краткий отчёт (например,/check example.com)./full <домен>: Полный отчёт (например,/full example.com)./ping: Проверка работоспособности бота./history: Последние 10 проверок пользователя.
- Отправьте домен напрямую:
example.com(краткий отчёт). - Отправьте несколько доменов через запятую или перенос строки:
example.com, google.com - Нажмите инлайн-кнопку "Полный отчёт" для получения детализированного результата.
- Скорость: 10 проверок за 30 секунд.
- Дневной лимит: 100 проверок на пользователя.
- Штрафы: Некорректные запросы могут привести к временной блокировке (от 1 минуты до 1 часа).
Для предотвращения сбоев Redis настройте параметр ядра Linux:
sudo sysctl vm.overcommit_memory=1
echo "vm.overcommit_memory=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -pЛоги хранятся в файлах:
bot.log: Логи бота.worker.log: Логи воркеров.checker.log: Логи проверок.redis_queue.log: Логи очереди.
Логи в Docker ограничены 10 МБ (3 файла с сжатием).
- Бот и воркеры: Проверка
/healthна порту 8080 (каждые 30 секунд). - Redis: Проверка
redis-cli ping(каждые 10 секунд).
Docker-образы автоматически собираются и публикуются в GitHub Container Registry через GitHub Actions. Конфигурация в .github/workflows/docker.yml.
- Храните
BOT_TOKENв.envи не публикуйте его. - Используйте переменные окружения вместо жёстко закодированных значений.
- Регулярно обновляйте зависимости (
pip install -r requirements.txt --upgrade).
- Клонируйте репозиторий:
git clone https://github.com/dignezzz/bot-reality.git cd bot-reality - Скопируйте
.env.sampleв.envи настройте:cp .env.sample .env nano .env
- Соберите и запустите:
docker compose up --build -d
Разработано neonode.cc. Лицензия: MIT. Свяжитесь для обратной связи или предложений!