OffshoreVps
Tutorial7 Okt 20265 menit bacaOleh tim OffshoreVps

Cara Hosting Bot Discord di VPS

Buat bot Discord, deploy bot discord.js di VPS Linux, dan jaga agar tetap online dengan systemd, lengkap dengan tips token dan intent.

Bot Discord terhubung ke gateway Discord dan tetap tersambung, sehingga memerlukan mesin yang selalu menyala. VPS kecil murah, tetap online, dan tidak bergantung pada internet rumah Anda. Panduan ini men-deploy bot Node.js dengan discord.js dan menjaganya tetap hidup dengan systemd.

Jendela terminal di VPS yang menampilkan perintah untuk meng-host bot Discord, diawali dengan “curl -fsSL https://deb.nodesource.com/setup_22.x”
Jenis perintah yang akan Anda jalankan di server dalam panduan ini.

Seberapa besar VPS?

1 vCPU dan RAM 1 hingga 2 GB sudah cukup untuk sebagian besar bot. Bot yang lebih besar yang men-cache banyak server atau memproses audio membutuhkan lebih banyak. Lihat hosting bot Discord untuk paketnya.

Langkah 1: buat bot di Discord

  1. Buka Discord Developer Portal dan buat aplikasi baru.
  2. Tambahkan Bot, salin token-nya, dan rahasiakan.
  3. Di bawah OAuth2, buat tautan undangan dengan scope bot dan applications.commands lalu tambahkan bot ke server Anda.

Langkah 2: instal 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
Langkah-langkah panduan ini secara berurutan: 1. Seberapa besar VPS?; 2. buat bot di Discord; 3. instal Node.js; 4. jauhkan token dari kode; 5. jalankan dengan systemd; 6. Kebiasaan baik
Langkah-langkah dalam panduan ini, secara berurutan.

Langkah 3: tulis 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);

Daftarkan perintah slash /ping sekali dengan metode di panduan discord.js.

Langkah 4: jauhkan token dari kode

echo "DISCORD_TOKEN=your-token-here" > ~/bot/.env
chmod 600 ~/bot/.env

Langkah 5: jalankan dengan 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

Beri nama file /etc/systemd/system/discordbot.service.

Kebiasaan baik

  • Gunakan hanya intent yang Anda perlukan. Privileged intent harus diaktifkan di portal.
  • Jika token pernah bocor, segera reset di portal.
  • Restart saat gagal sudah diatur di atas. Tambahkan pemantauan jika bot penting bagi sebuah komunitas.