Skip to content
VDS · Aplikasi dan bot

Bot Discord: menjalankan dan memantau

Menjalankan bot Discord di VPS dengan systemd, membatasi memori, membaca log, menangani rate limit, dan memperbarui tanpa downtime.

Diperbarui 23 Agustus 2026

Bot Discord memegang koneksi WebSocket persisten ke gateway Discord, jadi ia membutuhkan mesin yang tetap menyala. Kebutuhan sumber dayanya tergolong moderat, tetapi berbeda dari bot Telegram, ia lebih buruk dalam menangani restart: setiap restart memaksa koneksi baru ke gateway.

Instalasi

useradd -r -m -d /srv/dbot -s /usr/sbin/nologin dbot
cd /srv/dbot && sudo -u dbot git clone https://github.com/you/bot.git .
sudo -u dbot npm ci --omit=dev
install -o dbot -g dbot -m 600 /dev/null /srv/dbot/.env

Letakkan token dan ID di .env. Token dari Discord Developer Portal adalah akses penuh ke bot — perlakukan seperti kata sandi.

Untuk pustaka Python prosedurnya sama, dengan virtual environment; lihat Aplikasi Python.

Service

/etc/systemd/system/dbot.service:

[Unit]
Description=Discord bot
After=network-online.target
Wants=network-online.target

[Service]
User=dbot
WorkingDirectory=/srv/dbot
EnvironmentFile=/srv/dbot/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=15
MemoryMax=512M
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now dbot

RestartSec=15 alih-alih lima detik standar: saat koneksi ke gateway terputus, restart yang terlalu sering menyebabkan blokir sementara pada koneksi dari sisi Discord.

MemoryMax mencegah bot dengan kebocoran memori menyeret seluruh mesin down bersamanya — terutama penting pada VDS-1 dengan 2 GB.

Pemantauan

systemctl status dbot
journalctl -u dbot -f
journalctl -u dbot --since today -p err
systemctl show dbot -p NRestarts

NRestarts adalah metrik yang paling berguna: jika penghitungnya bertambah setiap jam, bot sedang crash dan Restart=always menutupinya.

Penggunaan memori service tertentu:

systemctl status dbot | grep Memory

Untuk gambaran keseluruhan mesin, lihat grafik CPU, memori, dan trafik di "Overview" panel pada /hosting/vds/m/<id>.

Rate limiting

Discord membatasi panggilan API. Tandanya adalah error 429 di log dan perintah yang "macet". Yang membantu:

  • jangan mengirim pesan dalam loop tanpa jeda;
  • edit satu pesan alih-alih mengirim pesan baru;
  • cache data referensi alih-alih memintanya pada setiap event;
  • gunakan antrean Redis untuk siaran massal.

Pembaruan

cd /srv/dbot
sudo -u dbot git pull
sudo -u dbot npm ci --omit=dev
systemctl restart dbot
journalctl -u dbot -n 50

Baris terakhir wajib: pastikan bot terhubung ke gateway alih-alih crash pada dependensi baru.

Error umum

GejalaPenyebab
Bot online tetapi tidak merespons perintahIntent yang diperlukan tidak diaktifkan di Developer Portal
Reconnect terus-menerusRestartSec terlalu pendek, atau crash di event handler
Invalid tokenToken diregenerasi dan .env tidak diperbarui
Perintah terduplikasiDua salinan bot berjalan — periksa ps aux | grep node
Mesin mulai swappingTidak ada MemoryMax, ada kebocoran di kode

Jangan jalankan bot di bawah screen atau tmux. Sesi bertahan saat SSH terputus, tetapi tidak saat mesin reboot — dan dalam sebulan Anda akan lupa di mana bot itu berjalan.