Как перенести 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-бота.
Подберём конфигурацию, посчитаем стоимость и бесплатно перенесём проект.