Como hospedar um bot
Discord, Telegram e WhatsApp: o que muda em cada um e o erro que derruba quase todo bot novo.
Um bot é uma aplicação que roda em segundo plano e não recebe acessos por um endereço. Ele se conecta sozinho ao serviço (Discord, Telegram, WhatsApp) e fica escutando.
O erro que derruba quase todo bot novo
O token não pode estar escrito no código. Além de ser um risco de segurança, qualquer atualização do projeto sobrescreve o arquivo. Guarde o token em Variáveis de Ambiente e leia com process.env no código.
Discord
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
});
client.once("ready", () => {
console.log(`Bot online como ${client.user.tag}`);
});
// O token vem das Variáveis de Ambiente, nunca do código.
client.login(process.env.DISCORD_TOKEN);No portal do Discord, ative os Privileged Gateway Intents que o seu bot usa (Message Content, Server Members). Sem eles o bot conecta mas não recebe eventos — e o log fica silencioso, o que confunde muita gente.
Telegram
Bots de Telegram funcionam em dois modos. Em *polling*, o bot pergunta ao Telegram se há mensagens novas — é o modo mais simples e funciona sem configurar nada. Em *webhook*, o Telegram avisa o seu servidor; nesse caso a aplicação precisa ser do tipo Site, ter um endereço público e escutar na porta 80.
Bibliotecas que abrem um navegador (whatsapp-web.js, Venom, Puppeteer) funcionam: o navegador já vem instalado no ambiente. Duas exigências práticas:
- Suba o navegador com o argumento `--no-sandbox` — sem ele o processo não inicia dentro de container.
- Reserve 512 MB ou mais de memória. Um navegador headless sozinho já consome perto de 300 MB.
- O QR Code aparece no console da aplicação, na aba Logs. Escaneie a partir dali.
const client = new Client({
authStrategy: new LocalAuth(),
puppeteer: {
args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage"],
},
});Bibliotecas sem navegador consomem muito menos
Para WhatsApp, bibliotecas que falam direto com o protocolo (como Baileys) rodam confortavelmente em 256 MB, contra os 512 MB ou mais de uma solução com navegador.
Continue lendo
Variáveis de ambiente
O lugar certo para tokens, senhas e chaves — e como lê-los no código de cada linguagem.
Console e logs
Onde ver o que a sua aplicação está imprimindo, em tempo real, e como usar isso para achar problemas.
Problemas comuns
Os oito casos que respondem pela maioria dos chamados, com a causa e a correção de cada um.