Kısaca özet
- Telegram bot sunucusu, botunuzun kodunu 7/24 çalıştıran ve Telegram’dan gelen mesajları ya long polling ile kendisi çeken ya da webhook ile HTTPS üzerinden kabul eden sunucudur.
- Long polling alan adı ve SSL istemez ama sürekli açık bir süreç ister; bu yüzden kök erişimi olan bir VPS ve systemd ya da PM2 gibi bir süreç yöneticisi gerekir.
- Webhook için Telegram’ın resmî dokümanına göre HTTPS adresi, geçerli sertifika ve yalnız 443, 80, 88 ya da 8443 portu kullanılabilir; yönlendirme (redirect) desteklenmez.
- Paylaşımlı hostingte SSH ve root yoktur, sürekli süreç çalıştırılamaz; ama webhook ile çalışan, her mesajı birkaç saniyede işleyip biten küçük bir PHP botu paylaşımlı hostingte çalışabilir.
- Metinle cevap veren küçük bir bot 1 vCPU ve 1 GB RAM ile rahat çalışır; dosya işleyen, veritabanı tutan ve binlerce kullanıcıya yayın yapan botlar için 2 vCPU ve 2–4 GB RAM daha gerçekçidir.
- Bot token’ı botun tüm yetkisidir; kodda değil ortam değişkeninde tutulur, sızdığında BotFather’dan hemen yenilenir.
Botu BotFather’da oluşturdunuz, token’ı aldınız, kendi bilgisayarınızda çalıştırdınız ve bot mesajlara cevap veriyor. Bilgisayar uyku moduna geçtiğinde ya da terminali kapattığınızda cevaplar kesiliyor. Telegram bot sunucusu arayışı burada başlar. Doğru cevap, botun güncellemeleri nasıl aldığına bağlıdır.
Telegram Bot Sunucusu Ne İş Yapar
Kullanıcı bota bir mesaj yazdığında Telegram bu mesajı bir “güncelleme” (update) olarak bekletir. Botunuzun görevi bu güncellemeyi almak, işlemek ve Bot API’ye bir istek göndererek cevap vermektir. Program kapalıysa güncellemeler birikir; Telegram Bot API dokümanına göre bekleyen güncellemeler en fazla 24 saat saklanır, sonra silinir.
Yani telegram bot sunucusu, botun güncellemeleri kaçırmadan almasını sağlayan ve günün her saatinde erişilebilir olan ortamdır. Bu ortamın ne olması gerektiği ise iki alma yönteminden hangisini seçtiğinize göre değişir. Telegram iki yol sunar ve ikisi aynı anda kullanılamaz: webhook tanımlıyken getUpdates çağrısı güncelleme döndürmez.
Long Polling mi Webhook mu
Long polling yönteminde bot, getUpdates çağrısıyla Telegram’a “yeni bir şey var mı” diye sorar ve cevap gelene kadar bağlantıyı belirli bir süre açık tutar. Bağlantıyı bot dışarıya doğru açtığı için sunucuda port açmanız, alan adı bağlamanız ya da SSL kurmanız gerekmez. Karşılığında programın sürekli çalışması gerekir.
Webhook yönteminde yön tersine döner. setWebhook ile Telegram’a bir adres verirsiniz; her yeni mesajda Telegram bu adrese HTTPS POST isteğiyle JSON gönderir. Bunun bedeli, dışarıdan erişilebilen bir HTTPS adresidir.
| Özellik | Long polling | Webhook |
|---|---|---|
| Bağlantı yönü | Bot Telegram’a sorar | Telegram bota gönderir |
| Alan adı ve SSL | Gerekmez | Gerekir, sertifika alan adıyla eşleşmeli |
| Port | Dışarıya açık port gerekmez | Yalnız 443, 80, 88 veya 8443 |
| Sürekli çalışan süreç | Şart | Web sunucusu varsa gerekmez |
| Uygun ortam | VPS, VDS | VPS; küçük PHP botunda paylaşımlı hosting |
Bilgi
Telegram’ın webhook rehberine göre sunucunuz IPv4 üzerinden erişilebilir olmalı (webhook için IPv6 desteklenmiyor), TLS 1.2 ve üzerini karşılamalı ve sertifikadaki alan adı setWebhook’ta verdiğiniz adresle birebir eşleşmeli.
Paylaşımlı Hostingte Telegram Botu Çalışır mı
Paylaşımlı hosting paketlerinde SSH ve root erişimi yoktur. Arka planda sürekli açık kalan bir program çalıştıramazsınız. Python ya da Node.js ile yazılmış, getUpdates döngüsüyle çalışan bir bot bu yüzden paylaşımlı ortama uygun değildir; bu ayrımın genel hâlini Python ve Node.js için hangi hosting yazısında bulabilirsiniz.
Webhook ise PHP’nin çalışma biçimine uyar. Telegram adresinize bir istek gönderir, web sunucusu PHP betiğini çalıştırır, betik mesajı işleyip cevabı döner ve kapanır. Bot API, webhook isteğine verdiğiniz cevabın içinde bir method belirterek doğrudan cevap göndermeye de izin verir; basit bir “komuta cevap ver” botu böylece tek istekle işini bitirir.
Bu yolun koşulları nettir. Alan adınızda geçerli bir SSL sertifikası olmalı; webhook adresi HTTP’den HTTPS’e ya da www’ye yönlendirilmemeli, çünkü Telegram yönlendirmeyi izlemez. Betik her isteği birkaç saniyede bitirmeli; uzun süren dosya dönüştürme, büyük yayın ya da ağır API çağrıları web isteğinin süre sınırına takılır.
Dikkat
Paylaşımlı hostingteki güvenlik duvarı ya da web uygulama güvenlik kuralları Telegram’dan gelen POST isteğini şüpheli bulup engelleyebilir. Bu durumda bot sessizce susar. getWebhookInfo çağrısının döndürdüğü last_error_message ve pending_update_count alanları sorunun yerini gösterir; engel devam ediyorsa destek ekibine webhook adresinizi bildirin.
Çalışma Ortamı, Python mu Node.js mi PHP mi
Telegram botlarının büyük kısmı Python ya da Node.js ile yazılır. İki dilde de kütüphaneler hem long polling hem webhook destekler. VPS’te dilin çalışma ortamını kurar, bağımlılıkları yükler ve botu bir hizmet olarak tanımlarsınız. Paket deposundaki sürüm kütüphanenin istediğinden eski kalabilir; bu durumda resmî kaynaktan güncel sürüm kurulur.
PHP ile yazılan botlar için tablo farklıdır. Webhook kullanıyorsanız paylaşımlı hosting ve VPS ikisi de olur; paylaşımlı pakette PHP sürümünü panelden seçebilirsiniz. Botunuz aynı sunucuda başka konteynerlerle birlikte çalışacaksa Docker için hangi sunucu yazısındaki kaynak hesabı da işinize yarar.
Telegram Bot Sunucusu İçin Kaynak Tablosu
Bir botun tükettiği kaynak, kullanıcı sayısına, işlediği dosyalara ve tuttuğu veriye bağlıdır. Görsel küçülten, PDF üreten ya da ses dosyası dönüştüren bir bot her istekte işlemciyi yorar. Aşağıdaki değerler temkinli başlangıç aralıklarıdır; asıl kararı ilk haftanın grafiği verir.
| Bot türü | vCPU | RAM | Not |
|---|---|---|---|
| Küçük: bildirim, komut, form botu | 1 | 1 GB | Webhook ve PHP ise paylaşımlı hosting de yeterli olabilir |
| Orta: veritabanı, zamanlanmış görev, birkaç bin kullanıcı | 1–2 | 2 GB | Veritabanı aynı sunucuda ayrı hizmet olarak çalışır |
| Büyük: dosya işleme, yapay zekâ API’si, toplu yayın | 2–4 | 4 GB ve üzeri | İş kuyruğu ve birden çok çalışan süreç planlanır |
Toplu yayın yapan botlarda sınırı çoğu zaman sunucu değil Telegram belirler. Telegram’ın bot FAQ sayfasına göre tek bir sohbete saniyede birden fazla mesaj gönderilmemesi önerilir, bir grupta dakikada 20 mesaj sınırı vardır ve ücretsiz toplu gönderim saniyede yaklaşık 30 mesajla sınırlıdır. 50 bin aboneye duyuru bu yüzden yarım saate yakın sürer; büyük sunucu bunu hızlandırmaz.
Örnek senaryo
Bir e-ticaret işletmesi, sipariş durumunu soran müşterilere cevap veren ve kargo çıkışında bildirim gönderen bir Python botu yazdı. İlk sürüm ofis bilgisayarında çalışıyor, hafta sonları kapanıyordu. Bot 1 vCPU ve 1 GB bellekli bir VPS’e taşındı, systemd hizmeti olarak tanımlandı, token ortam değişkenine alındı. Günde 3.000 bildirime çıkıldığında da aynı paket yetti; bildirim göndermek işlemciyi değil ağı kullanır.

Süreç Yöneticisi, Botun Kapanmaması İçin
VPS’te botu terminalden başlatıp SSH bağlantısını kapatırsanız bot da kapanır. Long polling kullanan her telegram bot sunucusunda botun işletim sistemi tarafından yönetilen bir hizmete çevrilmesi gerekir. Linux’ta ilk yol systemd’dir: bir hizmet dosyası yazarsınız, bot sunucu açılışında otomatik başlar, çökerse belirlediğiniz süre sonra yeniden başlatılır ve kayıtları sistem günlüğüne düşer. Hizmet komutları Linux servis yönetimi kartında anlatılıyor.
İkinci yol Node.js dünyasında yaygın olan PM2’dir. Botu PM2 ile başlatır, çöktüğünde yeniden başlatılmasını ve sunucu açılışında devreye girmesini sağlarsınız; bellek kullanımını ve kayıtları tek komutla izlersiniz. Webhook kullanan botta bunlara bir web sunucusu ve SSL sertifikası eklenir.
Bot Token Güvenliği ve Sunucu Erişimi
Token, botunuzun kimliğidir. Token’ı ele geçiren kişi botunuz adına mesaj gönderebilir, webhook’u kendi adresine çevirip mesajları okuyabilir. Token’ı kodun içine yazmayın; ortam değişkeninde ya da yalnız bot kullanıcısının okuyabildiği bir dosyada tutun ve Git deposuna göndermeyin. Sızdığından şüpheleniyorsanız BotFather’dan token’ı yenileyin, eski token geçersiz olur.
Webhook kullanıyorsanız setWebhook’taki secret_token parametresini tanımlayın. Telegram her istekte bu değeri X-Telegram-Bot-Api-Secret-Token başlığında gönderir; başlık eşleşmeyen isteği reddederek başkasının adresinize sahte güncelleme göndermesini engellersiniz. Botu root yerine ayrı bir kullanıcıyla çalıştırın, SSH’ta anahtarla giriş kullanın ve yalnız gereken portları açın.
Narhost VPS’te Telegram Bot Sunucusu
Long polling ile çalışan botlar ve Python ya da Node.js projeleri için en küçük VPS paketleri çoğu zaman yeterli başlangıçtır. Narhost VPS’te root erişimi sizdedir; Linux dağıtımını seçer, çalışma ortamını ve süreç yöneticisini kendiniz kurarsınız. Sunucu anında kurulur, NVMe disk ve 50 Gbps port ile gelir; tarayıcı terminalinden de bağlanabilirsiniz. VPS yönetimsiz bir üründür; bot, güncelleme ve yedek sizdedir. Çekirdek paylaşımı ile ayrılmış çekirdek arasındaki farkı VPS mi VDS mi bulut sunucu mu karşılaştırmasında bulabilirsiniz.
Sonuç
Webhook ile çalışan küçük bir PHP botu için paylaşımlı hosting yeterli olabilir. Long polling kullanan, Python ya da Node.js ile yazılmış ya da dosya işleyen bir bot içinse doğru telegram bot sunucusu, root erişimli küçük bir VPS ve botu çöktüğünde geri getiren bir süreç yöneticisidir.
Kontrol Listesi, Botu Sunucuya Taşımadan Önce
- Botun long polling mi webhook mu kullandığını belirleyin; ikisi aynı anda çalışmaz.
- Webhook kullanacaksanız geçerli SSL sertifikası olan bir alan adı hazırlayın ve adresin yönlendirme yapmadığını doğrulayın.
- Webhook portunu 443, 80, 88 veya 8443 arasından seçin.
- Kütüphanenin istediği dil sürümünü not edin.
- Token’ı koddan çıkarıp ortam değişkenine taşıyın, webhook için secret_token tanımlayın.
- Botu root yerine ayrı bir kullanıcıyla çalıştırın.
- systemd ya da PM2 ile otomatik başlatma ve yeniden başlatmayı ayarlayın.
- Veritabanı kullanıyorsanız sunucu dışına düzenli yedek alın.
Sıkça sorulan sorular
Ücretsiz bir telegram bot sunucusu yeterli olur mu?
Deneme için olabilir, sürekli kullanım için çoğu zaman yetmez. Ücretsiz ortamların büyük kısmı uygulamayı boşta kaldığında uyutur ya da aylık çalışma süresini sınırlar. Bu sürede bot mesajları alamaz; 24 saati geçen güncellemeler silinir. Küçük bir VPS daha öngörülebilirdir.
Webhook için alan adı şart mı?
Pratikte evet. Telegram webhook isteğini yalnız HTTPS adresine gönderir ve sertifikadaki adın verdiğiniz adresle eşleşmesini ister. Kendinden imzalı sertifika da kabul edilir, ancak açık anahtarı setWebhook’a dosya olarak yüklemeniz ve sertifikadaki adın yine adresle eşleşmesi gerekir. Alan adı ve güvenilir bir SSL sertifikası çoğu durumda daha az uğraştırır.
Telegram botu cPanel’de çalıştırılabilir mi?
Webhook ile çalışan bir PHP betiği cPanel’li paylaşımlı hostingte çalışabilir. Long polling döngüsüyle çalışan Python veya Node.js botları için ise sürekli açık süreç gerekir; bunu paylaşımlı ortamda güvenilir biçimde sağlayamazsınız.
Bir sunucuda birden fazla bot çalışır mı?
Evet. Her bot ayrı bir systemd hizmeti ya da ayrı bir PM2 süreci olarak tanımlanır ve birbirinden bağımsız çalışır. Toplam bellek ihtiyacı botların toplamıdır.
Bot neden bazen cevap vermiyor?
Long polling kullanan botta en sık neden sürecin çökmesi ya da bellek yetmezliğidir; süreç yöneticisinin kayıtlarına bakın. Webhook kullanan botta sertifika sorunu, yönlendirme, güvenlik kuralının isteği engellemesi ya da betiğin geç cevap vermesi öne çıkar. getWebhookInfo çıktısındaki son hata mesajı sorunun hangisi olduğunu çoğu zaman söyler.
Narhost’ta
VPS paketlerimizde root erişimi sizdedir; Linux dağıtımını seçer, botunuzu systemd ya da PM2 ile 7/24 çalıştırırsınız. NVMe disk, 50 Gbps port, anında kurulum ve tarayıcı terminali standarttır.