Базовый шаблон для создания 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.pyaiogram-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 по умолчанию)
- ✅ Структурированная архитектура для масштабирования
- ✅ Гибкая система логгирования