Сколько это стоит
Хостинг для бота на aiogram: как запустить и сколько стоит
Коротко
Бота на aiogram можно выложить в Netrun без сервера: загрузите папку с кодом и requirements.txt, укажите токен от BotFather — платформа сама поставит зависимости и запустит бота. Первые 3 дня работа бесплатна, дальше круглосуточная работа стоит $1.49 в неделю или $4.99 в месяц. Ни VPS, ни Docker, ни настройка автозапуска не нужны.
aiogram — самая популярная библиотека для Telegram-ботов на Python, и почти каждый бот на ней проходит один и тот же путь: сначала он живёт в терминале на ноутбуке, потом автор закрывает крышку и бот замолкает. Дальше обычно начинается поиск сервера, установка Python нужной версии, настройка systemd — и на этом энтузиазм часто заканчивается.
Между тем боту на aiogram не нужно ничего специфического: обычный Python-проект с зависимостями и токеном. Разберём, как выложить его так, чтобы он работал сам, и во сколько это обойдётся.
Соберите проект так, как он есть#
Нужны файл с ботом (обычно bot.py или main.py) и requirements.txt со списком библиотек — как минимум с aiogram. Если файла со списком нет, соберите его командой pip freeze > requirements.txt в папке проекта. Версию aiogram лучше зафиксировать: между третьей и второй версиями синтаксис заметно разошёлся, и без фиксации при сборке может встать не та.
Уберите токен из кода#
Токен от BotFather не должен лежать строкой в коде: он попадёт в архив, в репозиторий и в историю правок. Замените его на чтение переменной окружения — например, os.getenv("BOT_TOKEN"). При настройке проекта Netrun спросит значение и подставит его как секрет, поэтому в файлах токена не будет.
Загрузите код#
Загрузите папку архивом или подключите репозиторий на GitHub — приватный тоже подойдёт. Платформа увидит requirements.txt, поймёт, что это Python, поставит зависимости и запустит бота. Писать Dockerfile или выбирать версию Python вручную не нужно: она определяется по коду и по вашему файлу зависимостей.
Оставьте long polling как есть#
Бот на aiogram по умолчанию сам ходит за обновлениями к Telegram (long polling), и на платформе это работает без изменений — переписывать бота на вебхуки не нужно. Одно правило важно: у одного токена может быть только один запущенный экземпляр. Остановите бота на своём компьютере перед публикацией, иначе Telegram начнёт отдавать обновления по очереди то одному, то другому, и бот будет отвечать через раз.
Проверьте бота за 3 бесплатных дня#
На бесплатном тарифе бот работает 3 дня. За это время посмотрите логи в кабинете: там видно, как встают зависимости, как бот стартует и что он пишет в ответ на команды. Если что-то не так — например, забыли добавить библиотеку в requirements.txt — ошибка будет видна текстом, а не молчанием.
Включите круглосуточную работу#
Чтобы бот отвечал постоянно, нужен тариф Pro: $1.49 в неделю, $4.99 в месяц или $47.99 в год. В цену входят сервер, сборка, перезапуск после сбоя и логи. Данные бота — например, база на SQLite — лежат в постоянной папке и переживают обновление кода: выложили новую версию, а пользователи и их настройки остались на месте.
Бот на aiogram — обычный Python-проект, и выкладывать его как что-то особенное не нужно. Загрузите папку с кодом в Netrun, укажите токен — и бот начнёт отвечать без вашего компьютера.
Частые вопросы
Сколько стоит хостинг для бота на aiogram?
Первые 3 дня — бесплатно, этого хватает на проверку. Дальше круглосуточная работа стоит $1.49 в неделю, $4.99 в месяц или $47.99 в год. Отдельной платы за трафик, сборку или логи нет.
Нужно ли переписывать бота на вебхуки?
Нет. Long polling, который aiogram использует по умолчанию, работает на платформе как есть. Вебхуки имеет смысл включать, когда у бота высокая нагрузка или уже есть веб-часть, но для обычного бота разницы вы не заметите.
Какую версию aiogram выбрать и как её зафиксировать?
Между aiogram 2 и aiogram 3 сильно разошёлся синтаксис, поэтому версию стоит указать в requirements.txt явно — например, aiogram==3.x. Иначе при сборке встанет свежая версия, и код, написанный под старую, упадёт на первом же импорте.
Куда девать базу данных бота?
Файл базы на SQLite кладите в постоянную папку проекта — она сохраняется между публикациями, поэтому обновление кода не стирает пользователей. Если база лежит просто рядом с кодом, при следующей публикации она заменится тем, что было в архиве.
Что делать, если бот отвечает через раз?
Скорее всего, тот же токен используют сразу два запущенных бота — например, копия на вашем компьютере и копия на платформе. Telegram отдаёт обновления только одному получателю, поэтому ответы идут через раз. Остановите лишний экземпляр.
А если бот на python-telegram-bot или pyTelegramBotAPI?
Всё то же самое. Платформа определяет проект по requirements.txt, а не по конкретной библиотеке, поэтому боты на python-telegram-bot, pyTelegramBotAPI и любых других библиотеках запускаются так же.
Можно ли разместить Telegram-бота?
Да. Загрузите код бота и укажите токен от BotFather (его выдаёт сам Telegram при создании бота) — Netrun запустит бота, VPS и ручная настройка не нужны. На бесплатном тарифе бот работает 3 дня, чтобы вы всё проверили; чтобы он работал круглосуточно, подключите тариф Pro.
Где указать токены и другие секретные значения?
В проекте есть вкладка «Секреты» — там задаются значения из кода, например токен от BotFather. Мы храним их в зашифрованном виде: названия переменных вы видите, сами значения не показываем никому, включая вас.
Сохранятся ли данные при обновлении кода?
Да, если данные лежат в постоянном хранилище. У обычного проекта это папка /data: всё, что приложение туда сохранило, остаётся при обновлении кода и перезапуске, а посмотреть и скачать файлы можно на вкладке «Данные». Если вы описали сервисы сами в docker-compose, постоянное хранилище — это именованные тома из вашего файла, и папки /data у такого проекта нет. Файлы, записанные мимо хранилища, при следующей публикации создаются заново. Ссылка проекта в любом случае остаётся прежней.
Что будет с ботом через 3 дня на бесплатном тарифе?
Бот выключится, но код, настройки и секреты останутся на месте — мы ничего не удаляем. За сутки до выключения мы пришлём предупреждение. Подключите тариф Pro, и бот запустится с того же места и будет работать круглосуточно. Новый бот, загруженный после этого, тоже соберётся, но работать не начнёт: бесплатное время считается на аккаунт, а не на каждый проект.