Calor de verão — tudo derrete, até nossos preços.−25%−25% em todo plano anual, até 31 de agostoVer planos
EQVPS
Começar

Como hospedar um bot de Telegram num VPS (e mantê-lo rodando)

15 de jun. de 2026 · 3 min de leitura · Equipe EQVPS

Um bot de Telegram que só roda enquanto seu notebook está aberto não está realmente rodando — está fazendo demo. Para tê-lo de fato online, respondendo às 3 da manhã, sobrevivendo aos seus reboots e às próprias quedas, ele precisa morar num servidor. Eis o caminho inteiro, do início ao fim, com os comandos.

Boa notícia primeiro: um bot é uma carga minúscula. Ele na maior parte fica ocioso esperando por mensagens, então a máquina mais barata o roda bem — sem IP dedicado, sem domínio, nada chique.

1. Pegue um token do BotFather

No Telegram, mande mensagem para o @BotFather, envie /newbot, escolha um nome e um username. Ele te entrega um token parecido com 12345:AAH.... Trate-o como uma senha — qualquer um com ele controla o seu bot.

2. Um bot mínimo

Faça SSH no servidor, configure o Python e a biblioteca:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

Um bot que responde — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Vivo e num servidor. 🟢")

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

Note que ele lê o token de uma variável de ambiente — não hardcoded. Isso importa no próximo passo.

3. A parte que de fato o mantém rodando: systemd

Se você só rodar python bot.py, ele morre no momento em que você fecha o SSH. Um serviço systemd é o que o faz sobreviver ao logout, às quedas e aos reboots. Crie /etc/systemd/system/mybot.service:

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

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

Depois:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # deve dizer active (running)
journalctl -u mybot -f           # logs ao vivo

Restart=always é a linha que faz o trabalho de verdade — caiu, e ele volta em 5 segundos. enable significa que ele sobe após um reboot. Essa é toda a diferença entre "eu rodei um bot uma vez" e "meu bot está de pé".

4. Por que sem domínio nem portas abertas

O bot usa long polling — ele alcança o Telegram por atualizações, então nada precisa alcançar para dentro. Sem URL pública, sem regra de firewall de entrada, sem IP dedicado. É exatamente por isso que um VPS NAT (IP compartilhado, SSH numa porta) é uma casa boa e barata para um bot. Webhooks existem para volume muito alto, mas você quase certamente não precisa deles para começar.

Ressalvas honestas

É isso. Tranque a máquina primeiro com o checklist de segurança, coloque o serviço e seu bot fica online esteja você ou não. Num VPS pago em cripto você pode tê-lo rodando um minuto depois de decidir.

FAQ

Qual VPS eu preciso para um bot de Telegram?

O menor. Um bot de Telegram fica na maior parte ocioso, esperando por atualizações, então 1 GB de RAM e 2 núcleos são bastante para a maioria dos bots — até os bem movimentados. Você só precisa de mais se o bot faz trabalho pesado em si (processamento de imagem, um modelo local, um banco de dados grande).

Como mantenho um bot de Telegram rodando depois de fechar o SSH?

Rode-o como um serviço systemd. Ao contrário de lançá-lo no seu terminal, o systemd o mantém vivo após você fazer logout, reinicia-o se ele cair e o inicia de novo após um reboot. Essa é a diferença entre um brinquedo e algo que fica de pé.

Por que meu bot para quando eu desconecto?

Porque você o iniciou na sua sessão SSH, então ele morre quando essa sessão termina. Envolva-o num serviço systemd (ou tmux para um teste rápido) e ele roda independentemente do seu login.

Preciso de um domínio ou webhook para um bot de Telegram?

Não. O long polling (getUpdates) não precisa de URL pública, domínio nem porta de entrada — o bot alcança o Telegram. É por isso que um VPS NAT sem IP dedicado é perfeitamente bom para um bot. Webhooks são uma otimização opcional para alto volume.

É seguro colocar o token do meu bot num VPS?

Sim, se você o tratar como uma senha: mantenha-o numa variável de ambiente ou num arquivo legível apenas pelo usuário do bot, nunca faça commit dele no git e tranque o servidor com chaves SSH. Se um token vazar, revogue-o no BotFather e emita um novo.

← Voltar ao blogVer planos e preços →

Comentários

Nenhum comentário ainda. Seja o primeiro.

Deixe um comentário

Os comentários são moderados antes de aparecerem.