Деплой бота на aiogram: подключил репозиторий - бот работает

Бот на aiogram 3 готов и работает на ноутбуке, но при закрытии крышки умирает? Подключите репозиторий к Dada Cloud - платформа соберёт бота и запустит его как постоянный процесс. Long polling работает без домена, вебхук получает HTTPS-адрес. Бесплатный тариф, серверы в России.

Почему ботов на aiogram деплоят сюда

Long polling без домена

Бот на aiogram с dp.start_polling запускается как фоновый воркер: постоянный процесс, публичный адрес не нужен и не выдаётся.

Вебхук - с готовым HTTPS

Если используете setup_application и aiohttp, приложение получает адрес с валидным сертификатом - его и передаёте в set_webhook.

Сборка по requirements.txt

Достаточно, чтобы aiogram был в зависимостях. Dockerfile писать не нужно, командная строка не нужна.

FSM-состояния переживают перезапуск

MemoryStorage теряет диалоги при каждом деплое. Подключите managed PostgreSQL или Redis рядом - и сценарии продолжатся с того же шага.

Упал - поднимется сам

Необработанное исключение в хендлере или разрыв связи с Telegram - процесс перезапустится автоматически.

Данные в России (152-ФЗ)

Данные пользователей бота хранятся на серверах в РФ - то, что требует закон о персональных данных.

Как задеплоить бота на aiogram

Шесть шагов от локального скрипта до бота, который работает круглосуточно.

01

Зафиксируйте зависимости

aiogram должен быть в requirements.txt - по этому файлу платформа поймёт, что проект на Python, и поставит зависимости при сборке.

02

Уберите токен из кода

Замените строку с токеном на чтение переменной окружения: os.environ["BOT_TOKEN"]. Локально удобно держать .env, но в репозиторий он попадать не должен.

03

Создайте приложение в режиме воркера

Для long polling включите режим «фоновый воркер, бот без HTTP». Для вебхука создавайте обычное приложение - оно получит HTTPS-адрес.

04

Подключите репозиторий

Подключите GitHub - дальше каждый пуш в основную ветку будет собирать и выкатывать новую версию. Без git подойдёт zip-архив.

05

Задайте переменные окружения

BOT_TOKEN, идентификаторы админов, ключи внешних API задаются в консоли и приходят в процесс при старте.

06

Подключите базу под FSM

Создайте PostgreSQL рядом и переведите хранилище состояний с MemoryStorage на постоянное - тогда деплой не будет ронять пользователей в середине сценария.

Сколько стоит хостинг aiogram-бота

Реальные тарифы платформы и честное сравнение с арендой своего VPS.

ТарифЦенаЧто входит
Free0 ₽/месОдин бот с базой, без привязки карты. Ограничение - по объёму ресурсов, а не по сроку.
Startup990 ₽/мес5 приложений, 2 базы данных, бэкапы 7 дней - бот, админка и фоновый воркер рассылок.
Business2 900 ₽/мес20 приложений, 10 баз данных, бэкапы 30 дней, приоритетная поддержка.
Свой VPSсравнимо по железуVPS дешевле по железу. Но systemd, бэкапы базы и перезапуск после падения - это ваше время.

Что важно знать заранее

Три места, где деплой aiogram-бота обычно спотыкается.

Две копии бота с одним токеном конфликтуют

Если локальная копия продолжает опрашивать Telegram, апдейты будут уходить то ей, то боевому боту. Остановите локальный процесс после деплоя или заведите отдельного тестового бота.

MemoryStorage теряет диалоги при деплое

Состояния FSM в памяти процесса стираются при каждой новой сборке - пользователь застревает в середине сценария. Для боевого бота нужно постоянное хранилище.

Файлы на диске не переживают сборку

Скачанные фото и документы, записанные на локальный диск, при новом деплое исчезнут. Храните их в объектном хранилище, а ссылки - в базе.

Деплой aiogram-бота - частые вопросы

Long polling или вебхук - что выбрать для aiogram?

Long polling проще: dp.start_polling, публичный адрес не нужен, бот запускается в режиме фонового воркера. Вебхук быстрее реагирует и экономнее на больших нагрузках, но требует HTTPS-адреса и aiohttp-сервера в коде. Начинайте с polling, переходите на вебхук, когда упрётесь.

Как задеплоить бота на aiogram 3?

Подключите репозиторий, где aiogram есть в requirements.txt, включите режим фонового воркера, задайте BOT_TOKEN в переменных окружения - платформа соберёт и запустит бота. Обычно это занимает пару минут.

Где хранить BOT_TOKEN?

В переменных окружения приложения - они задаются в консоли. В репозиторий токен класть нельзя: Telegram отзывает засветившиеся токены.

Почему бот теряет состояние диалога после деплоя?

Скорее всего используется MemoryStorage: состояния FSM живут в памяти процесса и стираются при перезапуске. Подключите PostgreSQL или Redis как хранилище - тогда сценарий продолжится с того же шага.

Нужен ли Dockerfile?

Нет, если aiogram-бот собирается по requirements.txt. Dockerfile пригодится, если нужна нестандартная системная зависимость - например ffmpeg для обработки голосовых.

Можно запустить два бота - тестового и боевого?

Да, это два приложения с разными токенами. На бесплатном тарифе помещается одно, второе — на Startup. Один и тот же токен в двух процессах использовать нельзя: Telegram будет отдавать апдейты то одному, то другому.

Как посмотреть, почему бот молчит?

Логи процесса видны в панели. Частые причины: упал на старте из-за неверного токена, конфликт getUpdates с локально запущенной копией, или необработанное исключение в хендлере.

Сколько стоит?

Первого бота можно держать на бесплатном тарифе Free без привязки карты. Дальше - Startup 990 ₽/мес или Business 2 900 ₽/мес, оплата рублёвой картой.

Дайте вашему коду адрес

Создайте аккаунт и разверните первое приложение. План Free — 0 ₽.

Создать аккаунт