Как разместить Telegram-бота на сервере 24/7
7 октября 2026 г.9 мин чтенияАвтор: Мырзакулов Илияс Озганбаевич
Пока бот запущен только на вашем компьютере, он отвечает клиентам лишь когда компьютер включён. Чтобы бот работал круглосуточно, его размещают на сервере. Покажем, как это сделать новичку, на примере бота на Python.
Где разместить бота
- Виртуальный сервер (VPS). Недорогой вариант с полным контролем. Подойдёт, если вы готовы пройти несколько шагов настройки.
- Облачные платформы для приложений. Загружаете проект, платформа запускает его и перезапускает при сбое. Проще, но условия и цены зависят от платформы.
- Домашний компьютер или сервер. Не рекомендуется: отключения света и интернета останавливают бота.
Для простого бота хватит самого маленького тарифа VPS. Выбирайте актуальную версию Linux (например, Ubuntu) и включайте вход по SSH-ключу.
Подготовка проекта
- 01Убедитесь, что бот работает локально.
- 02Проверьте, что токен берётся из переменной окружения или файла .env, а не из кода.
- 03Составьте список библиотек в requirements.txt.
- 04Загрузите проект на сервер, например, через git или копирование по SSH.
Запуск на сервере
- 01Подключитесь к серверу по SSH.
- 02Установите Python и создайте виртуальное окружение для проекта.
- 03Установите зависимости командой pip install -r requirements.txt.
- 04Создайте файл .env с токеном и ограничьте к нему доступ.
- 05Запустите бота вручную и убедитесь, что он отвечает.
Автозапуск через systemd
Если закрыть окно терминала, бот остановится. Чтобы он работал постоянно и поднимался после сбоя или перезагрузки сервера, создайте службу systemd. Файл службы называется, например, mybot.service и лежит в /etc/systemd/system/.
[Unit] Description=Telegram bot After=network.target [Service] User=bot WorkingDirectory=/opt/mybot EnvironmentFile=/opt/mybot/.env ExecStart=/opt/mybot/venv/bin/python bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Затем включите и запустите службу командами systemctl daemon-reload и systemctl enable --now mybot. Статус смотрите командой systemctl status mybot, а логи командой journalctl -u mybot -f.
Другой вариант: Docker
Если вы работаете с Docker, упакуйте бота в контейнер и запускайте с политикой автоматического перезапуска. Так проще переносить бота между серверами и обновлять. Запрос для ИИ: «подготовь Dockerfile и docker-compose.yml для моего бота с автоперезапуском и чтением токена из переменных окружения».
Логи и контроль
- пишите в лог ошибки и важные события, но не токены и не персональные данные;
- настройте уведомление себе, если бот остановился (например, проверка раз в несколько минут);
- заглядывайте в логи после каждого обновления.
Безопасность сервера
- не запускайте бота от root, создайте отдельного пользователя;
- используйте вход по SSH-ключам и отключите вход по паролю;
- включите файрвол и оставьте открытыми только нужные порты;
- регулярно обновляйте систему и библиотеки;
- делайте резервные копии базы данных и настроек.
Как обновлять бота
- 01Внесите изменения и проверьте их локально.
- 02Загрузите новую версию на сервер.
- 03Перезапустите службу командой systemctl restart mybot.
- 04Проверьте логи и отправьте боту тестовое сообщение.
Что дальше
Перед запуском проверьте проект по чек-листу безопасности, а общие шаги создания бота описаны в основном гайде по Telegram-ботам.
Частые вопросы
Сколько стоит размещение бота?
Простому боту хватает самого маленького тарифа VPS или облачной платформы. Цены и условия зависят от провайдера, поэтому смотрите актуальные тарифы на их сайтах.
Что лучше: VPS или облачная платформа?
Платформа проще в запуске, VPS даёт больше контроля и подходит для нескольких проектов. Для первого бота подойдёт любой вариант, который вы сможете настроить.
Что делать, если бот перестал отвечать?
Проверьте статус службы и логи, убедитесь, что сервер запущен, токен действителен и нет ошибок в последнем обновлении. Если ничего не помогает, откатитесь к предыдущей версии.