Por que os serviços gratuitos não resolvem
A pergunta "onde hospedar bot de Discord de graça" tem uma resposta honesta desconfortável: serviços gratuitos hibernam processos ociosos.
O bot fica online, ninguém usa por alguns minutos, o serviço suspende o processo para economizar recursos. Quando alguém chama um comando, o bot não responde — e você só descobre pela reclamação no servidor.
Para bot de uso pessoal em servidor pequeno, dá para conviver. Para qualquer bot que a comunidade depende, não serve.
O que o bot precisa
Menos do que parece. Um bot de comandos simples roda tranquilo em máquina de entrada.
| Tipo de bot | RAM típica | Observação |
|---|---|---|
| Comandos e moderação | 512 MB a 1 GB | o mais comum |
| Com banco de dados | 1 a 2 GB | economia, níveis, registros |
| Música | 2 GB+ | processa áudio, consome banda |
| Imagem ou IA | 2 a 4 GB | picos altos de CPU |
| Vários bots na mesma máquina | somar cada um | cabe bem numa VPS só |
Passo a passo na VPS
O caminho abaixo vale para bot em Node.js, que é o caso mais comum. Python muda só o gerenciador de pacotes.
npm install na pasta do bot (ou pip install -r requirements.txt no Python)..env que fique fora do controle de versão.O passo que mantém o bot de pé
Rodar node index.js e fechar o terminal derruba o bot. E se ele der erro, ninguém religa.
A solução é um gerenciador de processo. No Node.js, o PM2 é o padrão: ele mantém o bot rodando em segundo plano, religa automaticamente depois de crash e volta a subir sozinho quando o servidor reinicia.
Ele também guarda os logs, o que resolve a parte mais difícil de bot em produção: descobrir por que caiu às três da manhã.
No Linux, a alternativa nativa é criar um serviço no systemd, que faz a mesma coisa de forma integrada ao sistema.
Boas práticas que evitam dor de cabeça
- Registre logs em arquivo. Sem log, todo diagnóstico vira adivinhação.
- Trate erros não capturados. Uma exceção solta derruba o processo inteiro.
- Respeite o rate limit do Discord. Excesso de requisições resulta em bloqueio temporário da API.
- Separe teste de produção. Use um bot de desenvolvimento em outro servidor para testar mudanças.
- Faça backup do banco se o bot guarda economia, níveis ou registros.