Пошаговая инструкция 2026 · VPS для Telegram-бота

Как запустить Telegram-бота на VPS:деплой на Python и Node.js

Деплой Telegram-бота на VPS с нуля: подключение по SSH, установка Python 3.11 или Node.js 20, запуск бота, хранение токена в.env, автозапуск через systemd (Python) или PM2 (Node.js), настройка логов. Подходит для Ubuntu 22.04 / Debian 12.

VPS от 409 ₽/месСтартовая конфигурация под Telegram-бота
1 vCPU / 1 GB RAMДостаточно для бота на 10 000+ пользователей
Python 3.11 / Node.js 20Рекомендуемый стек для ботов в 2026

Пошаговый деплой Telegram-бота на VPS: Python и Node.js

Инструкция проверена на Ubuntu 22.04 LTS и Debian 12. Переключайте вкладки Python / Node.js — команды адаптированы под каждый стек.

01

Подключитесь к VPS по SSH и обновите систему

После активации VPS на SpaceWeb получите IP и пароль root. Войдите по SSH и обновите пакеты — это обязательный первый шаг перед любой установкой.

ssh root@your_server_ip apt update && apt upgrade -y
02

Установите Python 3.11 или Node.js 20

Выберите стек вашего бота. Python 3.11 с pip и venv — стандарт для aiogram и python-telegram-bot. Node.js 20 LTS — для telegraf и Grammy.

# Python 3.11 + pip + venvapt install -y python3.11 python3.11-venv python3-pip python3.11 --version
# Node.js 20 LTS через NodeSourcecurl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt install -y nodejs node --version && npm --version
03

Загрузите код бота на сервер

Самый удобный способ — клонировать репозиторий через Git. Если репозитория нет, используйтеscpдля передачи файлов с локальной машины.

# Клонировать репозиторийapt install -y git git clone https://github.com/yourname/your-bot.git ~/bot cd ~/bot
# Загрузить папку с локального компьютера# Выполнить на своём компьютере, не на VPS:scp -r ./your-bot root@your_server_ip:~/bot
💡 Рекомендуем хранить код в Git — так удобно обновлять бота командойgit pullпрямо на сервере.
04

Сохраните токен бота в .env — никогда не в коде

Токен от BotFather нельзя хранить прямо в исходниках. Создайте файл.envрядом с ботом и добавьте его в.gitignore. Бот читает токен через переменные окружения.

# Создать .env файлecho "BOT_TOKEN=1234567890:AABBccDDeEffGG" > ~/bot/.env echo ".env" >> ~/bot/.gitignore# В коде бота (Python):# from dotenv import load_dotenv; import os# load_dotenv()# TOKEN = os.getenv("BOT_TOKEN")
# Создать .env файлecho "BOT_TOKEN=1234567890:AABBccDDeEffGG" > ~/bot/.env echo ".env" >> ~/bot/.gitignore# В коде бота (Node.js):# require('dotenv').config()# const token = process.env.BOT_TOKEN
05

Установите зависимости и запустите бота вручную

Сначала запустите бота вручную и убедитесь, что он отвечает в Telegram. Это позволит поймать ошибки до настройки автозапуска.

# Создать виртуальное окружение и установить библиотекиcd ~/bot python3.11 -m venv venv source venv/bin/activate pip install aiogram python-dotenv# Тестовый запускpython3 main.py
# Установить зависимостиcd ~/bot npm install telegraf dotenv# Тестовый запускnode index.js
✅ Бот отвечает в Telegram? Остановите его через Ctrl+C и переходите к шагу 6 — настройке автозапуска.
06

Настройте автозапуск — systemd (Python) или PM2 (Node.js)

Без автозапуска бот остановится при закрытии терминала или перезагрузке VPS. systemd — нативный способ для Python. PM2 — стандарт для Node.js с удобными командами управления.

# Создать systemd-сервисcat > /etc/systemd/system/tgbot.service<< EOF [Unit] Description=Telegram Bot After=network.target [Service] WorkingDirectory=/root/bot EnvironmentFile=/root/bot/.env ExecStart=/root/bot/venv/bin/python3 main.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable tgbot systemctl start tgbot systemctl status tgbot
# Установить PM2 глобальноnpm install -g pm2# Запустить бота через PM2cd ~/bot pm2 start index.js --name tgbot# Автозапуск при перезагрузке VPSpm2 save pm2 startup# Полезные команды PM2pm2 logs tgbot# логи в реальном времениpm2 restart tgbot# перезапускpm2 status# статус всех процессов

Частые ошибки при деплое Telegram-бота

  • Токен прямо в коде — утечёт через Git. Только через.env.
  • Конфликт polling + webhook — бот отвечает через раз или падает.
  • Нет автозапуска — бот останавливается при закрытии SSH-сессии.
  • Неправильный Python: aiogram 3 требует Python 3.9+, лучше 3.11.
  • Бот запущен от root без ограничений — риск безопасности.

Что настроить после успешного запуска

  • Перевести бота на webhook вместо polling — быстрее и экономнее по ресурсам.
  • Подключить PostgreSQL или SQLite для хранения данных пользователей.
  • Настроить logrotate — чтобы логи не заполняли диск VPS.
  • Добавить мониторинг черезpm2 monitили Grafana + Prometheus.

Какой VPS выбрать для Telegram-бота: конфигурации

Выбор конфигурации зависит от числа пользователей, режима работы бота и наличия базы данных на том же сервере.

Конфигурация VPSМасштаб ботаСтек / режимЦена/месОценка
1 vCPU / 1 GB RAMдо 10 000 пользователейPython / Node.js, pollingот 409 ₽Старт
2 vCPU / 2 GB RAMдо 50 000 пользователейwebhook, SQLite/PostgreSQLот 599 ₽Оптимально
4 vCPU / 8 GB RAM100k+ пользователейRedis, очереди, несколько ботовот 1 290 ₽Продакшн

FAQ: частые вопросы о деплое Telegram-бота на VPS

Ответы на популярные вопросы о запуске, поддержании работы и масштабировании Telegram-бота на VPS.

Зачем Telegram-боту нужен VPS — разве нельзя запускать на компьютере?

Бот на локальном компьютере работает только пока включён ПК. VPS обеспечивает бесперебойную работу 24/7, статичный IP для webhook и стабильное соединение. Без VPS бот недоступен при каждом отключении интернета или перезагрузке компьютера.

Что лучше для Telegram-бота — Python или Node.js?

Оба стека одинаково хорошо поддерживаются Telegram Bot API. Python с aiogram 3 — стандарт в русскоязычном сообществе, больше обучающих материалов. Node.js с telegraf подойдёт, если вы уже работаете в экосистеме JavaScript. Выбор не влияет на требования к VPS.

Polling или webhook — что выбрать для бота на VPS?

Polling проще в настройке — бот сам опрашивает сервера Telegram каждые несколько секунд. Webhook быстрее и экономнее: Telegram сам присылает обновления мгновенно. Для webhook нужен SSL-сертификат (бесплатный Let's Encrypt подходит). Для продакшн-бота рекомендуется webhook.

Как обновить код бота на VPS без остановки?

Если используете Git: выполнитеgit pullв папке бота, затемsystemctl restart tgbot(Python) илиpm2 restart tgbot(Node.js). Бот недоступен лишь несколько секунд во время перезапуска — пользователи этого не замечают.

Минимальный VPS за 409 ₽ справится с ботом?

Да — 1 vCPU / 1 GB RAM достаточно для бота с аудиторией до 10 000 пользователей в polling-режиме без тяжёлой базы данных. При подключении PostgreSQL или Redis на том же сервере рекомендуется апгрейд до 2 GB RAM.

Как посмотреть логи Telegram-бота на VPS?

Для systemd-сервиса:journalctl -u tgbot -f— логи в реальном времени. Для PM2:pm2 logs tgbot. Добавьте ротацию логов черезpm2 install pm2-logrotate, чтобы они не переполнили диск VPS.

Можно ли запустить несколько Telegram-ботов на одном VPS?

Да — каждый бот запускается как отдельный systemd-сервис или PM2-процесс. На VPS с 2 GB RAM комфортно работают 3–5 ботов на Python или до 10 лёгких Node.js-ботов одновременно.

Арендуйте VPS и запустите Telegram-бота за 20 минут

Выберите конфигурацию на SpaceWeb — от минимального VPS за 409 ₽ для первого бота до мощного сервера для продакшн-проектов с Redis и PostgreSQL.

Арендовать VPS для Telegram-бота

Инструкция по деплою Telegram-бота на VPS: Python 3.11 + aiogram, Node.js 20 + telegraf, systemd, PM2, .env.

Актуально для Ubuntu 22.04 / Debian 12 на апрель 2026 года. Проверяйте актуальные версии библиотек на pypi.org и npmjs.com.