Как перенести Telegram-бота с домашнего компьютера на VPS за 30 минут — MyCloud
Загрузка...

Как перенести Telegram-бота с домашнего компьютера на VPS за 30 минут

VPS и серверы Опубликовано: 15.09.2026 · 7 мин чтения

Бот, запущенный на ноутбуке, живёт ровно до закрытия крышки. Переезд на VPS занимает полчаса и стоит 4 000 сум в день — дальше пошаговая инструкция для Python и Node.js.

Шаг 1. Создайте сервер

В личном кабинете выберите Ubuntu 22.04 или 24.04, 1 vCPU, 1 ГБ RAM, 20 ГБ диска — этого хватит для нескольких ботов. Через 10–15 минут вы получите IP-адрес и пароль root. Для Node.js и Python разница в системе не имеет значения, Ubuntu — самый предсказуемый вариант.

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

ssh root@ВАШ_IP
apt update && apt upgrade -y
adduser bot
usermod -aG sudo bot

Работать от root — плохая привычка; создайте отдельного пользователя. Дальше все команды выполняются от него.

Шаг 3. Установите окружение

Python:

sudo apt install -y python3 python3-venv python3-pip git
cd ~ && git clone https://github.com/вы/ваш-бот.git bot
cd bot && python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

Node.js:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs git
cd ~ && git clone https://github.com/вы/ваш-бот.git bot
cd bot && npm install

Токен бота и другие секреты положите в файл .env в папке проекта, а не в код. Проверьте, что бот запускается вручную: python bot.py или node index.js. Если отвечает в Telegram — переходите дальше.

Шаг 4. Запустите как сервис systemd

Это главный шаг: сервис перезапустится сам после сбоя или перезагрузки сервера. Создайте файл /etc/systemd/system/bot.service:

[Unit]
Description=Telegram bot
After=network.target

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

[Install]
WantedBy=multi-user.target

Для Node.js замените ExecStart на /usr/bin/node index.js. Затем:

sudo systemctl daemon-reload
sudo systemctl enable --now bot
sudo systemctl status bot
journalctl -u bot -f

Последняя команда показывает логи в реальном времени — там вы увидите ошибки, если что-то пошло не так.

Шаг 5 (по желанию). Вебхуки вместо polling

Long polling работает сразу и ничего не требует. Вебхуки быстрее и экономнее, но нужен домен и HTTPS. Направьте A-запись домена на IP сервера, установите Nginx и certbot:

sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d bot.ваш-домен.uz

В конфиге Nginx пробросьте location /webhook на порт, где слушает бот (например, 8080), и зарегистрируйте вебхук через setWebhook. Telegram принимает вебхуки на портах 443, 80, 88 и 8443.

Шаг 6. Минимальная безопасность

  • Включите брандмауэр: sudo ufw allow OpenSSH && sudo ufw allow 443 && sudo ufw enable.
  • Отключите вход по паролю для SSH, оставьте только ключи (PasswordAuthentication no в /etc/ssh/sshd_config).
  • Установите fail2ban — он заблокирует перебор паролей.
  • Сделайте снапшот сервера в личном кабинете — точка возврата на случай неудачных экспериментов.

Что дальше

Когда ботов станет несколько или появится база данных, добавьте памяти — это делается без переустановки. Docker тоже ставится штатно, если вам удобнее контейнеры. Тарифы и ответы на частые вопросы — на странице сервер для Telegram-бота.

Нужна помощь с задачей из статьи?

Подберём конфигурацию, посчитаем стоимость и бесплатно перенесём проект.