whysafe
Главная / Блог / Советы

Как я начинаю каждого Telegram-бота: структура проекта, которая не превращается в свалку

Первые боты у меня были одним файлом на 800 строк. Работало, но править было страшно. Сейчас каждый проект начинаю с одной и той же структуры, и вот она.

bot.pyhandlers/keyboards/.env
2 октября 2026Чтение — 5 минАвтор: Алексей, whysafe

Папки с первого дня

Даже если бот маленький, раскладываю сразу так:

Когда через полгода заказчик просит добавить раздел, я просто создаю новый файл в handlers и подключаю его. Ничего не ломается.

Токен никогда не в коде

Токен бота лежит в .env, а .env добавлен в .gitignore. Однажды увидеть свой токен в публичном репозитории и бегать его перевыпускать хватает, чтобы запомнить навсегда.

Роутеры вместо одного диспетчера

В aiogram 3 у каждого файла с обработчиками свой Router, а в bot.py они просто подключаются по очереди. Так сразу видно, какой раздел за что отвечает, а порядок подключения решает, какой обработчик сработает первым.

Анкеты через состояния

Если бот задаёт вопросы по очереди (имя, телефон, что нужно), это делается через FSM, машину состояний. Не надо хранить шаги в словарях и глобальных переменных, это первое, что ломается, когда пользователей становится больше одного.

Логи с первой строки

Подключаю logging сразу, ещё до первого обработчика. Когда клиент пишет «бот вчера вечером что-то не ответил», логи это единственный способ понять, что случилось.

Запуск на сервере

На VPS бот у меня работает как служба systemd с автоперезапуском. Сервер перезагрузился или бот упал, systemd поднимет его сам. Для большинства ботов хватает обычного polling, вебхук ставлю, когда нагрузка реально большая.

Короче

Отдельные папки, токен в .env, роутеры, FSM для анкет, логи и systemd. Это не «правильно, потому что так написано в книжке», а то, что реально экономит время, когда бот живёт дольше месяца.

Сколько стоит такой бот под ключ, расписал в статье сколько стоит Telegram-бот.

Алексей Сафонов, whysafe

Фрилансер-разработчик с 2023 года: игры на Unity, Telegram-боты, сайты и автоматизация на Python. 149 отзывов на Kwork. Пишу о том, что делаю сам каждый день. Есть вопрос по статье? Напишите мне в Telegram, отвечу.

Есть похожая задача?

Опишите её своими словами — отвечу, реально ли это, сколько займёт и сколько будет стоить. Оценка бесплатная. Услуги по теме — Telegram-боты и боты для MAX.

Обсудить задачу →
Читать дальше
Написать в Telegram →