Где разместить Telegram-бота на Python: чтобы работал круглосуточно

Бот живёт, пока открыт терминал на вашем ноутбуке. Чтобы он отвечал круглосуточно, нужно примерно 170—300 ₽ в месяц — или ноль рублей в лимитах Yandex Cloud. Разбираем все варианты: цены, оплату картой РФ, базу данных и webhook против polling.

Вы написали бота на aiogram или python-telegram-bot и запускали его на своём компьютере. На хостинге бот приживётся легко: код тот же, токен тот же. Решить нужно три вещи: где крутить процесс круглосуточно, как оплатить из России и что делать с базой данных. Разберём по порядку все варианты — от очень дешёвого VPS до бесплатного serverless.

Что нужно боту от хостинга

Telegram-бот — это обычная программа, которой нужны четыре вещи:

  • Постоянная работа. Бот в режиме polling держит открытое соединение с api.telegram.org и должен жить, пока ваш ноутбук спит. В режиме webhook бот ждёт входящие HTTPS-запросы от Telegram. В обоих случаях нужен процесс или адрес, который работает 24/7 — и не «засыпает» при простое.
  • Автоперезапуск. Скрипт бота упадёт из-за сбоя сети — хостинг обязан поднять его сам.
  • Около 100—300 МБ памяти. Типовой бот на aiogram с хранением состояния в памяти занимает 50—150 МБ RAM и почти не грузит процессор. Хватит самой дешёвой машины у любого провайдера.
  • Место для данных. Состояние диалогов, пользователи, счётчики — всё, что бот не должен терять при рестарте.

Из этих требований и растут два семейства решений: вы сами настраиваете сервер (VPS) или платите сервису за то, чтобы он делал это за вас (PaaS, serverless). Как они соотносятся по деньгам и усилиям — таблица:

ФорматМинимальная ценаНастройкаКому подходит
VPS~170—260 ₽/мес1—2 часаУже знакомы с Linux или хотите научиться
PaaS (Git-деплой)~170—290 ₽/мес либо $3—1010—30 минутХотите быстрые обновления через git push
Serverless0 ₽ в лимитах1—2 часаБот с webhook и готовностью переписать точку входа
Хостинг «только Python»$10/мес10—20 минутНе хотите ни Docker, ни сервера

Вариант 1. VPS: сервер целиком за пару сотен рублей

Виртуальный сервер — это маленький Linux, который вы получаете полностью под себя. По классике: заходите по SSH, ставите Python, создаёте виртуальное окружение, запускаете бота через systemd — так он автоматически стартует при перезагрузке и перезапускается при падении. Пошагово весь этот путь расписан в отдельной статье — не будем повторяться, остановимся на деньгах.

Стартовые тарифы российских провайдеров укладываются в 170—260 ₽ в месяц:

ПровайдерОтОсобенность
Aeza~190 ₽/месПочасовая тарификация, локации РФ и Европы
Timeweb Cloud~220 ₽/месПочасовой биллинг, локации на 3 континентах
VDSina~240 ₽/месМожно платить посуточно — удобно для тестов
Beget VPS~250 ₽/месKVM и NVMe-диски, проверенная платформа
Selectel~260 ₽/месПоминутный биллинг, облако «на вырост»

Оплата — российскими картами и по счёту у всех пяти; у Aeza ещё и криптовалютой. Что вы получаете взамен:

  • любой стек и несколько проектов на одном сервере: бот, сайт, cron-скрипт, да хоть второй бот;
  • бот живёт на своём постоянном IP без сюрпризов;
  • один и тот же сервер под старым и новым проектами без переездов.

Минусы тоже понятны: настройка — полностью на вас. Первый сервер с нуля займёт час-полтора: установка ОС, ключи SSH, Python, systemd, бэкапы. По сути вы платите 1—2 часа времени, чтобы потом месяцами платить 200—300 ₽ за всё сразу. Если это ок — сравнение VPS-провайдеров в нашем каталоге поможет выбрать.

Вариант 2. PaaS: бот из Git за полчаса

Платформы-как-сервис берут код из Git-репозитория, сами ставят зависимости и запускают процесс. Не нужно администрирование и обновления ОС. Обновление бота — просто git push.

Российская PaaS: Amvera Cloud

Amvera Cloud — российская платформа, нацеленная именно на ботов: деплой из Git или загрузкой файлов, Python/Node.js/Docker, бесплатный домен с SSL, встроенный прокси для ускорения обмена с api.telegram.org и отдельные регионы вне РФ.

Тарифы для бота:

  • Пробный — 170 ₽/мес: 0,1 ГБ RAM, 2 ГБ диска. Для Python-бота впритык: aiogram укладывается в 50—100 МБ, но запаса почти нет;
  • Начальный — 290 ₽/мес: 0,5 ГБ RAM — комфортный минимум для боевого бота;
  • Начальный Плюс — 490 ₽/мес: 1 ГБ RAM — если бот ещё и считает, рисует графики, держит LLM-запросы.

Тарификация поминутная: остановленный проект не тратит деньги. При регистрации автоматически начисляют 111 ₽ — хватит прогнать бота неделю и решить, подходит ли. Постоянное хранилище переживает рестарты — SQLite можно оставить как есть; рядом есть управляемые PostgreSQL и Redis (~от 290 ₽/мес), S3 для файлов. Оплата российскими картами, документы для ИП и юрлиц.

Зарубежные PaaS: Railway, Render, Fly.io, PythonAnywhere

Тут стоит таблица со всей четвёркой:

СервисМинимумЧто за эти деньгиНюанс
Railway$5/месHobby-план включает $5 ресурса (полностью покрывает бот на 512 МБ RAM)Нужна зарубежная карта
Render$7/месBackground Worker: 0,5 CPU, 512 МБ, не засыпаетНужна зарубежная карта
Fly.io~$3/месМикро-VM 1 vCPU/256 МБ из вашего DockerfileНужен Dockerfile и зарубежная карта
PythonAnywhere$10/месDeveloper-план: один always-on процесс, 5 ГБ дискаТолько Python, нужна зарубежная карта

Нюансы по каждому:

  • Railway тарифицирует ресурсы посекундно и по факту: в Hobby входят $5 использования, бот на 512 МБ RAM при постоянной работе укладывается в эту сумму почти впритык. Подключаете GitHub, Railway сама собирает проект — деплой занимает минуты. Есть жёсткий лимит расходов (hard limit), чтобы бот не «выжег» карту при утечке памяти.
  • Render — ближайший наследник Heroku. Бесплатный веб-сервис вполне есть, но спит после 15 минут без HTTP-запросов. Боту с polling нужен Background Worker за $7/мес — он работает без засыпания. Рядом — управляемый PostgreSQL и постоянные диски по $0,25/ГБ.
  • Fly.io продаёт не «сервис», а крошечную виртуальную машину. Пишете Dockerfile, fly deploy — и получаете постоянную VM за ~$3/мес в выбранном регионе. Дёшево, но без навыков Docker будет непросто.
  • PythonAnywhere — платформа, где весь Python-хостинг делается в браузере: консоль, редактор, панели задач. С 2026 года вход — Developer-план за $10/мес с одним always-on процессом и до 5000 CPU-секунд в день (боту обычно хватает с большим запасом). Docker не нужен, PostgreSQL нет — есть MySQL.

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

Вариант 3. Serverless: бесплатно и только webhook

Yandex Cloud Functions запускает ваш Python-код по HTTP-запросу без всякого сервера. Бот переводится в webhook-режим: Telegram сам присылает обновление, функция обрабатывает его и гаснет.

Деньги здесь решаются иначе, чем везде: каждый месяц не тарифицируются первые 1 000 000 вызовов и 10 ГБ×час выполнения. Личный бот с умеренным трафиком почти всегда вписывается в бесплатный лимит — вы платите ноль рублей. Дальше — 18,97 ₽ за каждый лишний миллион вызовов и около 6,48 ₽ за ГБ×час: обвал нагрузки превращается в десятки рублей, а не в сюрприз по карте.

Что нужно знать до переезда:

  • Только webhook. Long polling в serverless не работает: функции требуется событие на вход. Запустить polling можно только через танцы с постоянным запускателем — смысла нет.
  • Точку входа придётся переписать. Вместо bot.run_polling() в aiogram функция принимает HTTP-запрос и передаёт update в диспетчер. Оба фреймворка это умеют, но полчаса правок уйдут.
  • Состояние храните снаружи. Память функции не переживает вызов: FSM-состояния и данные — в YDB (тоже с бесплатным лимитом) или другой БД.
  • Холодный старт. Первые несколько секунд после долгой паузы бот отвечает медленнее — обычно пользователи этого даже не замечают.
  • Порог входа выше, чем у VPS: сервисные аккаунты, ключи, API Gateway, триггеры. Один-два часа на первый заход.

Для enterprise-нагрузок в этой нише также существует Cloud.ru с serverless-контейнерами и полным облаком вокруг — но для обычного бота это избыточно.

Webhook или polling

Ваш бот на ноутбуке почти наверняка работал через long polling: программа сама раз в полсекунды спрашивает у Telegram новые сообщения. Это дефолт и aiogram, и python-telegram-bot — работает сразу, требует только исходящего интернета и никакой настройки.

Webhook — обратная схема: Telegram сам присылает обновления HTTP-запросом на ваш HTTPS-адрес. Для этого нужно зарегистрировать адрес через setWebhook и иметь валидный TLS-сертификат. Что даёт webhook:

  • мгновенную доставку сообщений (polling отвечает тоже мгновенно, но с чуть большей задержкой);
  • не нужен постоянно работающий процесс — обязательное условие для serverless;
  • отсутствие лишнего фонового трафика.

Эту пару сведём простой таблицей:

КритерийPollingWebhook
Настройканулеваянужен HTTPS-адрес и setWebhook
В serverlessне работаетединственный вариант
Засыпают ли сервисы PaaSда, без платного тарифаплатный тариф тоже нужен
Запуск нескольких копий ботаконфликтработает сколько угодно копий

Популярный кейс новичка: случайно оставить и polling, и webhook одновременно. Telegram возвращает ошибку 409 Conflict из-за двух конкурирующих каналов и бот падает. Правило одно: режим определяется один раз через deleteWebhook (перейти к polling) или setWebhook (перейти к webhook), а не «случайно само».

На VPS webhook требует возни с nginx и SSL — polling от этого избавлен. Большинство простых ботов так и живут через polling; webhook берут тогда, когда нужен serverless или критична мгновенная доставка. Оба пути описаны в статье про бесплатный хостинг.

Куда девать базу данных

Бот на вашем ноутбуке мог просто держать JSON-файл или SQLite на диске. Под «настоящим» хостингом к этому добавляется один вопрос: где файл живёт после рестарта.

  • VPS. Диск ваш собственный, SQLite работает как обычно. Единственное, что отличает продакшн от ноутбука: бэкапы. Минимальный — сжать и отправить архив в облачное хранилище раз в сутки.
  • PaaS с постоянным томом. Railway и Render продают постоянные диски ($0,15—0,25 за ГБ в месяц), Amvera Cloud включает постоянное хранилище с бэкапами в тариф. SQLite в небольшом боте нормально живёт даже на постоянном томе PaaS; главное — не разворачиваться на нескольких репликах одновременно.
  • Управляемая PostgreSQL. Хороший шаг для бота с реальной нагрузкой: за ~290 ₽/мес у Amvera, у Timeweb Cloud и Selectel — свои управляемые СУБД, у Render — Postgres за небольшую отдельную плату. Плюс — автоматические бэкапы и отсутствие ручных миграций; минус — заметно дороже SQLite.
  • Serverless. Только внешняя БД: YDB от самого Yandex Cloud (со своим бесплатным лимитом — снова хватает на личного бота) или PostgreSQL/Redis где-то ещё.

Отдельный момент — FSM-состояния. Если использовали MemoryStorage из aiogram, то при переносе с ноутбука вы не потеряли данные только потому, что бот не перезапускался днями. На хостинге рестарт случится обязательно — переходите на RedisStorage или PostgreSQLStorage, иначе ежедневные переписки будут сбрасываться.

Как оплатить из России

Все сервисы делятся на две категории:

Оплата российской картойОплата только зарубежной картой
СервисыTimeweb Cloud, Beget, Selectel, VDSina, Aeza, Amvera, Yandex Cloud, Cloud.ruRailway, Render, Fly.io, PythonAnywhere

У российских платформ шире набор способов: карты МИР и обычные карты РФ, СБП, кошельки, счёт по инвойсу с закрывающими документами для ИП и юрлиц. Для бота под российского заказчика это не просто удобство, а оформление расходов «по-белому».

У зарубежных платформ единственный стандарт — карта иностранного банка (Visa/MC). Российские карты отклоняются уже на этапе привязки — обойти это легально не получится. Если зарубежной карты нет и не предвидится, выбор по сути сужается до российских сервисов — а он вполне решаем с любым из трёх описанных вариантов выше.

Чек-лист переезда с ноутбука

Сам перенос занимает меньше часа, 90% работы — подготовка:

  1. Вынесите токен из кода. Уже есть .env? Отлично, вынесите его в переменные окружения панели конкретного хостинга. В репозиторий .env не попадает — добавьте его в .gitignore.
  2. Сохраните зависимости. pip freeze > requirements.txt — это то, что хостинг поставит рядом с вашим кодом. Проверьте, что версия питона соответствует локальной: платформа PaaS часто спрашивает её явно.
  3. Выложите код в Git. GitHub или GitLab — Git-деплой удобен и после переезда.
  4. Определите судьбу данных. SQLite-файл, JSON с фактами, FSM в памяти — решите, где они будут жить (том, управляемая БД, постоянное хранилище), и добавьте бэкапы.
  5. Выберите polling или webhook и переключите его осознанно через deleteWebhook / setWebhook.
  6. Включите автозапуск. На VPS — systemd с Restart=always и автозапуском при перезагрузке. На PaaS — ничего: перезапуск входит в плату.
  7. Отключите локальную копию. Две копии polling с одним и тем же токеном конфликтуют — Telegram отдаёт апдейты то одной, то другой, и пользователи получают странные ответы.
  8. Проверьте логи. Через час-два после переноса загляните в журнал: там сразу видно падения и время ответов.

Итог: что выбрать под какую задачу

  • Личный бот, платить не хочется — Yandex Cloud Functions: бесплатный лимит в 1 млн вызовов в месяц и webhook-режим. Цена переезда — полчаса-час на правку точки входа.
  • Минимум возни на Python, без Docker и серверов — Amvera Cloud от 290 ₽/мес с картой РФ и русским интерфейсом (или PythonAnywhere за $10, если устраивает английская панель и зарубежная карта).
  • Хочется контроля и экономии — VPS у Timeweb Cloud, Beget VPS или Aeza: от ~190—220 ₽/мес, systemd, любой стек, несколько проектов на одном сервере.
  • Скорость деплоя и глобальная инфраструктура при наличии зарубежной карты — Railway за $5/мес, который сам собирает проект из Git, или Fly.io за ~$3/мес, если легко с Dockerfile.
  • Бот с нагрузкой и требованиями оформления — Selectel или Cloud.ru, где рядом лежат управляемые БД, мониторинг и документы для юрлица.

Начните с простого вопроса «какой ответ я дам себе через полгода»: если цель — научиться Linux и DevOps, берите VPS и считайте затраченные часы инвестицией в навык. Если цель — чтобы бот просто работал, любая платформа выше снимет с вас серверную часть, и вы будете платить только деньги, а не время.

Полное сравнение всех хостингов для Telegram-ботов с ценами и фильтрами — в нашем каталоге, а все статьи по теме — в разделе статей.

Выбираете хостинг под бота?

12 сервисов — фильтры по цене, стеку и способу деплоя на главной каталога.

Открыть каталог