OffshoreVps
Tutoriais8 out. 20265 min de leituraPor a equipe da OffshoreVps

Como hospedar um bot do Telegram em um VPS

Obtenha um token de bot, escreva um bot em Python, guarde o token com segurança e mantenha-o rodando 24/7 com um serviço systemd.

Um bot do Telegram precisa estar rodando o tempo todo para responder às mensagens. Executá-lo no seu notebook significa que ele fica offline sempre que você fecha a tampa. Um VPS pequeno resolve isso por alguns dólares por mês. Este guia executa um bot em Python como um serviço systemd, para que ele inicie no boot e reinicie após uma falha.

Janela de terminal em um VPS mostrando os comandos usados para hospedar um bot do Telegram, começando com “sudo apt update && sudo apt install -y python3 p”
O tipo de comandos que você executará no servidor neste guia.

Que tamanho de VPS?

A maioria dos bots é leve. Um plano com 1 a 2 vCPUs e 2 GB de RAM é mais que suficiente. Veja a hospedagem de bot do Telegram para os planos sugeridos.

Passo 1: obtenha um token de bot

Fale com o @BotFather no Telegram, envie /newbot, escolha um nome e um nome de usuário terminado em bot e copie o token. Trate-o como uma senha, porque qualquer pessoa com ele pode controlar o bot.

Passo 2: prepare o 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

Passo 3: escreva um bot pequeno

# 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()

O polling não precisa de portas abertas, então você não precisa configurar um domínio nem um webhook.

Os passos deste guia em ordem: 1. Que tamanho de VPS?; 2. obtenha um token de bot; 3. escreva um bot pequeno; 4. guarde o token com segurança; 5. Atualizando e acompanhando; 6. Polling ou webhook?
Os passos deste guia, em ordem.

Passo 4: guarde o token com segurança

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

Passo 5: execute-o como serviço

De volta como usuário administrador, crie /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

Atualizando e acompanhando

  • Atualize o código e depois execute sudo systemctl restart mybot.
  • Verifique os logs com journalctl -u mybot -n 100.
  • Use backups se o bot armazenar dados.

Polling ou webhook?

O polling é o mais simples e serve para a maioria dos bots. Use um webhook se precisar de entrega instantânea em grande volume, o que exige um domínio e HTTPS. Veja hospedagem com Nginx e HTTPS.