Бесплатно запустить телеграм-бота реально: облачные песочницы, ученические тарифы и бесплатные уровни облаков дают 0,5–1 ГБ памяти и несколько сотен часов работы в месяц. Проблема начинается позже — контейнер засыпает после 15–30 минут без запросов, файлы стираются при каждом перезапуске, а лимит исходящих соединений режет ответы бота в час пик. Когда бот перестаёт быть учебным, его переносят на VPS для телеграм-бота, где 1 ядро и 1 ГБ памяти стоят от 59 ₽ в месяц — меньше, чем чашка кофе.
Материал для тех, кто написал первого бота на Python или Node.js и выбирает, где его держать. Разберём, что именно дают бесплатные площадки, по каким четырём причинам они ломаются, сколько ресурсов ест бот на 1000–2000 активных пользователей и с какой точки платный сервер выходит дешевле бесплатного — если считать не деньги, а потерянные заказы и часы отладки.
Что скрывается за словом «бесплатный хостинг для бота»
Под бесплатным хостингом для бота обычно понимают три разные вещи, и путать их дорого. Первая — бесплатный уровень облачной платформы: вам дают контейнер с 256–512 МБ памяти и квоту в 500–750 часов работы в месяц. Вторая — ученические песочницы онлайн-редакторов: код выполняется прямо в браузерной среде, пока вкладка открыта или пока не истечёт таймер сессии.
Третья история — бесплатный хостинг классического типа: место под сайт с PHP и MySQL, где долгоживущие процессы просто запрещены правилами. Для бота это тупик: боту нужен процесс, который висит в памяти сутками, а shared-площадка убивает такие процессы по таймауту в 30–120 секунд.
Есть и четвёртый вариант, который часто называют бесплатным ошибочно, — пробный период платного сервера. Это полноценный хостинг телеграм-бота с root-доступом, просто оплаченный провайдером за вас на 3–7 дней. Такие пробные серверы ведут себя как обычный сервер и годятся для честного теста нагрузки, чего нельзя сказать о песочницах.
Засыпание контейнера: главный дефект бесплатных площадок
Бесплатные уровни облаков экономят ресурсы простым способом: если в контейнер 15–30 минут не приходило запросов, платформа его останавливает. Следующее сообщение пользователя запускает контейнер заново, и на холодный старт уходит от 5 до 40 секунд в зависимости от размера образа и языка. Пользователь в этот момент видит тишину: бот не ответил.
Для бота это хуже, чем для сайта. Сайт после холодного старта просто откроется медленнее, а бот на long polling за время сна вообще не забирал обновления и получает их пачкой. Если очередь накопила 40–60 сообщений, они обработаются разом, и пользователь получит ответы на вопросы, которые задавал двадцать минут назад.
Будить контейнер пингом раз в 10 минут — плохая идея по двум причинам. Во-первых, вы съедаете квоту часов: 720 часов в месяце против выданных 500–750, и к 20-му числу лимит закончится. Во-вторых, многие площадки прямо запрещают искусственное поддержание активности и блокируют аккаунт. На собственном сервере вопрос закрыт: процесс под systemd работает 24 часа в сутки без всяких ухищрений.

Лимиты: часы, память, диск и число процессов
Второй барьер — жёсткие квоты. Типовой бесплатный уровень выдаёт 256–512 МБ памяти, 0,1–0,25 доли ядра и от 500 до 750 часов в месяц. Бот на aiogram или python-telegram-bot стартует и занимает 60–110 МБ, но как только вы подключите обработку изображений через Pillow или выгрузку в Excel, потребление прыгает до 250–400 МБ — и процесс убивает OOM-killer, механизм ядра Linux, который вышибает самый прожорливый процесс при нехватке памяти.
Отдельная ловушка — rate limit, ограничение числа запросов. Платформы ограничивают исходящие HTTP-соединения: например, 100 запросов в минуту с одного контейнера. Telegram Bot API сам по себе разрешает около 30 сообщений в секунду в разные чаты, но упереться вы успеете не в него, а в лимит площадки.
Диска обычно дают 512 МБ — 1 ГБ, и он чаще всего эфемерный. На VPS даже минимальные тарифы дают 10 ГБ NVMe, а swap (файл подкачки на диске, куда система выгружает неактивные страницы памяти) вы настраиваете сами и получаете запас на всплески. Разница между «нельзя» и «настрой как нужно» — это и есть разница между бесплатным уровнем и недорогим VPS.
Куда исчезают данные бота при перезапуске
Самая обидная поломка — потеря данных. Бесплатные контейнеры почти всегда работают на эфемерной файловой системе: при каждом деплое или перезапуске диск возвращается к состоянию из образа. Ваш файл users.db с SQLite, куда бот записывал подписчиков, просто исчезает вместе с 400 записями.
Новички узнают об этом не сразу: пока контейнер живёт, база на месте, и всё выглядит рабочим. Потеря происходит через неделю-две, обычно после обновления кода. Восстановить нечего — бэкапов на бесплатном уровне не делают, а выгрузить файл из остановленного контейнера нельзя.
Лечится это переносом состояния во внешнюю базу, но тогда бесплатность заканчивается: managed-PostgreSQL стоит от 300–500 ₽ в месяц, что уже дороже целого VPS за 59–150 ₽ с локальной базой на диске. На своём сервере SQLite или PostgreSQL живёт рядом с ботом, а настроенные бэкапы копируют файл базы раз в сутки по расписанию.
Вебхуки и long polling: почему на бесплатном выбирают второе
Бот получает сообщения двумя способами. Long polling — бот сам раз в несколько секунд спрашивает у Telegram: «есть новое?». Вебхук — Telegram сам стучится на ваш адрес, как только пришло сообщение. Вебхук быстрее и экономнее, но требует трёх вещей: постоянного публичного адреса, открытого порта 443 или 8443 и валидного TLS-сертификата.
На бесплатных площадках вебхук либо недоступен, либо ломается вместе с засыпанием: Telegram шлёт запрос, контейнер спит, приходит ошибка. После нескольких сотен неудачных доставок Telegram снижает частоту попыток, и часть сообщений теряется. Поэтому в бесплатных руководствах почти всегда предлагают long polling — он работает хоть как-то.
На VPS вебхук ставится за 15 минут: получаете бесплатный сертификат Let’s Encrypt, ставите перед ботом nginx и указываете адрес через метод setWebhook. Задержка ответа падает с 1–3 секунд до 200–400 мс, а нагрузка на процессор уменьшается: бот больше не делает 20 холостых запросов в минуту.
Сравнение: бесплатная площадка против VPS за 59 ₽
Свести всё в таблицу проще, чем спорить. Ниже — пять критериев, по которым бот падает чаще всего, и поведение двух вариантов размещения. Колонка VPS описывает минимальный тариф с 1 ядром и 1 ГБ памяти — тот самый, что стоит 59–150 ₽ в месяц.
| Критерий | Бесплатная площадка | VPS от 59 ₽/мес |
|---|---|---|
| Аптайм | Сон после 15–30 минут тишины, холодный старт 5–40 с | Процесс работает 24/7, SLA 99,9 % в договоре |
| Лимиты | 256–512 МБ памяти, 500–750 часов в месяц | 1 ГБ памяти, 1 ядро, 720 часов без квот |
| Хранение данных | Эфемерный диск, база стирается при деплое | 10 ГБ NVMe, файлы и база живут постоянно |
| Вебхуки | Часто недоступны, ломаются при засыпании | Свой домен, порт 443, TLS, задержка 200–400 мс |
| Цена | 0 ₽ до исчерпания квоты | 59–150 ₽/мес, годовая оплата от 708 ₽ |
Данные проверены 02.09.2026.

Когда бесплатного действительно достаточно
Не каждому боту нужен сервер. Есть три сценария, где бесплатная площадка — правильный выбор, и тратить 59 ₽ незачем.
Первый — учебный бот. Вы разбираетесь с библиотекой, шлёте себе «Привет» и проверяете кнопки. Аудитория — вы и два товарища, обращений 10–30 в день, данных нет вообще. Засыпание контейнера здесь незаметно: вы всё равно пишете боту раз в час.
Второй — тестирование логики перед публикацией. Проверить, что сценарий из 12 шагов проходится без ошибок, можно и на песочнице. Главное — не тащить на бесплатный уровень боевой токен: если контейнер уснёт с активным вебхуком, реальные пользователи получат тишину.
Третий — редкие служебные боты. Уведомлялка, которая раз в сутки шлёт вам отчёт по крону, не страдает от холодного старта: она сама просыпается, отправляет сообщение и засыпает. Такой бот спокойно живёт на бесплатном уровне годами и укладывается в 30–50 часов работы в месяц.
Когда пора переезжать на платный сервер
Признаки перехода видно по самому боту, а не по счётчику ресурсов. Как только появляется любой из них, бесплатный вариант перестаёт окупать сэкономленные деньги.
- Приём оплаты. Бот выставляет счета или работает с платёжным провайдером — вебхук об успешной оплате обязан дойти, а спящий контейнер его теряет.
- База данных. Есть таблица пользователей, заказов или подписок, которую нельзя восстановить вручную.
- Круглосуточная аудитория. Обращения приходят ночью и в выходные, и задержка ответа на 30 секунд читается как поломка.
- Фоновые задачи. Рассылки по расписанию, парсеры, очереди — всему этому нужен постоянный процесс и crontab.
- Свыше 300–500 активных пользователей. На этом объёме упираются в память и лимит исходящих запросов.
Отдельный повод — репутация. Если бот привязан к бизнесу, каждое «не отвечает» превращается в вопрос в личке. Стоимость такого вопроса выше 59 ₽ в месяц уже на второй неделе.
Сколько ресурсов ест бот на 1000–2000 пользователей
Цифры пугают новичков сильнее, чем нужно. Бот на 1000–2000 активных пользователей уверенно живёт на 1 ядре и 1 ГБ памяти — это подтверждается и типовыми конфигурациями из подборки VPS под ботов, и практикой. Сам процесс на Python занимает 80–150 МБ, PostgreSQL с базой на 50 тысяч строк — ещё 120–200 МБ, nginx — около 20 МБ.
Итого в пике набегает 350–450 МБ при доступном гигабайте. Запас нужен на всплески: рассылка по 2000 адресов с ограничением 25 сообщений в секунду отработает за 80 секунд и на это время добавит 100–150 МБ. Процессор при такой нагрузке загружен на 5–15 %, и это нормальные значения для одного ядра.
Диск расходуется медленнее, чем кажется. База на 2000 пользователей с историей заказов занимает 200–400 МБ, логи при ротации раз в неделю — 100–300 МБ. В 10 ГБ NVMe помещается всё с четырёхкратным запасом. Апгрейд до 2 ГБ памяти нужен, когда бот начинает обрабатывать фото или запускать браузер для парсинга: это сразу +400–600 МБ.
Сколько стоит сервер под бота: реальные тарифы
Минимальные конфигурации в каталоге начинаются от 59 ₽ в месяц. Ниже — стартовые тарифы провайдеров, у которых есть подходящие под бота машины, от самого дешёвого к самому дорогому.
| Провайдер | Цена от | Ядра | Память | Диск |
|---|---|---|---|---|
| Cloudcore | 59 ₽/мес | 1 | 1 ГБ | 10 ГБ NVMe |
| HostVDS | 127 ₽/мес | 1 | 1 ГБ | 10 ГБ NVMe |
| RuVDS | 139 ₽/мес | 1 | 0,5 ГБ | 10 ГБ HDD |
| 4VPS | 110 ₽/мес | 1 | 1 ГБ | 5 ГБ NVMe |
| Selectel | 200 ₽/мес | 1 | 1 ГБ | 10 ГБ NVMe |
| AdminVPS | 299 ₽/мес | 1 | 1 ГБ | 15 ГБ NVMe |
| Beget | 330 ₽/мес | 1 | 1 ГБ | 10 ГБ NVMe |
| Aéza | 593 ₽/мес | 1 | 2 ГБ | 30 ГБ NVMe |
Данные проверены 02.09.2026.
Разброс от 59 до 593 ₽ объясняется не жадностью, а начинкой. За 59–150 ₽ вы получаете виртуальную машину без гарантий по частоте процессора: соседи по узлу могут отъедать такты. За 299–593 ₽ дают гарантированное ядро, диск на 15–30 ГБ и техподдержку, которая отвечает за 10–20 минут. Для одного бота обычно хватает нижнего сегмента, а верхний берут, когда на сервере живут 5–10 проектов сразу.
Как перенести бота с бесплатной площадки на сервер
Переезд занимает вечер, если код уже лежит в Git. Порядок действий одинаков для aiogram, python-telegram-bot и Telegraf на Node.js — меняется только команда запуска. Подробный разбор с примерами конфигов есть в гайде о том, как развернуть телеграм-бота на VPS.
- Закажите тариф с 1 ядром, 1 ГБ памяти и 10 ГБ диска, ОС — Ubuntu 24.04 LTS: под неё написано большинство инструкций.
- Зайдите на сервер по SSH и создайте отдельного пользователя вместо root — это защищает от случайного удаления системных файлов.
- Установите Python 3.12 и создайте виртуальное окружение командой
python3 -m venv venv: она изолирует библиотеки бота от системных. - Скопируйте код через
git clone, поставьте зависимости и вынесите токен бота в файл.env, чтобы он не попал в репозиторий. - Опишите службу systemd с параметром
Restart=always— она поднимет бота автоматически после падения или перезагрузки сервера. - Настройте файрвол: оставьте открытыми порт 22 для SSH и 443, если планируете вебхук.
- Добавьте в crontab ежедневный дамп базы в 04:00 и храните 7 последних копий — это 7 файлов по 50–200 МБ.
После запуска проверьте, что бот пережил перезагрузку: выполните reboot и через минуту напишите ему сообщение. Если ответ пришёл — служба настроена верно, и ручной запуск больше не понадобится.
Частые ошибки при размещении бота
Одни и те же промахи повторяются у большинства новичков. Каждая из них стоит либо потерянных данных, либо нескольких часов отладки на ровном месте.
- Держать боевой токен на бесплатной песочнице — при засыпании контейнера пользователи получают тишину, а не ошибку.
- Хранить SQLite в папке проекта на эфемерном диске: база исчезает при первом же деплое.
- Запускать бота командой
python bot.pyв SSH-сессии — процесс умрёт вместе с закрытием окна терминала. - Ставить вебхук без валидного сертификата: Telegram молча откажется доставлять обновления.
- Брать тариф с 0,5 ГБ памяти под бота с обработкой картинок — OOM-killer убьёт процесс на первом же большом файле.
- Не включать ротацию логов: файл на 5 ГБ забьёт диск и уронит и бота, и базу.
Частые вопросы
Можно ли держать телеграм-бота на обычном виртуальном хостинге? Как правило, нет. На shared-хостинге запрещены долгоживущие процессы, а скрипт убивается по таймауту в 30–120 секунд. Исключение — тарифы, где провайдер прямо обещает поддержку ботов; их собрали в разделе хостинг для Python-ботов.
Сколько памяти нужно боту на 1000 пользователей? Хватает 1 ГБ. Сам процесс займёт 80–150 МБ, база — до 200 МБ, остальное уйдёт в запас на всплески при рассылках. Переходить на 2 ГБ имеет смысл при работе с изображениями или запуске headless-браузера.
Почему бот отвечает с задержкой в 20–30 секунд? Почти всегда это холодный старт спящего контейнера на бесплатном уровне. Реже — long polling с большим интервалом опроса. На постоянно работающем сервере задержка держится в пределах 200–400 мс.
Что дешевле: бесплатный уровень плюс внешняя база или свой VPS? Свой сервер. Managed-база стоит от 300–500 ₽ в месяц, тогда как VPS с локальной базой стоит 59–150 ₽ и не требует настраивать доступ между двумя площадками.
Нужен ли боту домен и белый IP? Для long polling — нет, достаточно исходящего доступа в интернет. Для вебхука нужны и выделенный IP, и домен с сертификатом: Telegram отправляет запросы только по HTTPS на порт 443, 80, 88 или 8443.
Как выбрать страну размещения сервера? Ориентируйтесь на аудиторию: для пользователей из России подойдут площадки в Москве и Петербурге с задержкой 5–20 мс. Разница в 50–80 мс для бота почти незаметна, поэтому критерий вторичен — а разница между Москвой и Франкфуртом для бота почти не видна.
Что делать, если бот вырос до 10 000 пользователей? Поднимайте тариф до 2 ядер и 2–4 ГБ памяти и выносите базу в отдельный процесс с настроенными индексами. Такой профиль уже требует тарифа за 300–600 ₽ в месяц.
Итог
Бесплатные площадки честно решают одну задачу — дать новичку место для учебного бота на 10–30 обращений в день. Как только у бота появляются платежи, база данных, вебхук или ночная аудитория, засыпание контейнера и эфемерный диск превращаются в постоянные поломки, а способы это чинить стоят дороже сервера.
Граница проходит примерно на 300–500 активных пользователях. После неё берите машину с 1 ядром и 1 ГБ памяти за 59–150 ₽ в месяц: этого хватит на 1000–2000 пользователей с запасом. Актуальные тарифы с фильтрами по цене и локации собраны в разделе VPS для телеграм-бота.