Um bot do Discord se conecta ao gateway do Discord e permanece conectado, então precisa de uma máquina sempre ligada. Um VPS pequeno é barato, fica online e não depende da sua internet doméstica. Este guia implanta um bot Node.js com discord.js e o mantém vivo com o systemd.
Que tamanho de VPS?
1 vCPU e 1 a 2 GB de RAM bastam para a maioria dos bots. Bots maiores, que guardam muitos servidores em cache ou processam áudio, precisam de mais. Veja a hospedagem de bot do Discord para os planos.
Passo 1: crie o bot no Discord
- Abra o Discord Developer Portal e crie uma nova aplicação.
- Adicione um Bot, copie o token dele e mantenha-o em segredo.
- Em OAuth2, gere um link de convite com os escopos
boteapplications.commandse adicione o bot ao seu servidor.
Passo 2: instale o Node.js
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node -v
sudo adduser --disabled-password --gecos "" discord
Passo 3: escreva o bot
sudo -iu discord
mkdir ~/bot && cd ~/bot
npm init -y
npm install discord.js
// index.js
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once('ready', () => console.log('Logged in as ' + client.user.tag));
client.on('interactionCreate', async (i) => {
if (i.isChatInputCommand() && i.commandName === 'ping') await i.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
Registre o comando de barra /ping uma vez usando o método do guia do discord.js.
Passo 4: mantenha o token fora do código
echo "DISCORD_TOKEN=your-token-here" > ~/bot/.env
chmod 600 ~/bot/.env
Passo 5: execute-o com systemd
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=discord
WorkingDirectory=/home/discord/bot
EnvironmentFile=/home/discord/bot/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
journalctl -u discordbot -f
Dê ao arquivo o nome /etc/systemd/system/discordbot.service.
Bons hábitos
- Use apenas as intents de que precisa. As intents privilegiadas precisam ser ativadas no portal.
- Se um token vazar, redefina-o no portal imediatamente.
- O reinício em caso de falha está definido acima. Adicione monitoramento se o bot for importante para uma comunidade.