Hospedando bots de Discord e Telegram 24/7
Seu bot funciona perfeitamente no seu computador — até você desligá-lo. Para que ele responda a qualquer hora, precisa rodar em um servidor. Um VPS pequeno é suficiente para vários bots.
Por que VPS em vez de serviços gratuitos
- Sem hibernação: muitos planos gratuitos de hospedagem "dormem" após inatividade;
- Sem limites de horas mensais;
- Banco de dados e arquivos persistentes;
- Vários bots no mesmo servidor, com custo fixo;
- Controle total sobre versões e dependências.
1. Prepare o servidor
sudo adduser --disabled-password --gecos "" bots
sudo -iu bots
Instale o runtime da sua linguagem:
- Node.js (discord.js, Telegraf, grammY): via
nvmou pacotes do NodeSource; - Python (discord.py, python-telegram-bot, aiogram):
sudo apt install python3-venv.
2. Envie o código
git clone https://github.com/voce/meu-bot.git ~/meu-bot
cd ~/meu-bot
Node.js
npm ci --omit=dev
Python
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
3. Proteja o token
Nunca coloque o token do bot no código ou no Git. Use um arquivo .env:
DISCORD_TOKEN=seu_token_aqui
chmod 600 .env
Se um token vazar, gere outro imediatamente no Discord Developer Portal ou no @BotFather.
4. Mantenha o bot rodando
Opção A: systemd (qualquer linguagem)
/etc/systemd/system/meu-bot.service:
[Unit]
Description=Meu bot
After=network-online.target
Wants=network-online.target
[Service]
User=bots
WorkingDirectory=/home/bots/meu-bot
EnvironmentFile=/home/bots/meu-bot/.env
ExecStart=/home/bots/meu-bot/.venv/bin/python bot.py
# Node.js: ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Se instalou o Node.js via nvm, use o caminho completo do binário (veja com
which node).
sudo systemctl daemon-reload
sudo systemctl enable --now meu-bot
journalctl -u meu-bot -f
Opção B: PM2 (Node.js, mas também roda Python)
npm install -g pm2
pm2 start index.js --name meu-bot
pm2 startup && pm2 save
5. Webhook ou polling (Telegram)
- Polling: o bot pergunta periodicamente por novas mensagens. Simples, não precisa de domínio;
- Webhook: o Telegram envia as mensagens para uma URL HTTPS sua. Mais eficiente, exige domínio, SSL (Let's Encrypt) e um proxy reverso.
Bots de Discord usam conexão via gateway (WebSocket) — não é preciso abrir portas.
6. Banco de dados
- SQLite: ótimo para bots pequenos (e rápido em disco NVMe);
- PostgreSQL/MySQL: para bots maiores ou com painel web;
- Redis: cache, filas e cooldowns.
Faça backup do banco regularmente.
7. Atualizando
cd ~/meu-bot && git pull
npm ci --omit=dev # ou pip install -r requirements.txt
sudo systemctl restart meu-bot
Dicas
- Um serviço por bot, com usuário e pasta próprios, se forem de projetos diferentes;
- Trate rate limits das APIs (as bibliotecas oficiais ajudam);
- Registre erros em logs e configure alertas;
- Bots grandes de Discord podem precisar de sharding.
Conclusão
Um VPS pequeno mantém vários bots online 24/7, com estabilidade e baixa latência. Hospede os seus em um VPS-NVME-BR da VittHost, com NVMe e servidores no Brasil.Use o cupom SP-VITT20 e ganhe 20% de desconto na primeira fatura enquanto a promoção estiver ativa.