Volver al inicio

Desplegar Bot de Telegram en 8 Minutos | Guía del Desarrollador

Guía Práctica para Desplegar un Bot de Telegram en VPS en 8 Minutos. Configuración Detallada del Servidor, Transferencia del Proyecto vía SFTP, Configuración de PM2 para Inicio Automático. Solución de Problemas Comunes de Despliegue.

Cómo Desplegar un Bot de Telegram en 8 Minutos: Guía Práctica
Advertisement 728x90

# Despliegue Rápido de un Bot de Telegram en VPS: De Ejecución Local a Disponibilidad 24/7

Has terminado de desarrollar tu bot de Telegram, pero ejecutarlo localmente no garantiza una disponibilidad constante. La mayoría de los desarrolladores luchan con el despliegue en producción, abrumados por información interminable sobre Docker y Kubernetes. En realidad, puedes desplegarlo en solo 8 minutos con recursos mínimos. Esta guía muestra cómo desplegar un bot de aiogram en un VPS económico sin configuraciones complejas, usando herramientas básicas de Linux.

Preparando la Infraestructura

Elegir un proveedor de nube es crucial para el funcionamiento confiable del bot. Timeweb Cloud ofrece acceso a servidores en 12 regiones geográficas, incluyendo ubicaciones fuera de Rusia. Esto es esencial para usar APIs bloqueadas en Rusia (Groq, ChatGPT y otros servicios de IA). Para bots sin dependencias externas, los centros de datos rusos están bien.

Parámetros clave del servidor:

Google AdInline article slot
  • SO: Ubuntu 24.04 LTS
  • Configuración: mínima (1 vCPU, 1 GB RAM, 25 GB SSD)
  • Costo: desde 290 ₽/mes
  • Copias de seguridad: se recomienda activarlas

Al crear la instancia, verifica la sección de copias de seguridad. Las copias de seguridad protegen contra:

  • Fallos del servidor
  • Corrupción de la base de datos SQLite
  • Errores en actualizaciones de código
  • Eliminación accidental de archivos

El sistema de copias de seguridad de Timeweb te permite restaurar el estado del proyecto de los últimos 7 días en intervalos de 24 horas. Esto es crucial para evitar la pérdida de datos al probar nuevas funciones.

Configurando el Entorno del Servidor

Después de activar el servidor, conéctate vía SSH:

Google AdInline article slot
ssh root@your_IP_address

Actualiza los paquetes del sistema e instala los componentes requeridos:

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip git -y
npm install pm2 -g

Importante: verifica la versión de Python antes de instalar dependencias:

python3 --version

Para proyectos que usan un entorno virtual, ejecuta:

Google AdInline article slot
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Transfiriendo el Proyecto y Lanzándolo

Usa SFTP para transferir archivos. En FileZilla, ingresa:

  • Host: dirección IP del servidor
  • Usuario: root
  • Contraseña: del panel de control
  • Puerto: 22

Después de copiar el proyecto al servidor:

  • Navega al directorio del proyecto
  • Activa el entorno virtual
  • Instala las dependencias
  • Lanza el bot vía PM2
cd /root/your_project
source venv/bin/activate
pm2 start main.py --name "telegram-bot"

PM2 asegura el reinicio automático después de reinicios y monitorea fallos. Verifica el estado del proceso:

pm2 status

Mantenimiento y Actualizaciones

Al realizar cambios en el código, sigue esta lista de verificación estricta:

  • Edita archivos vía SFTP (FileZilla → Ver/Editar)
  • Guarda los cambios (Ctrl+S)
  • Confirma la sincronización en FileZilla
  • Reinicia el proceso en PM2
pm2 restart telegram-bot

Para solucionar problemas, usa:

  • pm2 logs — ver logs en vivo
  • pm2 monit — monitorear recursos
  • pm2 resurrect — recuperar después de fallos

Puntos clave

  • Siempre usa .env para almacenar tokens
  • Configura copias de seguridad automáticas cada 24 horas
  • Prueba actualizaciones en una rama aislada
  • Monitorea el uso de memoria con htop
  • Actualiza regularmente los paquetes del sistema

Optimización de Rendimiento

Para bots de alta carga (más de 1000 usuarios activos), pasos recomendados:

  • Configurando un archivo de intercambio
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
  • Limitando recursos de PM2

En ecosystem.config.js:

module.exports = {
  apps: [{
    name: 'telegram-bot',
    script: 'main.py',
    instances: 1,
    autorestart: true,
    max_memory_restart: '300M'
  }]
}
  • Configuración del firewall
sudo ufw allow OpenSSH
sudo ufw allow 22/tcp
sudo ufw enable

Un error común de principiantes es ejecutar el bot sin daemonización. Cerrar la sesión SSH mata el proceso. PM2 lo soluciona, pero requiere configuración adecuada de inicio automático:

pm2 startup
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root

Para monitorear la disponibilidad, agrega un endpoint simple de verificación de salud en el código de tu bot:

from aiogram import Router

router = Router()

@router.message(Command('health'))
async def health_check(message: Message):
    await message.answer('Bot is running')

Revisa regularmente los logs en busca de errores de conexión a la API de Telegram. Problemas típicos:

  • Token inválido en .env
  • Dirección IP bloqueada
  • Límites de tasa excedidos
  • Errores en manejo de webhooks

Al usar webhooks, configura Nginx como proxy inverso con un certificado SSL. Para bots de baja carga, el modo polling es suficiente y no requiere infraestructura extra.

— Editorial Team

Advertisement 728x90

Leer después