цены сверены 5 октября 2026 года

Сервер для Telegram-бота: от покупки до запуска

Для Telegram-бота на Python хватит VPS с одним ядром и 1 ГБ памяти. Дальше нужно поставить Python, залить код и запустить бота как службу systemd: тогда он стартует сам после перезагрузки и перезапускается при сбое.

Сервер для Telegram-бота: от покупки до запуска
Сервер для Telegram-бота: от покупки до запускаhostfakt.ru

Сколько ресурсов нужно

Обычный бот отвечает на сообщения, читает базу и ходит во внешние API. Это лёгкая нагрузка. Для старта хватает 1 ядра и 1 ГБ памяти. Дисковое место зависит от ваших данных, но для кода и небольшой базы его нужно немного.

Ресурсов потребуется больше, если бот:

VPS с такими параметрами есть в базе. Самый дешёвый из 70 тарифов стоит от 140 ₽ в месяц, но он может быть слабее, чем нужно вам, поэтому смотрите на число ядер и объём памяти, а не только на цену. Для лёгкого бота ориентируйтесь на тарифы с 1 ядром и 1 ГБ или чуть больше, чтобы остался запас на систему и обновления. Подходящие варианты показывает страница VPS для Telegram-бота и конфигурация 1 ядро, 1 ГБ.

Проверено на сервере 5 октября 2026 года: шаги 3–7 этой статьи выполнены по порядку на новом VPS с Ubuntu 26.04. Для Ubuntu 24.04 команды те же, но на ней мы их не прогоняли.

Шаг 1. Купите VPS с Ubuntu

Выберите тариф и при заказе укажите образ системы Ubuntu 24.04 или 26.04. После оплаты хостер пришлёт IP-адрес сервера, логин (чаще всего root) и пароль или предложит загрузить SSH-ключ.

Если вы впервые настраиваете сервер, сначала прочитайте первую настройку VPS на Ubuntu.

Шаг 2. Подключитесь по SSH

SSH — это защищённое подключение к консоли сервера. В терминале на вашем компьютере выполните:

ssh root@IP_АДРЕС

Команда открывает консоль сервера под пользователем root. Вместо IP_АДРЕС подставьте адрес из письма хостера. Подробности есть в статье подключение к VPS по SSH.

Шаг 3. Поставьте Python и виртуальное окружение

apt update
apt install -y python3 python3-venv python3-pip

Первая команда обновляет список пакетов. Вторая ставит Python, модуль venv для виртуальных окружений и менеджер пакетов pip. В Ubuntu 24.04 стоит Python 3.12, в Ubuntu 26.04 Python 3.14.

Виртуальное окружение нужно, чтобы библиотеки бота не смешивались с системными. В Ubuntu 24.04 и 26.04 установка пакетов pip в системный Python по умолчанию запрещена, поэтому venv здесь обязателен.

Создайте отдельного пользователя для бота, чтобы он не работал от root:

adduser --disabled-password --gecos "" botuser

Команда создаёт пользователя botuser без пароля и без лишних вопросов.

Шаг 4. Залейте код и поставьте зависимости

С вашего компьютера скопируйте папку с ботом на сервер:

scp -r ./mybot root@IP_АДРЕС:/home/botuser/

Команда копирует папку mybot на сервер в домашний каталог botuser. Если код лежит в Git, можно вместо этого выполнить git clone на сервере (для этого понадобится apt install -y git).

Дальше на сервере:

chown -R botuser:botuser /home/botuser/mybot
su - botuser
cd mybot
python3 -m venv venv
venv/bin/pip install -r requirements.txt
exit

По строкам: отдаём файлы пользователю botuser, переключаемся на него, заходим в папку бота, создаём окружение venv, ставим в него библиотеки из requirements.txt и возвращаемся в root.

Шаг 5. Храните токен в переменных окружения

Токен, который выдал @BotFather, даёт полный доступ к боту. Не пишите его в код и не кладите в Git. Положите в файл с настройками, закрытый от других пользователей:

nano /home/botuser/mybot.env

Содержимое файла:

BOT_TOKEN=сюда_ваш_токен

Затем ограничьте доступ:

chown botuser:botuser /home/botuser/mybot.env
chmod 600 /home/botuser/mybot.env

Первая строка делает владельцем файла botuser, вторая разрешает читать и менять файл только владельцу. В коде токен читается так: os.environ["BOT_TOKEN"].

Шаг 6. Запустите бота как службу systemd

systemd — менеджер служб в Ubuntu. Он запускает программу при старте сервера и перезапускает её, если она упала. Создайте файл:

nano /etc/systemd/system/mybot.service

Пример содержимого (пути и имя файла bot.py замените на свои):

[Unit]
Description=Telegram bot
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/mybot
EnvironmentFile=/home/botuser/mybot.env
ExecStart=/home/botuser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Что здесь важно: EnvironmentFile подключает токен, ExecStart запускает Python из вашего окружения, Restart=always перезапускает бота после сбоя через 5 секунд.

Включите и запустите службу:

systemctl daemon-reload
systemctl enable --now mybot
systemctl status mybot

Первая команда перечитывает файлы служб. Вторая включает автозапуск и сразу запускает бота. Третья показывает состояние: должно быть active (running).

Как смотреть журнал

Всё, что бот печатает в консоль, systemd собирает в журнал:

journalctl -u mybot -f

Команда показывает записи службы mybot и продолжает выводить новые (выход по Ctrl+C). Чтобы увидеть последние 100 строк, добавьте -n 100 вместо -f.

После изменения кода перезапустите службу командой systemctl restart mybot.

Что делать дальше

Цены в базе сверены 5 октября 2026 года.