Хостинг для Telegram-бота: где разместить и сколько стоит
Где разместить Telegram-бота: VPS или обычный хостинг, webhook или polling, какие порты и HTTPS нужны, минимальные ресурсы, цены Beget, Timeweb Cloud и FirstVDS на октябрь 2026, запуск через systemd и Docker.

Содержание
- Когда нужен VPS, а когда хватит хостинга
- Webhook или polling: что требуется от сервера
- Минимальные требования для бота на Python и Node.js
- Российские VPS: сравнение минимальных тарифов
- Как запустить бота: systemd или Docker и автоперезапуск
- Telegram в России: на что обратить внимание
- Бесплатный хостинг для бота: что учесть
- Чек-лист перед запуском
- Частые вопросы
Чтобы разместить Telegram-бота, нужен компьютер, который работает круглосуточно, имеет выход в интернет и может запускать вашу программу. Самый универсальный вариант — небольшой VPS: виртуальный сервер, на котором вы сами запускаете бота на Python или Node.js. Обычный виртуальный хостинг подойдёт не всегда: на многих тарифах нельзя держать постоянно работающий процесс. Бота, который отвечает редко, можно запускать и без сервера — через webhook на serverless-платформе. По ценам минимальных VPS в России на октябрь 2026 по официальным страницам: Beget — от 27 ₽ в день, Timeweb Cloud — от 900 ₽ в месяц при оплате на 12 месяцев, FirstVDS — «от 299 ₽ в месяц». Ниже — как выбрать, что требуется от сервера и как запустить бота так, чтобы он сам перезапускался.
Коротко. Бот, который должен всегда отвечать и хранить данные, — берите VPS. Webhook требует HTTPS и один из портов 443, 80, 88 или 8443; polling (метод getUpdates) не требует входящих подключений, поэтому проще для старта. Для бота на Python или Node.js обычно хватает минимального тарифа с 1–2 ядрами и 1–2 ГБ памяти (это практический ориентир, а не требование Telegram). Запускайте бота как службу systemd или в Docker с автоперезапуском. Бесплатный хостинг подходит для эксперимента, но не для бота, от которого зависят клиенты.
Когда нужен VPS, а когда хватит хостинга
Telegram-бот — это программа, которая либо сама постоянно спрашивает у Telegram, есть ли новые сообщения (polling), либо принимает от него запросы по адресу (webhook). От этого зависит, что вам нужно от «места жительства».
| Вариант | Подходит, когда | Ограничения |
|---|---|---|
| Свой компьютер | Тест и разработка | Бот молчит, когда компьютер выключен или нет интернета |
| Обычный (виртуальный) хостинг | Бот на webhook, который работает как обычный PHP- или Python-скрипт на сайте; HTTPS у хостинга уже есть | Часто нельзя запускать постоянные процессы, ограничены версии языков и пакеты; для polling обычно не подходит |
| Serverless-функции | Редкие запросы, webhook, простая логика | Нет постоянного процесса и локальной базы; нужны внешнее хранилище и привязка вашего URL; условия зависят от платформы |
| VPS | Бот работает постоянно, нужна своя база, очереди, задачи по расписанию, несколько ботов | Сервер настраиваете и обновляете вы: безопасность, перезапуск, резервные копии |
| Бесплатный хостинг | Учебный проект | Лимиты, «засыпание» процесса, возможные изменения условий и блокировки; для клиентского бота рискованно |
Правило выбора простое. Если бот просто отвечает на команды и может подождать пару секунд при первом запросе, хватит webhook на хостинге или в serverless. Если бот хранит данные, принимает платежи, шлёт рассылки, работает с очередями или вы запускаете у него ИИ-агента, берите VPS. К тому же на VPS вы сможете держать рядом другие сервисы, например n8n: как это сделать, описано в статье «Установка n8n: локально, на сервере и в Docker».
Webhook или polling: что требуется от сервера
Telegram Bot API позволяет получать обновления двумя взаимоисключающими способами. Это меняет требования к хостингу.
Polling (getUpdates)
Бот сам обращается к Telegram за новыми сообщениями. Входящие подключения не нужны: сервер должен только выходить в интернет и достучаться до api.telegram.org. Не нужны ни домен, ни сертификат. Это самый простой способ для новичка и для VPS без домена. Недостаток — процесс должен быть запущен всё время.
Webhook (setWebhook)
Telegram сам отправляет каждое обновление на ваш адрес. По документации Bot API:
- адрес должен быть HTTPS;
- поддерживаются порты 443, 80, 88 и 8443;
- можно загрузить собственный (самоподписанный) сертификат в параметре
certificate; - параметр
secret_token(1–256 символов: латинские буквы, цифры,_и-) Telegram присылает в заголовкеX-Telegram-Bot-Api-Secret-Token; проверяйте его, чтобы отсеять чужие запросы; max_connections— число одновременных подключений, от 1 до 100, по умолчанию 40;- пока webhook установлен, получать обновления через
getUpdatesнельзя.
Для webhook на VPS вам понадобятся домен (или поддомен) с A-записью на IP сервера и сертификат; проще всего поставить перед ботом обратный прокси с автоматическим сертификатом. Пример для похожей схемы — в статье «Как подключить домен к AI-агенту». На обычном хостинге HTTPS обычно уже есть, нужно лишь указать адрес скрипта.
Установка и проверка webhook делаются обычным запросом к API (замените <TOKEN> на токен бота от @BotFather и адрес на свой):
curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://bot.example.com/webhook&secret_token=MySecret_123"
curl "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"
Токен — это пароль к боту: не публикуйте его в репозитории и не показывайте в скриншотах.
Что выбрать. Новичку на VPS — polling: меньше настроек. Бот с большой нагрузкой или на serverless — webhook. Если сомневаетесь, начните с polling и перейдите на webhook, когда появятся домен и причина.
Минимальные требования для бота на Python и Node.js
Сам по себе бот потребляет мало: он принимает сообщения, вызывает вашу логику и отправляет ответ. Telegram не публикует требований к серверу, поэтому цифры ниже — практические ориентиры, которые зависят от вашей программы.
| Задача | Ориентир по ресурсам |
|---|---|
| Простой бот (команды, меню, ответы), Python или Node.js | 1 ядро, 1 ГБ памяти; запас по диску — несколько гигабайт на систему и логи |
| Бот с базой данных (SQLite, PostgreSQL) и рассылками | 2 ядра, 2 ГБ памяти |
| Бот с Docker, обратным прокси и несколькими сервисами | 2 ядра, 2–4 ГБ памяти |
| Бот с ИИ-агентом, использующим внешнюю модель по API | Как правило, тот же минимальный тариф: вычисления идут на стороне провайдера модели |
| Локальная языковая модель на самом сервере | Минимальный VPS не подходит, нужны гораздо более мощный сервер или видеокарта |
Что ещё нужно: Linux (чаще всего Ubuntu LTS), доступ по SSH, поддерживаемая версия Python или Node.js, постоянный выход в интернет и устойчивое соединение с Telegram. Популярные библиотеки — aiogram и python-telegram-bot для Python, grammY и Telegraf для Node.js; их требования к версии языка смотрите в документации библиотеки. Если вы хотите запускать на сервере агента, а не простого бота, посмотрите «AI-агент на Ubuntu: как запустить на VPS».
Российские VPS: сравнение минимальных тарифов
Ниже — минимальные тарифы по официальным страницам провайдеров, открытым в октябре 2026. Цены и условия меняются: перед покупкой сверьтесь с сайтом. Рядом с ссылками стоит пометка о рекламе.
| Провайдер | Минимальный тариф по странице | Цена (октябрь 2026) | Особенности по странице |
|---|---|---|---|
| Beget | 2 ядра CPU 3–3,3 ГГц, 2 ГБ памяти, 30 ГБ NVMe, канал 1 Гбит/с | 27 ₽ в день | Оплата посуточная; серверы в Санкт-Петербурге; публичный IPv4 за дополнительные 5 ₽ в день (с ним калькулятор на странице показывает итого 32 ₽ в день); в тариф входят автоматические резервные копии и мониторинг |
| Timeweb Cloud | Cloud-40: 2 × 3,3 ГГц, 2 ГБ памяти, 40 ГБ NVMe, 1 Гбит/с | 900 ₽ в месяц при выбранной оплате на 12 месяцев (скидка 10%) | Скидки за срок оплаты: 3 месяца — 5%, 6 месяцев — 7%, 12 месяцев — 10%; доступны локации в России, Казахстане и Европе |
| FirstVDS | На главной странице указано «виртуальные серверы в России, Нидерландах и Казахстане» | от 299 ₽ в месяц | Характеристики минимального тарифа на открытой странице не указаны; смотрите в личном кабинете при заказе |
Реклама. Партнёрские ссылки на Beget, Timeweb Cloud и FirstVDS; цена для вас не меняется. Данные на октябрь 2026, перепроверяйте на сайтах провайдеров.
Как читать таблицу:
- Beget удобен, если нужен сервер «на попробовать»: оплата по дням. Публичный IPv4-адрес на странице считается отдельно: +5 ₽ в день. Месячную сумму можно прикинуть умножением на число дней, но точную стоимость смотрите в панели.
- Timeweb Cloud — более дорогой стартовый тариф с конкретной ценой и скидкой за длительную оплату. Цена за один месяц без скидки на странице отдельно выбирается переключателем срока.
- FirstVDS показывает на главной только цену «от»; для сравнения по характеристикам откройте тарифы при оформлении заказа.
Пошаговые примеры настройки VPS у отдельных провайдеров есть в наших статьях: «Как запустить VPS на Бегет» и «OpenClaw на Timeweb Cloud». Для бота шаги те же: создать сервер с Ubuntu, зайти по SSH, поставить Python или Node.js.
Что ещё сравнить, кроме цены: расположение серверов, наличие резервных копий и снимков, поддержку, возможность быстро увеличить тариф и условия отмены. Минимальный тариф можно взять на пробу и увеличить позже.
Как запустить бота: systemd или Docker и автоперезапуск
Если запустить бота в терминале, он остановится при закрытии сессии SSH. Чтобы бот работал постоянно и поднимался после сбоя или перезагрузки сервера, используйте службу systemd или Docker.
Вариант 1. Служба systemd
Создайте файл /etc/systemd/system/mybot.service (пути и пользователя замените на свои; для Node.js вместо python укажите node):
[Unit]
Description=My Telegram bot
After=network-online.target
Wants=network-online.target
[Service]
User=bot
WorkingDirectory=/opt/mybot
EnvironmentFile=/opt/mybot/.env
ExecStart=/opt/mybot/venv/bin/python main.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Что здесь важно: Restart=always перезапускает бота при падении, EnvironmentFile хранит токен отдельно от кода, пользователь bot — обычный, без прав root. Включение и проверка:
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot
journalctl -u mybot -f
enable включает автозапуск при загрузке, --now запускает сразу, status показывает состояние, journalctl -f выводит живой журнал.
Вариант 2. Docker
Если бот упакован в контейнер, автоперезапуск задаётся политикой запуска:
docker run -d --name mybot --restart unless-stopped --env-file .env mybot:latest
Или в docker-compose.yml: строка restart: unless-stopped у нужного сервиса. Docker даёт удобство, когда на сервере несколько ботов или сервисов: у каждого свои зависимости. Подробно, с docker compose, — в статье «Установка n8n в Docker»: порядок действий тот же.
Безопасность
- Не запускайте бота от root, держите токен в файле окружения или секретах, а не в коде.
- Отключите вход по паролю и пользуйтесь ключами SSH, поставьте фаервол и обновления: подробнее в статье «Как защитить AI-агента на VPS».
- Если токен попал в чужие руки, перевыпустите его в @BotFather.
Telegram в России: на что обратить внимание
Доступность Telegram может зависеть от оператора, региона и времени, и условия меняются. Для бота это важно по одной причине: серверу нужно соединяться с api.telegram.org (при polling и при отправке ответов, в том числе при webhook). Поэтому проверьте соединение с самого сервера, а не с вашего компьютера:
curl -s "https://api.telegram.org/bot<TOKEN>/getMe"
Если приходит ответ с данными бота ("ok":true), связь есть. Если запрос зависает или падает с ошибкой, проверьте DNS и фаервол на самом сервере, а затем обратитесь в поддержку хостинга: у провайдеров своя сетевая инфраструктура, и они могут сказать, что с ней происходит. Выбирайте площадку и расположение сервера по этой проверке и по требованиям вашего проекта; заранее надёжной гарантии работы одного и того же сервера на каждый день мы дать не можем. Если бот обслуживает клиентов, держите план Б: резервную копию и возможность быстро развернуть бота на другом сервере.
Отдельная тема — подписки на нейросети для бота. ChatGPT и Claude официально в России не работают, российские карты там не принимаются; про оплату читайте в статье «Как оплатить Claude и ChatGPT из России».
Бесплатный хостинг для бота: что учесть
Бесплатные варианты бывают, но у них общие проблемы:
- процесс может «засыпать» без запросов; для polling это ломает бота, для webhook — задерживает первый ответ;
- лимиты на время работы, память и трафик, а также изменения условий без предупреждения;
- данные на диске могут не сохраняться между перезапусками;
- не всегда понятно, где физически находится сервер.
Для обучения и пробного бота этого достаточно. Для бота, от которого зависят заявки и оплаты, возьмите платный VPS: минимальный тариф стоит сотни рублей в месяц, а риск потерять заявки обходится дороже. Прежде чем что-то выбирать, прочитайте условия тарифа на сайте провайдера.
Чек-лист перед запуском
- Определитесь со способом: polling для простого старта, webhook, если есть домен и причина.
- Выберите VPS с Ubuntu и минимальными ресурсами из таблицы выше.
- Создайте пользователя без root, отключите вход по паролю.
- Проверьте
getMeс самого сервера. - Поставьте бота как службу systemd или контейнер Docker с автоперезапуском.
- Токен — в файле окружения, не в репозитории.
- Проверьте журнал после перезагрузки сервера: бот должен подняться сам.
- Настройте резервную копию данных бота.
Частые вопросы
Где лучше разместить Telegram-бота?
Для постоянно работающего бота — на VPS: он даёт постоянный процесс, свою базу и контроль над настройками. Для простого бота на webhook подойдёт обычный хостинг или serverless-функции. Для эксперимента — свой компьютер или бесплатный вариант.
Сколько стоит хостинг для Telegram-бота?
По официальным страницам на октябрь 2026: Beget — от 27 ₽ в день за минимальный VPS, Timeweb Cloud — от 900 ₽ в месяц при оплате на 12 месяцев, FirstVDS — «от 299 ₽ в месяц». Условия и цены меняются, перед покупкой проверьте их на сайте.
Нужен ли VPS для Telegram-бота?
Не всегда. Если бот отвечает на запросы через webhook и не требует постоянного процесса, подойдёт обычный хостинг или serverless. VPS нужен, когда бот работает постоянно, хранит данные, использует очереди и рассылки или работает через polling.
Webhook или polling: что выбрать?
Polling проще: не нужны домен и сертификат, сервер лишь выходит в интернет. Webhook требует HTTPS и порт 443, 80, 88 или 8443, зато не требует постоянного опроса и подходит для serverless. Одновременно оба способа использовать нельзя.
Какие порты разрешены для webhook?
По документации Telegram Bot API, для webhook поддерживаются порты 443, 80, 88 и 8443, а адрес должен начинаться с https.
Сколько ресурсов нужно боту на Python или Node.js?
Для простого бота обычно хватает минимального VPS: 1–2 ядра и 1–2 ГБ памяти. Это практический ориентир: точная потребность зависит от вашего кода, базы данных и числа пользователей. Если запускаете локальную языковую модель, понадобится гораздо более мощный сервер.
Как сделать, чтобы бот сам перезапускался?
Запустите его как службу systemd с параметром Restart=always или в Docker с политикой restart: unless-stopped. Тогда бот поднимется после сбоя и после перезагрузки сервера.
Есть ли бесплатный хостинг для бота?
Бесплатные варианты бывают, но у них лимиты, «засыпание» процесса и непредсказуемые условия. Подходят для обучения и тестов, для бота с клиентами лучше платный VPS.
Строю AI-агентов для своего бизнеса и клиентов, на сайте пишу о том, что запускал сам. Вопросы задавайте в Telegram.
@aaakalsin →

