🤖 AIogram Bot Base

Базовый шаблон для создания Telegram-ботов на aiogram 3.x с поддержкой асинхронности и современной архитектурой

Python 3.13 aiogram License

🚀 Быстрый старт

Предварительные требования

  • Python 3.10+
  • Telegram Bot Token (получите от @BotFather)

Установка и запуск

# Клонируйте репозиторий
git clone https://github.com/Vubni/aiogram-bot-base.git
cd aiogram-bot-base

# Создайте и активируйте виртуальное окружение
python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate    # Windows

# Установите зависимости
pip install -r requirements.txt

# Настройте переменные окружения
echo "BOT_TOKEN=YOUR_BOT_TOKEN" > .env

# Запустите бота
python main.py

📂 Структура проекта

aiogram-bot-base/
├── server.py                 # Точка входа приложения (возможность присоединить другие сервисы, например API)
├── create_bot.py                 # Создание объекта бота
├── aiogram_run.py                 # Запуск бота
├── core.py                 # Основные функции
├── requirements.txt        # Зависимости
├── config.py               # Конфигурация приложения (Секретные токены подтягиваются из .env)
├── database/               # Работа с базой данных
│   └── __init__.py
├── callback/               # Обработчики событий Callback
│   ├── start.py         # Обработка основных callback
│   ├── other.py         # Обработка потерянных callback
│   └── call_fsm.py           # Callback с состояниями
├── handlers/               # Обработчики событий сообщений
│   ├── start.py         # Обработка основных команд (/start, /help)
│   └── handlers_fsm.py           # Команды с состояниями
├── inline/               # Обработчики событий inline
│   └── inline_query.py           # Работа с inline событиями
├── payment/               # Обработчики событий платежа
│   └── payment.py           # Работа с платежами
├── web_app/               # Работа с данными аз web_app
│   └── main.py           # Работа с данными аз web_app
├── database/               # Базы данных
│   └── database.py           # Работа с базой данных PostgreSQL
├── FSM/               
│   └── fsm.py           # Взаимодействия с состояниями (доступно даже из функций вызванных отдельно) и состояния
├── keyboards/              # Клавиатуры
│   ├── inline_kbs.py            # Inline-клавиатуры
│   └── reply_kbs.py            # Reply-клавиатуры
├── Images/              # Папка для хранения фото для сообщений бота

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

Создайте файл .env в корне проекта:

BOT_TOKEN = '**********:***********************************'

DB_IP = '11.11.11.11'
DB_USER = 'user'
DB_PASSWORD = '12345'
DB_DB = 'bot'

KEY_ENCRYPTION = 'bLRw5rC6E5CETUU'

🛠️ Возможности

  • ✅ Полная поддержка асинхронности
  • ✅ Гибкая система обработки команд и колбэков
  • ✅ Встроенная система ограничения частоты запросов (throttling)
  • ✅ Конфигурация через переменные окружения
  • ✅ Готовая интеграция с базой данных (SQLite по умолчанию)
  • ✅ Структурированная архитектура для масштабирования
  • ✅ Гибкая система логгирования