Um bot de Discord no seu notebook morre no momento em que você fecha a tampa. Bom para testes — inútil para um bot do qual seu servidor de fato depende. Mova-o para um VPS e ele fica online: sobrevive ao seu wifi caindo, não para quando você dorme e reconecta ao Discord sozinho.
Eis a coisa inteira — um bot mínimo, um serviço que o mantém vivo e como pagar sem entregar um documento.
Por que um VPS, e não seu notebook
Um bot de Discord precisa de uma conexão estável e sempre ligada ao gateway do Discord. Um notebook dorme, reinicia para atualizações e muda de rede — toda vez, o bot cai offline e os membros percebem. Um VPS mantém uma conexão firme o tempo todo. Essa é a razão inteira pela qual as pessoas movem bots das máquinas pessoais.
Que tamanho — e como você paga
Um bot de Discord é leve. Ele mantém um websocket e reage a eventos, então a máquina na maior parte espera:
- 1 GB de RAM, 1–2 núcleos cobre a maioria dos bots — até os bem movimentados.
- Suba só se o bot faz o trabalho pesado em si: geração de imagem, um modelo local, áudio para muitos servidores, um banco de dados grande.
Duas decisões práticas:
- NAT basta. O bot só faz conexões de saída ao Discord, então um plano NAT com SSH encaminhado por porta funciona — sem IP dedicado, sem portas de entrada abertas. Adicione um IP público só se você também roda um painel web ou recebe webhooks.
- Sem KYC, pago em cripto. Cadastre-se com um e-mail e pague em USDC ou USDT na Base ou Ethereum — sem cartão, sem documentos. Um cartão também funciona, mas o on-ramp tem um mínimo de ~US$27, então recarregar um saldo pequeno uma vez é mais suave para um plano barato.
É só CPU e roda de um único datacenter na Alemanha — perfeitamente bom para um bot, vale saber se você precisa de uma GPU ou de uma região específica.
Um bot mínimo
Faça SSH, instale o Python e coloque um pequeno bot discord.py:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/bot && cd ~/bot
python3 -m venv venv && source venv/bin/activate
pip install -U discord.py
# bot.py
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"online as {client.user}")
@client.event
async def on_message(m):
if m.author == client.user:
return
if m.content == "!ping":
await m.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
Pegue o token no Discord Developer Portal (sua aplicação → Bot → Reset Token), e habilite ali a intent Message Content se o seu bot lê mensagens.
Mantenha-o vivo com o systemd
Rodar python bot.py na sua sessão SSH significa que o bot morre quando você desconecta. Um serviço systemd resolve isso — ele reinicia em quedas e sobrevive a reboots:
# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/bot
Environment=DISCORD_TOKEN=your-token-here
ExecStart=/home/botuser/bot/venv/bin/python bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo journalctl -u discordbot -f # acompanhe os logs
Essa é a diferença entre "um script que eu rodo" e "um bot que se roda sozinho".
Ressalvas honestas
- Guarde o token. Mantenha-o no arquivo de serviço (só do root) ou numa env var, rode como um
botusernão-root, nunca faça commit dele. Se vazar, resete-o no Developer Portal imediatamente. - Voz é mais pesada. Um bot de música/voz fazendo streaming para muitos servidores precisa de mais CPU e banda que um bot de texto — suba e teste antes de escalar.
- Observe o que o bot faz, não só o host. A hospedagem é barata; se o seu bot chama APIs pagas em loop, é aí que o custo aparece.
Dentro disso, um bot de Discord no próprio servidor simplesmente fica de pé — que é todo o ponto. Escolha um plano, pague em cripto e tenha-o online em minutos. Se você também roda outros bots, o mesmo padrão systemd mantém qualquer processo vivo.
Setup pronto: veja VPS para bots de Discord — o plano recomendado e um deploy em cripto de um minuto.
Comentários
Nenhum comentário ainda. Seja o primeiro.