Alojamiento de bots de Telegram

telegram bot. Programación
Guía técnica para desplegar y gestionar bots de Telegram en un VPS con Python y PM2.

Telegram ha trascendido el ámbito de la mensajería, convirtiéndose en una plataforma global para miniaplicaciones, asistentes de IA complejos e interfaces empresariales completas. Para garantizar que tu bot no solo responda a comandos, sino que funcione de forma fiable las 24 horas del día, los 7 días de la semana, es importante elegir el entorno adecuado para su código y configurarlo correctamente.

1. Selección del alojamiento para el bot

Olvídate del alojamiento web convencional. Para un bot, la única solución fiable es un VDS/VPS (Servidor Privado Virtual). Esto te brinda control total sobre el sistema operativo, la posibilidad de instalar cualquier biblioteca y recursos garantizados.

Qué tener en cuenta al elegir:

  • Ubicación: Si tu audiencia se encuentra principalmente en la CEI, elige servidores en centros de datos cercanos para minimizar la latencia.
  • Tecnologías: Asegúrate de que tu proveedor sea compatible con versiones actualizadas de Python (3.12+), Node.js o Docker.
  • Soporte de IA: Si tu bot utiliza modelos de lenguaje locales (LLM), es posible que necesites servidores con aceleración por GPU. Los servidores estándar son suficientes para bots estándar.
  • Escalabilidad: Puedes añadir RAM con un solo clic si tu bot se vuelve popular.

Para encontrar la mejor opción, te recomiendo consultar las mejores valoraciones de VDS/VPS, donde puedes comparar precios de diferentes proveedores para evitar pagar de más por capacidad innecesaria.

2. Requisitos del sistema y tarifas

Actualmente, los requisitos de hardware han aumentado ligeramente, pero siguen siendo asequibles:

  • Un bot sencillo (comandos de texto): 1 GB de RAM, 1 núcleo de CPU. Un VPS por 1 € al mes es más que suficiente incluso para unos pocos scripts pequeños.
  • Un bot con base de datos (PostgreSQL/Redis): 2 GB de RAM.
  • Sistema operativo: Un sistema operativo moderno como Ubuntu 24.04 LTS o 26.04 LTS es la opción ideal. La mayoría de la documentación y las bibliotecas están escritas específicamente para estas distribuciones.

Nota importante: Las soluciones gratuitas como el antiguo Heroku ya no existen o se han vuelto demasiado inestables. Para un proyecto serio, es mejor invertir en un VPS de pago: la estabilidad y la IP dedicada lo compensan con creces.

3. Configuración del servidor

Supongamos que ya has alquilado un servidor. Ahora necesitamos ponerlo en línea. Usaremos el protocolo SSH para la administración.

Paso 1: Conexión

Para administrar el servidor necesitamos una terminal, por ejemplo Termius o MobaXterm.

Termius.
  1. Abre Termius y crea una nueva conexión (Nuevo Host).
  2. Introduce la información de tu cuenta de hosting:
  • Nombre de host (Dirección IP): la dirección de tu servidor.
  • Puerto: normalmente el 22 (a menos que tu proveedor de hosting especifique otro).
  • Nombre de usuario: normalmente root.
  • Contraseña: tu contraseña.
  1. Guarda la configuración y haz clic en el nombre del host recién creado en la lista.
  2. Si ves una ventana de consola negra con un mensaje de bienvenida del sistema, ¡enhorabuena! Ya estás dentro de tu servidor.
Módulo del lenguaje Python.

Paso 2: Preparación del entorno

Primero, actualiza los paquetes e instala Python:

sudo apt --reinstall install python3 -y

sudo apt --reinstall install python3-pip -y

Ahora instalemos la biblioteca para trabajar con la API de Telegram. pyTelegramBotAPI sigue siendo la predeterminada, pero los comandos son los mismos:

pip3 install pyTelegramBotAPI --break-system-packages

Paso 3: Gestor de procesos (PM2)

Para evitar que el bot se bloquee después de cerrar la consola y para reiniciarlo automáticamente si se produce algún fallo, instale PM2. Requiere Node.js:

sudo apt install nodejs

sudo apt install npm

npm install pm2 -g

4. Subir el código al servidor

La forma más sencilla para principiantes es mediante el protocolo SFTP.

  1. En Termius, abre la pestaña SFTP.
  2. Conéctate a tu servidor.
  3. Crea una carpeta (por ejemplo, /root/my_bot/).
  4. Simplemente arrastra los archivos de tu bot (main.py, archivos de configuración, base de datos) desde tu ordenador a esta carpeta.
connecting to the server via sftp.

5. Lanzamiento y control

Acceda a la carpeta del bot mediante la consola:

cd nombre_de_la_carpeta

pm2 start main.py --interpreter=python3 (Reemplaza "main" con el nombre del archivo ejecutable del bot.)

Puedes comprobar el estado del bot con el comando pm2 list. Si la columna «estado» indica «en línea», todo funciona correctamente.

Comandos útiles de PM2

  • pm2 list — consulta el estado de todos los bots en ejecución.
  • pm2 logs — revisa los registros (si el bot no funciona, ahí encontrarás la razón).
  • pm2 restart my_telegram_bot — reinicia el bot después de actualizar el código.

¿Por qué el estado de PM2 dice «en línea» pero el bot de Telegram no responde?

El estado en línea en PM2 solo indica que el script se está ejecutando. Si el bot no responde, es probable que haya un error en el código (por ejemplo, un token no válido) o que las bibliotecas necesarias no estén instaladas. Para ver la causa real del fallo, utilice el comando pm2 logs.

Redacción
Rate author
El blog del informático
Añadir un comentario