Discord Botunu VDS Üzerinde 7/24 Çalıştırma (pm2 ve systemd)

Discord Botunu VDS Üzerinde 7/24 Çalıştırma (pm2 ve systemd)

Discord botunuzu bir VDS üzerinde kesintisiz çalıştırın. Node.js kurulumu, pm2 ve systemd ile servis tanımlama, otomatik yeniden başlatma, log yönetimi ve bellek planlaması.

White Bilişim
Paylaş
Yapay zekâya sor ChatGPT Claude

Discord Botunu VDS Üzerinde 7/24 Çalıştırma

Botunuz kendi bilgisayarınızda çalışırken her şey yolunda görünür, ta ki bilgisayarı kapatana kadar. Bu rehberde bir VDS üzerinde botu servis olarak tanımlamayı, çökme sonrası otomatik yeniden başlatmayı ve log yönetimini anlatıyoruz.

Neden VDS?

SorunKendi bilgisayarınızVDS
Bilgisayar kapanıncaBot düşerÇalışmaya devam eder
Elektrik kesintisiKesintiYedekli güç
IP değişimiBağlantı sorunlarıSabit IP
İnternet kesintisiBot düşerYedekli ağ

1. Sunucu Hazırlığı

sudo apt update && sudo apt upgrade -y
sudo adduser --disabled-password --gecos "" bot
sudo su - bot

Botu root ile çalıştırmayın; ayrı bir kullanıcı hem güvenli hem düzenlidir.

2. Node.js Kurulumu

Dağıtımın deposundaki Node.js genelde eskidir. nvm ile istediğiniz sürümü kurun:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install 22
node -v

3. Botu Sunucuya Alma

git clone https://github.com/kullanici/botunuz.git ~/bot
cd ~/bot
npm ci --omit=dev

Token’ı koda gömmeyin; .env dosyasında tutun ve izinlerini kısıtlayın:

echo "DISCORD_TOKEN=..." > ~/bot/.env
chmod 600 ~/bot/.env

⚠️ Token’ı yanlışlıkla depoya gönderdiyseniz Discord geliştirici panelinden hemen yenileyin. Herkese açık depolara düşen token’lar dakikalar içinde taranıp kullanılıyor.

4. Yöntem A: pm2 ile Çalıştırma

pm2, Node.js projeleri için pratik bir süreç yöneticisidir:

npm install -g pm2
pm2 start index.js --name discord-bot
pm2 save
pm2 startup

Son komut, sunucu yeniden başladığında botun otomatik açılması için gereken servisi kurar. Kullanışlı komutlar:

pm2 logs discord-bot      # canlı log
pm2 restart discord-bot   # yeniden başlat
pm2 monit                 # bellek ve CPU izleme

Bellek sızıntısına karşı otomatik yeniden başlatma:

pm2 start index.js --name discord-bot --max-memory-restart 500M

5. Yöntem B: systemd ile Çalıştırma

Ek bağımlılık istemiyorsanız systemd yeterlidir:

sudo nano /etc/systemd/system/discord-bot.service
[Unit]
Description=Discord Bot
After=network.target
 
[Service]
Type=simple
User=bot
WorkingDirectory=/home/bot/bot
EnvironmentFile=/home/bot/bot/.env
ExecStart=/home/bot/.nvm/versions/node/v22.0.0/bin/node index.js
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discord-bot
sudo journalctl -u discord-bot -f

💡 Restart=always, botun her çökmede yeniden başlamasını sağlar. RestartSec değerini çok düşük tutmayın; sürekli çöken bir bot saniyede onlarca kez yeniden başlayarak Discord tarafında hız sınırına takılabilir.

6. Bellek Planlaması

Bot türüTipik bellekNot
Metin komutları150-400 MBEn yaygın senaryo
Müzik botu500 MB - 1,5 GBSes kodlama maliyeti
Veritabanlı bot+200-500 MBPostgreSQL/Redis aynı sunucudaysa
Sharded botShard başına +150 MB2.500+ sunucudan sonra

7. Log Yönetimi

Log dosyaları zamanla diski doldurur. pm2 kullanıyorsanız log rotasyonunu kurun:

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7

systemd kullanıyorsanız journald zaten döndürme yapar; sınırı /etc/systemd/journald.conf içinden ayarlayabilirsiniz.

8. Güvenlik

  • SSH’a parola yerine anahtar ile girin, parola girişini kapatın
  • Güvenlik duvarında yalnızca SSH portunu açık tutun (bot dışa bağlantı kurar, gelen porta ihtiyacı yoktur)
  • Sistem güncellemelerini düzenli uygulayın
sudo ufw allow OpenSSH
sudo ufw enable

Sonuç

Bir Discord botunu kesintisiz çalıştırmak için gereken şey karmaşık bir altyapı değil; doğru yapılandırılmış bir süreç yöneticisi ve yeterli bellektir. pm2 hızlı başlangıç için, systemd ek bağımlılık istemeyenler için uygundur.

👉 Bot ölçeğinize uygun paket için Discord bot VDS kiralama sayfamıza, aynı sunucuda Telegram botu veya zamanlanmış script çalıştıracaksanız Telegram bot ve otomasyon VDS sayfamıza göz atın.