Никогда не коммитьте .env в Git. Добавьте его в .gitignore.
Как задеплоить Telegram-бота на облачный сервер: полное руководство для разработчиков

Узнавайте о выходе новых статей в блоге первыми!
Будем держать в курсе новостей и облачных трендов


Локальный запуск Telegram-бота на своём компьютере подходит для разработки и тестирования, но для production-использования требуется надёжный хостинг. Облачный сервер обеспечивает круглосуточную доступность, автоматическое восстановление при сбоях и возможность масштабирования. В этом руководстве разберём, как задеплоить Telegram-бота на облачный сервер VK Cloud — от создания виртуальной машины до настройки автозапуска.
Зачем нужен облачный сервер для Telegram-бота
Telegram-бот работает по принципу long polling или webhook — оба варианта требуют постоянно работающего процесса. Локальный компьютер для этого не подходит: его нужно выключать, он может зависнуть, а домашний IP-адрес часто меняется.
Преимущества облачного сервера для бота:
- Uptime 99.95% — бот доступен пользователям круглосуточно
- Статический IP — стабильная работа webhook без пересоздания
- Автоматический failover — при сбое оборудования VM переносится на другой хост (подробнее о высокой доступности)
- Масштабирование — можно увеличить CPU и RAM без переустановки
- Резервное копирование — встроенные snapshot и backup (документация по бэкапам)
- Изоляция — бот работает в защищённой среде, отдельно от вашей локальной машины
Хостинг Telegram-бота на облачном сервере — это стандартная практика для production-проектов любого масштаба.
Требования и подготовка
Перед началом деплоя подготовьте следующее:
Что понадобится
| Компонент | Описание |
| Токен бота | Получите у @BotFather в Telegram |
| Код бота | Python-скрипт с использованием aiogram, python-telegram-bot или другой библиотеки |
| SSH-клиент | Встроенный в Linux/macOS, PuTTY для Windows 7/8 |
| Аккаунт VK Cloud | Регистрация на cloud.vk.com |
Минимальные требования к серверу
Для простого бота без тяжёлой логики достаточно минимальной конфигурации: CPU: 1-2 vCPU RAM: 1-2 GB Диск: 10-20 GB SSD ОС: Ubuntu 22.04 LTS
Для ботов с обработкой изображений, ML-моделями или высокой нагрузкой потребуется конфигурация мощнее — от 4 vCPU и 8 GB RAM. Ознакомьтесь с доступными конфигурациями VM.
Создание виртуальной машины в VK Cloud
VK Cloud предоставляет Cloud Servers — IaaS-платформу для создания виртуальных машин с гибкой конфигурацией.
Шаг 1: Регистрация и вход
- Перейдите на cloud.vk.com и создайте аккаунт
- Подтвердите email и пополните баланс
- Войдите в личный кабинет (панель управления)
Шаг 2: Создание виртуальной машины
Следуйте официальной инструкции по созданию VM:
- Перейдите в раздел Cloud Computing → Виртуальные машины
- Нажмите Создать инстанс
- Заполните параметры: Имя: telegram-bot-prodКатегория: Standard Тип инстанса: STD3-2-4 (2 vCPU, 4 GB RAM) Зона доступности: MS1 (или ближайшая к вашим пользователям) Операционная система: Ubuntu 22.04 LTS Размер диска: 20 GB SSD
Список поддерживаемых операционных систем доступен в документации по образам ОС.
Шаг 3: Настройка сети
- Выберите существующую сеть или создайте новую
- Включите Назначить внешний IP — это обязательно для доступа из интернета (подробнее о Floating IP)
- В разделе Security Groups выберите группу, разрешающую SSH (порт 22)
Шаг 4: Создание SSH-ключа
- Выберите Создать новый ключ
- Введите имя ключа (например, telegram-bot-key)
- Нажмите Создать — браузер скачает файл telegram-bot-key.pem
- Сохраните этот файл в надёжном месте — он понадобится для подключения
Шаг 5: Запуск VM
Нажмите Создать инстанс и дождитесь статуса ACTIVE. Запишите внешний IP-адрес — он отображается в списке виртуальных машин.
Подключение к серверу по SSH
После создания VM нужно подключиться к ней по SSH для настройки окружения и деплоя бота.
Подключение из Linux/macOS
Откройте терминал и выполните:
# Установите правильные права на ключ (обязательно) chmod 400 ~/Downloads/telegram-bot-key.pem # Подключитесь к серверу ssh -i ~/Downloads/telegram-bot-key.pem ubuntu@<EXTERNAL_IP>
Замените
<EXTERNAL_IP>При первом подключении система спросит подтверждение fingerprint — введите
yesПодключение из Windows 10/11
Windows 10 и 11 имеют встроенный SSH-клиент. Откройте PowerShell или Command Prompt:
ssh -i C:\Users\YourName\Downloads\telegram-bot-key.pem ubuntu@<EXTERNAL_IP>Подключение из Windows 7/8 (PuTTY)
Для старых версий Windows используйте инструкцию по подключению через PuTTY:
- Скачайте PuTTY и PuTTYgen
- Откройте PuTTYgen → Load → выберите .pem файл
- Нажмите Save private key → сохраните как .ppk
- Откройте PuTTY:
- Host Name:
<EXTERNAL_IP> - Connection → SSH → Auth → Browse → выберите .ppk файл
- Нажмите Open
Если потеряли доступ к ключу, воспользуйтесь инструкцией по восстановлению доступа к VM.
Настройка окружения на сервере
После подключения по SSH настройте сервер для запуска Python-бота.
Обновление системы
sudo apt update && sudo apt upgrade -yУстановка Python и pip
Ubuntu 22.04 включает Python 3.10. Установите pip и venv:
sudo apt install python3-pip python3-venv git -yПроверьте версии:
python3 --version # Python 3.10.x pip3 --version # pip 22.xСоздание директории для бота
mkdir -p ~/telegram-bot cd ~/telegram-botСоздание виртуального окружения
Виртуальное окружение изолирует зависимости бота от системных пакетов:
python3 -m venv venv source venv/bin/activateПосле активации в начале строки терминала появится
(venv)Деплой кода бота
Перенесите код бота на сервер одним из способов.
Способ 1: Git clone (рекомендуется)
Если код хранится в Git-репозитории:
cd ~/telegram-bot git clone https://github.com/yourname/your-bot-repo.git .Способ 2: SCP (копирование файлов)
С локальной машины выполните:
scp -i ~/Downloads/telegram-bot-key.pem -r ./bot/* ubuntu@<EXTERNAL_IP>:~/telegram-bot/Установка зависимостей
cd ~/telegram-bot source venv/bin/activate pip install -r requirements.txtПример
requirements.txtaiogram==3.3.0python-dotenv==1.0.0aiohttp==3.9.1Настройка переменных окружения
Создайте файл
.envnano ~/telegram-bot/.envСодержимое:
BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyzСохраните: Ctrl+O, Enter, Ctrl+X.
Проверка запуска
cd ~/telegram-bot source venv/bin/activate python3 bot.pyЕсли бот запустился и отвечает на сообщения — деплой прошёл успешно. Остановите бот через Ctrl+C.
Запуск бота в фоновом режиме
Бот должен работать постоянно, даже после закрытия SSH-сессии. Есть несколько способов.
Способ 1: screen (быстрый старт)
# Установка screen sudo apt install screen -y # Создание сессии screen -S telegram-bot # Запуск ботаcd ~/telegram-bot source venv/bin/activate python3 bot.py # Отключение от сессии: Ctrl+A, затем DДля возврата к сессии:
screen -r telegram-botСпособ 2: systemd (рекомендуется для production)
Systemd обеспечивает автозапуск бота при перезагрузке сервера и автоматический перезапуск при падении.
Создайте файл сервиса:
sudo nano /etc/systemd/system/telegram-bot.serviceСодержимое:
[Unit]Description=Telegram Bot After=network.target [Service]Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/telegram-bot Environment="PATH=/home/ubuntu/telegram-bot/venv/bin"EnvironmentFile=/home/ubuntu/telegram-bot/.env ExecStart=/home/ubuntu/telegram-bot/venv/bin/python3 bot.py Restart=always RestartSec=10 [Install]WantedBy=multi-user.targetАктивируйте и запустите сервис:
# Перезагрузка конфигурации systemd sudo systemctl daemon-reload # Включение автозапуска sudo systemctl enable telegram-bot # Запуск сервиса sudo systemctl start telegram-bot # Проверка статуса sudo systemctl status telegram-botУправление сервисом:
sudo systemctl stop telegram-bot # Остановка sudo systemctl restart telegram-bot # Перезапуск sudo journalctl -u telegram-bot -f # Просмотр логов в реальном времени
Запуск за минуту
Облачные серверы для любых задач
Настройка безопасности
Развернуть бота на сервере — это только половина дела. Важно защитить его от внешних угроз.
Security Groups (Firewall)
В панели VK Cloud настройте правила Security Group:
| Направление | Протокол | Порт | Источник | Описание |
| Ingress | TCP | 22 | Ваш IP | SSH-доступ |
| Ingress | TCP | 443 | 0.0.0.0/0 | Webhook (если используется) |
| Egress | All | All | 0.0.0.0/0 | Исходящий трафик |
Подробные инструкции по созданию и настройке правил в документации.
Рекомендация: Ограничьте SSH-доступ только вашим IP-адресом. Это защитит от брутфорс-атак.
Защита токена бота
- Не храните токен в коде — используйте переменные окружения
- Не коммитьте .env — добавьте в
.gitignore - Ограничьте права на файл:
chmod 600 ~/telegram-bot/.env
Дополнительные меры
# Отключение входа по паролю (только SSH-ключи) sudo nano /etc/ssh/sshd_config # Установите: PasswordAuthentication no sudo systemctl restart sshd # Установка fail2ban для защиты от брутфорса sudo apt install fail2ban -y sudo systemctl enable fail2banМониторинг и обслуживание
После деплоя важно следить за работой бота. VK Cloud предоставляет встроенный мониторинг для отслеживания состояния VM.
Просмотр логов
# Логи systemd sudo journalctl -u telegram-bot -f # Последние 100 строк sudo journalctl -u telegram-bot -n 100 # Логи за последний час sudo journalctl -u telegram-bot --since "1 hour ago"Мониторинг ресурсов
# Использование CPU и RAM htop # Место на диске df -h # Статус бота sudo systemctl status telegram-botНастройка бэкапов
Настройте автоматическое резервное копирование в панели VK Cloud:
- Перейдите в Cloud Computing → Виртуальные машины
- Выберите VM → Настройки → Backup
- Включите ежедневное резервное копирование
VK Cloud хранит несколько копий данных на разных физических серверах, но дополнительный backup защитит от случайного удаления. Подробнее о планах резервного копирования.
Обновление бота
cd ~/telegram-bot git pull origin main sudo systemctl restart telegram-botЗаключение
Вы узнали, как задеплоить Telegram-бота на облачный сервер VK Cloud. Подведём итоги.
Чек-лист деплоя
✅ Создан аккаунт VK Cloud и пополнен баланс
✅ Создана VM (Ubuntu 22.04, 2 vCPU, 4 GB RAM)
✅ Скачан SSH-ключ (.pem файл)
✅ Назначен внешний IP
✅ Настроены Security Groups (SSH:22)
✅ Подключено по SSH
✅ Установлены Python, pip, venv
✅ Создано виртуальное окружение
✅ Код бота перенесён на сервер
✅ Установлены зависимости
✅ Настроен .env с токеном
✅ Создан systemd-сервис
✅ Включён автозапуск
✅ Настроены бэкапы
Полезные ссылки
- Документация VK Cloud
- Cloud Servers (IaaS)
- Создание виртуальной машины
- Подключение по SSH
- Security Groups
- Резервное копирование
- Документация aiogram
- Telegram Bot API
**Облачный сервер для бота** — это инвестиция в стабильность и масштабируемость вашего проекта. VK Cloud обеспечивает российские дата-центры, соответствие ФЗ-152 и техподдержку на русском языке.
Оставьте заявку, чтобы получить консультацию
Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

Почитать по теме

Как задеплоить сайт на облачный сервер: полное руководство с Nginx и HTTPS

Публичное или приватное облако: что выбрать бизнесу в России


