Знакомая история: бот написан, токен от BotFather лежит в блокноте, /start бодро отвечает — но только пока на компьютере открыт терминал со скриптом. Закрыли ноутбук, он ушёл в спящий режим, на минуту пропал интернет — и бот молчит, хотя пользователи продолжают ему писать. Чтобы отвечать круглосуточно, скрипту нужна машина, которая не выключается. Разбираем, что именно мешает боту дожить до утра и как это решается, когда инфраструктуру берёт на себя платформа для деплоя вроде Dockbox.
Почему бот замолкает вместе с вашим компьютером
Пока процесс идёт на ноутбуке, он живёт ровно столько, сколько живёт сессия. Выключение, спящий режим, разрыв Wi-Fi, случайно закрытая вкладка терминала — и бот недоступен. Чтобы отвечать всегда, процесс должен работать на машине, которая не выключается и постоянно находится в сети. Ноутбук для этого не предназначен: у него другая логика работы.
Оставить ноутбук включённым — плохая идея
Формально так можно, но продержится это пару дней. Компьютер шумит, греется, уходит в перезагрузку из-за обновлений, а при первом же сбое сети бот замолкает — и узнаете вы об этом не сразу, а когда сами решите ему написать. Круглосуточная работа — это история про сервер, а не про домашнюю технику в углу комнаты.
Боту нужно место, где его запускают без вас
Дальше есть три варианта, и они принципиально разные.
Свой VPS. Вы арендуете виртуальный сервер, ставите окружение, настраиваете автозапуск, следите за обновлениями и за тем, чтобы процесс не падал. Контроль полный, но и ответственность целиком на вас: упало — поднимаете руками, даже ночью.
Домашний компьютер. Годится только для отладки: пока ПК включён, бот жив, дальше — нет.
Платформа для деплоя. Вы загружаете код, платформа сама разворачивает окружение и перезапускает процесс, если тот упал. Именно это делает Dockbox: код уезжает на серверы платформы, бот стартует и поднимается сам после сбоя. Ваш компьютер при этом может быть выключен — бот продолжает отвечать.
Уберите токен из кода в секрет
Прежде чем выкладывать проект, вынесите токен бота из исходников в переменную окружения — иначе он уедет в репозиторий вместе с кодом и останется там навсегда.
Плохой вариант:
TOKEN = "7123456789:AA..."
bot = Bot(token=TOKEN)
Хороший вариант:
import os
TOKEN = os.environ["BOT_TOKEN"]
bot = Bot(token=TOKEN)
При настройке проекта Dockbox попросит токен отдельно и подставит его как секрет: ни в коде, ни в архиве он не окажется. Туда же стоит сложить всё остальное, что бот читает через os.environ — строку подключения к базе, ключи внешних API, ваш Telegram ID для админских команд.
Загрузите бота и оставьте его работать
Залейте код архивом или импортируйте из Git-репозитория. Платформа определит язык (Python, Node.js и другие), соберёт проект и запустит бота. После этого панель можно закрывать, а компьютер — выключать: процесс живёт на сервере и продолжает слушать Telegram.
Если что-то не завелось, логи видны в панели в реальном времени. Чаще всего причина банальна — забытая переменная окружения, недостающая зависимость или второй запущенный экземпляр с тем же токеном (Telegram отвечает на это 409 Conflict). Всё это написано в логе прямым текстом.
Про режим работы и тарифы
Бот работает постоянно, пока запущен его контейнер: платформа следит за процессом и перезапускает его при сбое. Код, настройки и токен остаются на месте, ничего не удаляется. Убедиться, что проект собирается и стартует, можно сразу после деплоя, а дальше он работает круглосуточно. Круглосуточность — стандартный режим Dockbox, а не отдельная опция: лимита по времени работы нет ни на одном тарифе. Тарифы различаются ресурсами и числом проектов, а не режимом работы.
Разница между ботом и сайтом — только во внешнем виде. У сайта есть публичная ссылка, а у бота её нет: сайт отвечает на входящий запрос, а бот сам опрашивает Telegram и всё время ждёт сообщения, без внешнего запроса. На режим работы это не влияет: и сайт, и бот на Dockbox работают постоянно, пока запущен их контейнер, и перезапускаются платформой при сбое. Лимита по времени нет ни там, ни там — вы платите за ресурсы и число проектов, а не за круглосуточность.
Итог
Чтобы Telegram-бот работал круглосуточно, не нужны ни ноутбук, оставленный включённым, ни арендованный сервер с ручной настройкой автозапуска. Нужно место, которое держит процесс живым само. Загрузите код в Dockbox — и бот будет отвечать всегда, даже когда ваш компьютер выключен.
Похожие материалы
Если бот только пишется, начните с хостинга Telegram-бота на Python — там про структуру проекта и запуск. Про превращение кода из ChatGPT в живого бота — отдельный разбор. А если хотите отвечать на сообщения без постоянного опроса Telegram — смотрите бот на вебхуках.
Частые вопросы
Как заставить бота работать, когда компьютер выключен?
Бота нужно унести с компьютера туда, где процессу обеспечат постоянную работу. На Dockbox вы загружаете код, платформа запускает бота на своих серверах и перезапускает его после сбоя — отвечает ли при этом ваш ноутбук, уже не важно.
Обязателен ли платный тариф для круглосуточной работы?
Нет. Круглосуточность на Dockbox — стандартный режим, а не опция, зависящая от тарифа: бот работает постоянно, пока запущен его контейнер, а платформа перезапускает процесс при сбое. Никакого ограничения по времени нет — ни у ботов, ни у сайтов. Первый месяц на Starter (990 ₽/мес) бесплатный, дальше тарифы различаются ресурсами, числом проектов и ценой (Pro — 2490 ₽/мес, Team — 4990 ₽/мес), но не режимом работы. У бота нет публичной ссылки, поэтому он сам всё время ожидает сообщений — и делает это круглосуточно на любом тарифе.
Можно просто оставить ноутбук включённым?
Технически да, но это ненадёжно: ноутбук перезагружается ради обновлений, уходит в сон, теряет сеть — и бот замолкает. Для непрерывной работы его лучше перенести туда, где ничего не выключается.
Что будет, если бот упадёт с ошибкой?
Платформа перезапускает упавший проект сама. Логи доступны в панели в реальном времени, так что причину сбоя можно найти и поправить код — без дежурства у терминала.
Нужно ли настраивать автозапуск и systemd?
Нет. Автозапуск и поддержание процесса — забота платформы. Настраивать systemd, демоны и планировщики, как на обычном VPS, не требуется.