Telegram-бот, запущенный на домашнем компьютере или ноутбуке, работает, пока компьютер включён. Бесплатные платформы засыпают, обрезают время работы или неожиданно меняют условия. Бот, которым пользуются люди, должен жить на сервере, который работает круглосуточно. Хорошая новость: ботам нужно совсем немного ресурсов, и самый младший VPS справится с несколькими ботами сразу. Ниже — сколько ресурсов нужно, где разместить сервер с учётом ситуации с Telegram в России, чем отличаются polling и webhook и как запустить бота так, чтобы он не падал.
Сколько ресурсов нужно боту
| Бот | Память | Тариф |
|---|---|---|
| Простой бот на Python (aiogram, python-telegram-bot) или Node.js: меню, ответы, уведомления | 50–150 МБ | Lite — хватит на несколько ботов |
| Бот с базой данных (PostgreSQL, Redis), рассылками, платежами | 300–800 МБ | Lite или Start |
| Бот с нейросетью через API (OpenAI, Gemini и т. п.) | 100–300 МБ | Lite — вычисления идут на стороне API |
| Бот с локальной обработкой: распознавание речи, обработка видео, локальная модель | от 4 ГБ, нужен мощный процессор | Medium и выше, для тяжёлой обработки — HI-CPU |
Бот сам по себе почти не нагружает сервер: большую часть времени он ждёт сообщений. Ресурсы съедают база данных, обработка файлов и большие рассылки.
Где размещать: Россия или за рубежом
Для бота это важнее, чем для сайта, по двум причинам.
Ограничения Telegram в России. С 10 февраля 2026 года Роскомнадзор официально замедляет Telegram, работа мессенджера в разных регионах и у разных операторов нарушается неравномерно. Сервер бота постоянно обменивается данными с API Telegram, и если сервер стоит в России, замедление может задеть и его: бот будет отвечать с задержкой или терять соединение. Сервер за рубежом связывается с Telegram напрямую, без этих ограничений. Пользователям из России это не поможет, если у них самих Telegram работает плохо, но хотя бы ваша сторона будет стабильной.
Внешние API. API крупных нейросетей — OpenAI, Google Gemini — не обслуживают российские IP-адреса. То же касается части зарубежных платёжных систем и сервисов. Если бот к ним обращается, сервер нужен за рубежом.
Удобные варианты: Финляндия (ближе всего к российским пользователям, быстрое железо) и Нидерланды (крупнейший узел обмена трафиком в Европе). Если бот хранит персональные данные пользователей из России — телефоны, имена, адреса заказов, — помните о 152-ФЗ: такие базы при сборе должны находиться в России. Подробнее — в статье «Российские VPS или зарубежные».
Polling или webhook
Бот узнаёт о новых сообщениях одним из двух способов:
| Long polling | Webhook | |
|---|---|---|
| Как работает | Бот сам постоянно спрашивает Telegram: «есть новые сообщения?» | Telegram сам присылает каждое сообщение на адрес вашего сервера |
| Что нужно | Ничего, кроме выхода в интернет | Домен или IP, HTTPS-сертификат, открытый порт |
| Порты | Входящие не нужны | Telegram отправляет только на 443, 80, 88 или 8443 |
| Когда лучше | Начало, один бот, простота | Много ботов на одном сервере, большой поток сообщений |
Для начала polling проще: запустили — работает, ни домена, ни сертификата. На webhook переходят, когда ботов становится несколько или сообщений много. Для webhook понадобится домен с A-записью на сервер («DNS: как привязать домен к VPS») и сертификат Let's Encrypt («SSL на VPS»). Обычно бот слушает локальный порт, а Nginx принимает запросы Telegram на 443 и передаёт их боту.
Для webhook обязательно задайте секретный токен (параметр secret_token в setWebhook) и проверяйте заголовок X-Telegram-Bot-Api-Secret-Token в каждом запросе: иначе любой, кто узнает адрес, сможет слать боту поддельные обновления.
Запуск бота на Python: пошагово
Команды для Debian или Ubuntu. Предполагается, что сервер уже базово настроен: свой пользователь, вход по ключу, файрвол — см. «Как настроить VPS после покупки».
1. Отдельный пользователь и окружение
sudo apt install python3-venv git sudo adduser --disabled-password --gecos "" bot sudo -u bot -i git clone https://github.com/you/your-bot.git app cd app python3 -m venv .venv .venv/bin/pip install -r requirements.txt
Отдельный пользователь без пароля и без прав администратора: если в боте найдут уязвимость, взломщик получит доступ только к его файлам, а не ко всему серверу.
2. Токен — в файле окружения, не в коде
echo 'BOT_TOKEN=123456:ABC...' > /home/bot/app/.env chmod 600 /home/bot/app/.env
Токен в коде рано или поздно оказывается в публичном репозитории. Если токен утёк — сразу перевыпустите его у @BotFather командой /revoke.
3. Служба systemd
Чтобы бот запускался после перезагрузки сервера и сам поднимался после падения, оформите его службой. Файл /etc/systemd/system/mybot.service:
[Unit] Description=Telegram bot After=network-online.target Wants=network-online.target [Service] User=bot WorkingDirectory=/home/bot/app EnvironmentFile=/home/bot/app/.env ExecStart=/home/bot/app/.venv/bin/python bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl enable --now mybot journalctl -u mybot -f # лог бота в реальном времени
Restart=always поднимает бота после любого падения через 5 секунд. На один сервер можно поставить сколько угодно таких служб — по одной на бота.
4. Обновление
sudo -u bot git -C /home/bot/app pull sudo systemctl restart mybot
Если ботов несколько и у них разные зависимости, удобнее Docker: каждый бот в своём контейнере, обновление одной командой («Docker на VPS»). Для бота на Node.js логика та же — служба systemd или менеджер процессов вроде pm2.
Чтобы бот не падал и не терял данные
- Обрабатывайте ошибки сети. Соединение с Telegram и внешними API иногда рвётся; бот должен повторять запрос, а не падать. Популярные библиотеки умеют это из коробки — проверьте настройки таймаутов.
- Соблюдайте лимиты Telegram. При рассылке по всем пользователям не отправляйте сообщения сплошным потоком: Telegram ограничивает частоту, и при превышении бот получает ошибку 429. Рассылайте порциями с паузами.
- Бэкап базы на другой сервер: пользователи, подписки, история заказов — «Сервер для бэкапа».
- Мониторинг. Простейшая проверка — команда
/ping, на которую бот отвечает, или проверка, что служба жива. Уведомление о падении бота лучше получать в другой канал, а не в Telegram, — на случай, если проблема в нём («Мониторинг серверов»). - Логи не должны съесть диск: journald ограничьте параметром
SystemMaxUse, свои файлы логов — через logrotate.
Какой тариф взять
- Один или несколько простых ботов — Lite: 1 vCPU, 1 ГБ.
- Боты с базой данных, Redis и рассылками — Start: 2 vCPU, 2 ГБ.
- Бот с локальной обработкой медиа — Medium и выше или HI-CPU.
Lite в Нидерландах — $6/мес Lite в Финляндии — $6/мес
Цены указаны на момент публикации, оплата у провайдера. Обе площадки — с NVMe; Финляндия ближе к российским пользователям, Нидерланды — крупнейший сетевой узел Европы.
Коротко
- Простому боту хватает 50–150 МБ памяти; Lite за $6 потянет несколько ботов.
- Для бота с нейросетями и зарубежными API сервер нужен за рубежом; там же стабильнее связь с Telegram, который в России с февраля 2026 года официально замедляют.
- Для старта хватит long polling; webhook — когда ботов несколько, обязательно с HTTPS и секретным токеном.
- Запускайте бота службой systemd с
Restart=alwaysот отдельного пользователя, токен — в файле окружения. - Делайте бэкап базы, соблюдайте лимиты рассылок и мониторьте бота не только через Telegram.
