Kısa cevap: Discord botunu kesintisiz çalıştırmak için bota 7 gün 24 saat açık kalan bir sunucu gerekir. Botu VDS'e yükledikten sonra systemd servisi (Linux) ya da pm2 (Node.js) ile tanımlarsınız; böylece bot hem siz bağlantıyı kapattığınızda hem sunucu yeniden başladığında kendiliğinden çalışmaya devam eder. Çoğu bot için 1 vCPU ve 1 GB RAM yeterlidir.

Discord botu yazdınız, bilgisayarınızda sorunsuz çalışıyor, ama bilgisayarı kapattığınızda bot çevrimdışı oluyor. Ücretsiz platformlar da bir süre sonra botu uykuya alıyor. Çözüm botu sürekli açık bir sunucuda çalıştırmak. Bu rehberde kurulumu ve botun bir daha düşmemesi için yapılması gerekeni anlatıyoruz.

Discord Botu İçin Ne Kadar Kaynak Gerekir?

Discord botları şaşırtıcı derecede az kaynak tüketir, çünkü işin ağırlığı Discord'un sunucularındadır. Bot yalnızca gelen olayları dinler ve yanıt üretir.

  • Komut ve moderasyon botu: 1 vCPU, 1 GB RAM fazlasıyla yeter.
  • Müzik botu: 2 vCPU, 2 GB RAM. Ses akışı işlemciyi ve bant genişliğini kullanır, aynı anda kaç sunucuda çalacağı belirleyicidir.
  • Veritabanı kullanan büyük bot (binlerce sunucu): 2-4 vCPU, 4 GB RAM ve NVMe disk.
  • Yapay zeka çağrısı yapan bot: Ağırlık dış API'de olduğu için 1-2 vCPU yeter, ama yanıt sürelerinin kısa olması için düşük gecikmeli lokasyon önemlidir.

Yani botunuz için pahalı bir sunucuya ihtiyacınız yok. Belirleyici olan güç değil, kesintisiz açık kalmak.

Neden Ücretsiz Platformlar Yetmiyor?

Ücretsiz barındırma platformlarının çoğu, hareketsiz kalan uygulamayı bir süre sonra uykuya alır ya da belirli bir saat kotasından sonra durdurur. Bot uykuya girdiğinde komutlara yanıt vermez, geri döndüğünde de bağlantıyı yeniden kurması gerekir. Ayrıca dosya sistemi kalıcı olmadığı için bot yeniden başladığında sakladığı veriyi kaybedebilir. Kendi sunucunuzda bu sınırların hiçbiri yoktur, sürüm ve kütüphane seçimi de tamamen size kalır.

Botu VDS'e Kurma

Sunucuya SSH ile bağlandıktan sonra sıra şöyle işler. Node.js ile yazdıysanız Node'u kurup proje klasörünüzü sunucuya aktarır, npm install ile bağımlılıkları yüklersiniz. Python ile yazdıysanız Python ve pip kurulumundan sonra sanal ortam açıp pip install -r requirements.txt çalıştırırsınız.

Dosyaları aktarmak için WinSCP, FileZilla ya da doğrudan git clone kullanabilirsiniz. Bot anahtarınızı (token) koda gömmeyin, ortam değişkeni ya da .env dosyasında tutun ve o dosyayı sürüm kontrolüne göndermeyin. Anahtar sızarsa botunuzu başkası çalıştırabilir.

Botun Bir Daha Düşmemesi İçin: systemd

Buraya dikkat, çünkü en sık yapılan hata burada. Botu node index.js diye elle başlatırsanız süreç SSH oturumunuza bağlı kalır ve siz bağlantıyı kapattığınız anda bot da kapanır. Kalıcı çözüm botu bir servis olarak tanımlamaktır.

Linux'ta /etc/systemd/system/discordbot.service dosyası oluşturup içine çalışma dizinini, başlatma komutunu ve Restart=always satırını yazarsınız. Ardından systemctl enable --now discordbot komutuyla servisi etkinleştirirsiniz. Bunun iki faydası var: bot çökerse systemd onu saniyeler içinde yeniden başlatır, sunucu yeniden başlatıldığında da bot kendiliğinden ayağa kalkar. Kayıtları journalctl -u discordbot -f ile canlı izleyebilirsiniz.

Node.js kullanıyorsanız pm2 de aynı işi görür: pm2 start index.js --name bot ve ardından pm2 save ile pm2 startup. screen veya tmux ile başlatmak geçici testler için uygundur ama kalıcı kullanımda önerilmez, çünkü çöken botu kendiliğinden geri getirmez.

Windows Sunucuda Çalıştırma

Windows kurulu bir sunucu tercih ettiyseniz botu Görev Zamanlayıcı ile açılışta başlatabilir ya da NSSM gibi bir araçla Windows servisi haline getirebilirsiniz. Yine de bot barındırmak için Linux genellikle daha az kaynak tüketir ve daha az bakım ister. Uzak masaüstüyle çalışmak istiyorsanız RDP nedir yazımıza bakabilirsiniz.

Sık Sorulan Sorular

Discord botu için VDS mi yoksa paylaşımlı hosting mi gerekir?

VDS gerekir. Paylaşımlı hosting web sitesi yayınlamak için tasarlanmıştır, sürekli çalışan bir arka plan süreci başlatmanıza izin vermez. Discord botu ise tanımı gereği kesintisiz çalışan bir süreçtir, dolayısıyla kendi işletim sistemine ve root erişimine sahip olduğunuz bir sunucu şart.

Botum SSH kapattığımda kapanıyor, nasıl çözerim?

Süreç oturuma bağlı olduğu için normal bir davranış. Botu systemd servisi olarak tanımlayın ya da pm2 ile başlatıp pm2 save çalıştırın; ikisi de süreci oturumdan bağımsız hale getirir.

Aynı sunucuda kaç bot çalıştırabilirim?

Kaynaklar yettiği sürece sınır yok. Basit komut botlarından 1 GB RAM'li bir sunucuda birkaç tanesini rahatça çalıştırabilirsiniz; her biri için ayrı bir servis tanımlamanız yeterli. Müzik botlarında ise ses akışı kaynağı hızla tükettiği için bot başına ayrı hesap yapın.

Müzik botu için hangi özellik önemli?

Tek çekirdek hızı ve bant genişliği. Ses kodlama işlemi tek çekirdek üzerinde yürüdüğü için yüksek frekanslı işlemciler belirgin fark yaratır, bu nedenle Ryzen VDS müzik botlarında tercih edilir.

Bot çevrimiçi görünüyor ama komutlara yanıt vermiyor, neden?

Genellikle Discord geliştirici panelinde niyet (intent) izinlerinin açılmamış olmasından kaynaklanır, özellikle mesaj içeriği izni. Sunucu tarafında ise botun kayıtlarına bakın; kütüphane sürümü uyumsuzluğu ya da yakalanmamış bir hata süreci yanıt veremez halde bırakabilir.

Oyun sunucusu ile bot aynı VDS'te durabilir mi?

Durabilir ama önerilmez. Oyun sunucusu ani yük artışlarında işlemciyi doldurduğunda bot gecikmeye başlar. Ayrı tutmak ikisinin de kararlılığını korur. Oyun tarafı için Discord sunucusu kurulumu yazımıza bakabilirsiniz.

Botunuzu kesintisiz çalıştırmak için Discord sunucu paketlerimizi inceleyebilir, daha yüksek performans gereken müzik ve topluluk botları için Ryzen VDS seçeneğine bakabilirsiniz.