VPS для Telegram-бота: как выбрать и настроить сервер
Telegram-бот требует VPS с постоянным интернет-подключением и достаточным аптаймом - локальный компьютер для этой задачи не подойдет. Хорошая новость: требования к серверу для большинства ботов очень скромные, а значит стоимость минимальная.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Минимальные требования для разных типов ботов
Выбор мощности зависит от функциональности бота:
- Простой бот (ответы на команды, статические данные): 1 vCPU, 512 MB RAM. Даже Romania VPS Mini избыточен для такого бота - легко запустить 3-5 ботов на одном плане.
- Бот с базой данных (SQLite, PostgreSQL): 1-2 vCPU, 1-2 GB RAM. Romania VPS Mini $19.99 справится.
- Бот с интеграцией AI/GPT (запросы к OpenAI API): 1 vCPU, 1 GB RAM достаточно - тяжёлые вычисления на стороне OpenAI.
- Бот с локальной LLM (llama.cpp, Ollama): 4-8 vCPU, 8-16 GB RAM + GPU. Требует Iceland VPS III или Dedicated.
- 10+ ботов на одном сервере через Docker: 2-4 vCPU, 4 GB RAM. Iceland VPS I $49.99.
Запуск Python-бота на VPS: пошаговая инструкция
Для бота на aiogram (асинхронный, наиболее производительный):
apt update && apt install python3 python3-pip -y
pip3 install aiogram
Для автоматического перезапуска создайте systemd-юнит:
/etc/systemd/system/mybot.service:
[Unit]
Description=Telegram Bot
After=network.target
[Service]
User=root
WorkingDirectory=/root/mybot
ExecStart=/usr/bin/python3 /root/mybot/bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl enable mybot && systemctl start mybot
Node.js Telegram-бот: Telegraf.js
Для разработчиков предпочитающих JavaScript:
apt install nodejs npm -y
npm install telegraf
Пример минимального бота:
const { Telegraf } = require('telegraf');
const bot = new Telegraf(process.env.BOT_TOKEN);
bot.on('text', ctx => ctx.reply('Привет!'));
bot.launch();
Для продакшна используйте PM2 вместо node напрямую:
npm install -g pm2
pm2 start bot.js --name mybot
pm2 startup && pm2 save
Мониторинг и надёжность бота
Для серьёзного бота нужен мониторинг доступности:
- UptimeRobot (бесплатно): Пингует ваш бот каждые 5 минут. Telegram-уведомление при падении.
- Встроенный Health Check через Webhook: Настройте бота на webhook вместо polling - Telegram сам определяет недоступность.
- Логирование: Пишите логи в файл с ротацией:
journalctl -u mybot -n 100или через Python logging с RotatingFileHandler. - Автообновление кода: Cron + git pull + systemctl restart mybot для автодеплоя при push в репозиторий.
Related Services
Why Anubiz Host
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.