Телеграм-бот на хостинге: polling, вебхук и сервер, коротко и с данными
Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 3 вопроса. Полный разбор с примерами: Телеграм-бот на хостинге: polling, вебхук и сервер.
Коротко
Телеграм-бот на хостинге получает сообщения одним из двух способов: сам опрашивает Telegram методом getUpdates (long polling) или принимает их на свой HTTPS-адрес через вебхук. Обоим нужен процесс, который не выключается, поэтому бота держат на VPS. Дальше: какой режим выбрать, какие лимиты Bot API учесть и как перенести бота с компьютера.
Конспект по разделам
Polling или вебхук: как телеграм-бот получает сообщения
Telegram держит новые сообщения для бота у себя до 24 часов, пока бот их не заберёт. Забрать можно двумя взаимоисключающими способами: пока вебхук установлен, getUpdates не работает. Telegram отправляет вебхук на любой адрес, который вы укажете, поэтому чужие запросы надо отсекать.
Лимиты Telegram Bot API, которые влияют на хостинг
Если бот работает с видео и архивами, эти пределы снимает свой экземпляр Bot API: файлы до 2000 МБ, скачивание без ограничения, вебхук на любой порт и локальный адрес. Как его поднять: локальный сервер Telegram Bot API. На 14 октября 2026 актуальная версия Bot API 10.3 от 24 августа 2026.
- Скачивание файлов: бот получает от Telegram файлы до 20 МБ.
- Отправка файлов: до 50 МБ, для фото через загрузку до 10 МБ.
- Вебхук: только порты 443, 80, 88 и 8443, не больше 100 одновременных соединений.
Какой сервер нужен для телеграм-бота
Почему боту нужен именно VPS, а не хостинг сайтов, объяснено в обзоре аренда сервера для бота. Текстовый бот на aiogram, python-telegram-bot или grammY берёт немного памяти, и упираться он будет не в процессор, а в базу и файлы. Конвертация видео через ffmpeg, наоборот, грузит все ядра на время задачи.
Как перенести телеграм-бота с компьютера на сервер
- Создайте сервер с Ubuntu и подключитесь по SSH.
- Перенесите код через git, а не архивом: так проще обновлять.
- Положите токен в файл.env с правами 600, а не в код.
- Остановите копию на компьютере.
Вебхук телеграм-бота за Nginx с сертификатом
Бот слушает локальный порт, например 8080, а наружу смотрит Nginx с сертификатом Let's Encrypt от Certbot. Так на одном сервере уживаются несколько ботов на разных путях одного домена. После этого getWebhookInfo покажет адрес, число ожидающих сообщений и текст последней ошибки доставки, если Telegram не смог достучаться.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов
Данные
| Long polling (getUpdates) | Вебхук (setWebhook) | |
|---|---|---|
| Что нужно серверу | Только исходящий доступ в интернет | Публичный HTTPS-адрес на порту 443, 80, 88 или 8443 |
| Домен и сертификат | Не нужны | Нужны, самоподписанный сертификат загружают в setWebhook |
| Несколько копий бота | Нельзя: две копии мешают друг другу | Можно раздать запросы нескольким процессам за прокси; Telegram держит до 100 соединений, по умолчанию 40 |
| Работает с домашнего ПК | Да, даже за роутером | Только с внешним адресом |
Данные на 14 октября 2026.
Вопросы и ответы
Можно ли держать телеграм-бота на домашнем сервере?
Да, если бот работает через long polling: ему нужен только исходящий интернет. Для вебхука понадобится внешний адрес и проброс порта, а отключение света или интернета дома остановит бота.
Почему телеграм-бот перестал получать сообщения через getUpdates?
Скорее всего, для него установлен вебхук: пока он есть, getUpdates не работает. Удалите его методом deleteWebhook и перезапустите бота.
Как запустить телеграм-бота на сервере, чтобы он не выключался?
Оформить его службой systemd с Restart=always или контейнером Docker с политикой restart unless-stopped. Тогда бот поднимется и после сбоя, и после перезагрузки сервера.