11 октября 2026 г.
Как запустить Telegram-бота 24/7, чтобы он работал без вашего компьютера
Бот работает, пока открыт терминал на вашем компьютере. Закрыли ноутбук — бот замолчал. Чтобы он отвечал круглосуточно, его нужно запустить там, где он будет работать без вас, и сделать так, чтобы после падения он поднимался сам. Ниже честно про три варианта и про то, что в каждом ломается.
Вариант 1. Свой компьютер
Можно оставить бота работать дома: запустить внутри screen или tmux, чтобы он не умирал при закрытии терминала:
tmux new -s bot python bot.py # Ctrl+B, затем D — отсоединиться, бот продолжит работать tmux attach -t bot # вернуться
Для теста нормально, для живых пользователей — нет:
- компьютер уходит в сон, перезагружается на обновления, пропадает интернет — бот лежит;
- после падения из-за ошибки сам он не поднимется;
- вы узнаете, что бот не работает, от пользователей.
Вариант 2. VPS и systemd
Арендовать виртуальный сервер и запустить бота как системную службу. systemd будет держать его запущенным, перезапускать после падения и поднимать после перезагрузки сервера. Файл /etc/systemd/system/mybot.service:
[Unit] Description=Telegram bot After=network-online.target Wants=network-online.target [Service] User=bot WorkingDirectory=/home/bot/mybot EnvironmentFile=/home/bot/mybot/.env Environment=PYTHONUNBUFFERED=1 ExecStart=/home/bot/mybot/.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 # смотреть лог
.env в EnvironmentFile — строки вида BOT_TOKEN=123:ABC, без export. PYTHONUNBUFFERED=1 нужен, чтобы print сразу попадал в журнал, а не терялся при падении.
Это рабочий и самый гибкий вариант, но вся настройка и обслуживание на вас:
- установить Python нужной версии, git, создать пользователя, настроить SSH и обновления;
- выкатывать новую версию руками:
git pull, обновить зависимости,systemctl restart; Restart=alwaysперезапускает бота молча: если он падает каждые пять секунд из-за ошибки в коде, systemd будет поднимать его по кругу, и узнаете вы об этом только из журнала;- если сервер в России, бот может отвечать с задержкой или не отвечать из-за сети до Telegram — подробно здесь.
Вариант 3. Хостинг, который запускает код из репозитория
Платформы, где вы указываете репозиторий, а сборку, запуск и перезапуск берут на себя они. Сервер настраивать не нужно, новая версия выкатывается кнопкой или сама после push. Минусы — меньше контроля, и у универсальных платформ свои требования: нужен веб-порт, Dockerfile или особый файл конфигурации. Перед выбором проверьте, что площадка поддерживает «фоновый процесс без веб-сервера» — бот на long polling именно такой.
Что сделать при любом варианте
- Токен — не в коде. Читайте его из переменной окружения (
os.getenv("BOT_TOKEN")). Токен в репозитории — это токен, который рано или поздно утечёт; если уже закоммитили, перевыпустите его в@BotFather. - Файл зависимостей. Без
requirements.txtсервер не знает, что ставить. Как его сделать. - Данные не рядом с кодом. База SQLite и JSON-файлы должны лежать в папке, которая переживает обновление кода. Почему и куда.
- Один экземпляр бота. Остановите локальную копию, когда запускаете на сервере, иначе получите Conflict: terminated by other getUpdates request.
- Узнавать о падении раньше пользователей. Хоть простым скриптом, который пишет вам в Telegram, если бот не отвечает.
Вариант для тех, кто не хочет администрировать сервер
botdepo — хостинг именно для Telegram-ботов: вы даёте ссылку на репозиторий GitHub и токен, мы собираем и запускаем бота на сервере в Нидерландах (без проблем с доступом к Telegram), перезапускаем при падении, показываем логи в браузере и пишем вам в Telegram, если бот упал и сам не поднимается. Для первого бота есть бесплатный пробный период. Задеплоить бота.
Частые вопросы
Нужен ли боту белый IP или домен?
Для long polling — нет: бот сам ходит к Telegram за сообщениями. Домен и HTTPS нужны только для webhook.
Сколько ресурсов нужно простому боту?
Немного: типичный бот на aiogram или pyTelegramBotAPI занимает десятки мегабайт памяти и почти не грузит процессор, пока им не пользуются сотни людей одновременно.
Можно ли бесплатно?
Свой компьютер — бесплатно, но ненадёжно. У многих хостингов есть пробный период или бесплатный тариф с ограничениями — смотрите, не «засыпает» ли бот на нём без активности.