OffshoreVps
Tutoriales8 oct 20265 min de lecturaPor el equipo de OffshoreVps

Cómo alojar un bot de Telegram en un VPS

Consigue un token de bot, escribe un bot en Python, guarda el token de forma segura y mantenlo funcionando 24/7 con un servicio systemd.

Un bot de Telegram tiene que estar funcionando todo el tiempo para responder a los mensajes. Ejecutarlo en tu portátil significa que se desconecta cuando cierras la tapa. Un VPS pequeño lo soluciona por unos pocos dólares al mes. Esta guía ejecuta un bot de Python como servicio systemd para que arranque con el sistema y se reinicie tras un fallo.

Ventana de terminal en un VPS que muestra los comandos usados para alojar un bot de Telegram, empezando por “sudo apt update && sudo apt install -y python3 p”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

¿Qué tamaño de VPS?

La mayoría de los bots son ligeros. Un plan con 1 a 2 vCPU y 2 GB de RAM es más que suficiente. Consulta el hosting para bots de Telegram para ver planes sugeridos.

Paso 1: consigue un token de bot

Habla con @BotFather en Telegram, envía /newbot, elige un nombre y un nombre de usuario que termine en bot, y copia el token. Trátalo como una contraseña, porque cualquiera que lo tenga puede controlar el bot.

Paso 2: prepara el servidor

sudo apt update && sudo apt install -y python3 python3-venv
sudo adduser --disabled-password --gecos "" botuser
sudo -iu botuser
mkdir ~/mybot && cd ~/mybot
python3 -m venv .venv
. .venv/bin/activate
pip install python-telegram-bot

Paso 3: escribe un bot pequeño

# bot.py
import os
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Hello! I am running on a VPS.")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

El polling no necesita puertos abiertos, así que no tienes que configurar un dominio ni un webhook.

Los pasos de esta guía en orden: 1. ¿Qué tamaño de VPS?; 2. consigue un token de bot; 3. escribe un bot pequeño; 4. guarda el token de forma segura; 5. Actualizarlo y vigilarlo; 6. ¿Polling o webhook?
Los pasos de esta guía, en orden.

Paso 4: guarda el token de forma segura

echo "BOT_TOKEN=123456:ABC..." > ~/mybot/.env
chmod 600 ~/mybot/.env

Paso 5: ejecútalo como servicio

De vuelta como usuario administrador, crea /etc/systemd/system/mybot.service:

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

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

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo journalctl -u mybot -f

Actualizarlo y vigilarlo

  • Actualiza el código y luego ejecuta sudo systemctl restart mybot.
  • Revisa los registros con journalctl -u mybot -n 100.
  • Usa copias de seguridad si el bot almacena datos.

¿Polling o webhook?

El polling es lo más sencillo y vale para la mayoría de los bots. Usa un webhook si necesitas entrega instantánea con alto volumen, lo que requiere un dominio y HTTPS. Consulta alojar con Nginx y HTTPS.