Pride Invest Инвестируй в себя

VPS ДЛЯ БОТА

СЕРВЕР, НА КОТОРОМ БОТ НЕ ПАДАЕТ

Бот в Telegram — это программа, которая должна быть запущена всегда. Закрыл ноутбук — бот замолчал. Поэтому его переносят на VPS: виртуальный сервер, который работает круглосуточно и принадлежит только тебе.

Хорошая новость: обычному боту нужен самый дешёвый сервер из тех, что вообще продают. Плохая: обычный хостинг для сайтов под бота не годится, и это выясняется уже после оплаты.

Боту не нужен мощный сервер. Ему нужен сервер, который не выключается.

Почему не подходит обычный хостинг

Виртуальный хостинг рассчитан на сайты: пришёл запрос — скрипт отработал и завершился. Бот устроен иначе — это постоянно работающий процесс, который сам держит соединение с Telegram.

  • Долгие процессы убивают. Хостинг завершает скрипты, которые работают дольше нескольких минут.
  • Исходящие соединения ограничены. Нестандартные порты часто закрыты, а серверы Telegram с хостинга могут быть недоступны.
  • Нет прав. Нельзя поставить нужную версию языка, библиотеки и настроить автозапуск.
Из практики

Мы наступили на это сами. С виртуального хостинга, где лежит этот сайт, запросы к Telegram просто уходили в таймаут: формы заявок не могли отправить уведомление в мессенджер. Пришлось сохранять заявки в базу сайта, а всех ботов держать на отдельном VPS.

Какой сервер нужен

Ориентироваться стоит на память: именно она кончается первой.

Простой бот
Меню, ответы на команды, приём заявок. Хватит 1 ядра и 1 ГБ памяти — самого младшего тарифа.
Бот с базой
Пользователи, платежи, рассылки по подписчикам. 1–2 ядра и 2 ГБ памяти, диск от 20 ГБ.
Несколько ботов
Считай память на каждого и складывай. На 2 ГБ спокойно живут несколько небольших ботов одновременно.
Бот с нейросетью
Если модель вызывается через внешний сервис — требования те же, что у бота с базой. Свою модель на VPS запускать не стоит: нужен другой класс железа.

Наш собственный сервер с ботами — 2 ГБ памяти, и на нём одновременно работают несколько проектов. Этого хватает, пока не начинаешь обрабатывать на нём видео или держать в памяти большие данные.

На что смотреть кроме памяти

  1. Расположение. Сервер должен стабильно видеть серверы Telegram. Перед оплатой на месяц возьми почасовой тариф или пробный период и проверь связь.
  2. IPv6. Полезная страховка: у нас на одном из серверов Telegram стабильно работал именно по IPv6, когда по обычному адресу связь рвалась.
  3. Тип диска. SSD или NVMe. На старых жёстких дисках база тормозит даже у маленького бота.
  4. Резервные копии. Снимки сервера по расписанию — услуга за небольшую доплату, которая однажды спасёт проект.
  5. Оплата. Помесячная без обязательств на год: сервер легко сменить, если что-то не так.

Как запустить бота, чтобы он работал всегда

Главная ошибка новичка — запустить бота командой в окне терминала и закрыть окно. Процесс умирает вместе с окном. Правильный способ — оформить бота как службу: система сама запускает его при старте сервера и перезапускает после падения.

  1. Подключись к серверу по SSH и создай отдельного пользователя — не работай под root.
  2. Загрузи код бота в его папку и установи зависимости в отдельное окружение.
  3. Положи токен бота в файл с переменными окружения, а не в код.
  4. Создай файл службы: что запускать, от какого пользователя, из какой папки, с перезапуском при сбое.
  5. Включи автозапуск и запусти службу.
  6. Проверь журнал службы: в нём видно, с какой ошибкой бот упал, если упал.

После этого бот переживает и перезагрузку сервера, и собственные ошибки. Что ещё настроить на сервере в первый день — в разборе про безопасность аккаунтов.

Бесплатный VPS: бывает ли

Запрос «бесплатный VPS для телеграм-бота» понятен, но вариантов три, и у каждого подвох.

  • Пробные периоды. Несколько дней или стартовый баланс. Годятся, чтобы проверить сервер, но не чтобы на нём жить.
  • Бесплатные тарифы облаков. Существуют, но требуют карту, имеют жёсткие лимиты и могут быть отключены при простое.
  • «Вечно бесплатные» хостинги. Обычно засыпают без запросов, а бот, который уснул, не отвечает пользователю.

Младший платный тариф стоит как пара чашек кофе в месяц и снимает все эти проблемы. Для бота, которым кто-то пользуется, экономить здесь нет смысла. Как выбирать сервер под сайт, а не под бота, описано в основной статье про хостинг.

Мелочи, которые ломают ботов

  • Два экземпляра. Один и тот же бот, запущенный и на сервере, и на домашнем компьютере, получает сообщения через раз. Запускай в одном месте.
  • Частые перезапуски. Каждое переподключение — событие для Telegram. Десятки рестартов за вечер могут закончиться ограничениями, особенно если бот работает через пользовательские аккаунты.
  • Создание ботов пачкой. У BotFather есть ограничение на число новых ботов за короткое время — мы упирались в него после четырёх ботов подряд с одного аккаунта.
  • Кончился диск. Журналы растут незаметно. Настрой их ротацию в первый же день.

Частые вопросы

Какой VPS нужен для телеграм-бота?

Простому боту хватает самого младшего тарифа: 1 ядро и 1 ГБ памяти. Боту с базой данных и рассылками лучше взять 2 ГБ памяти и диск от 20 ГБ.

Можно ли запустить телеграм-бота на обычном хостинге?

Обычно нет: виртуальный хостинг завершает долгие процессы, ограничивает исходящие соединения и не даёт настроить автозапуск. Боту нужен VPS.

Бывает ли бесплатный VPS для бота?

Есть пробные периоды и бесплатные тарифы облаков, но с жёсткими лимитами и требованием карты. Для постоянной работы надёжнее младший платный тариф.

Как сделать, чтобы бот работал круглосуточно?

Оформить его как службу системы: она запускает бота при старте сервера и автоматически перезапускает после сбоя. Запуск командой в окне терминала прекращается при закрытии окна.

Pride Invest — только то, что делали руками.
Без «секретных связок», обычная работа с понятной механикой.