Yaz sıcağı — her şey eriyor, fiyatlarımız bile.−25%31 Ağustos'a kadar her yıllık planda −%25Planları gör
EQVPS
Hemen başla

Bir Telegram botunu bir VPS'te nasıl barındırırsın (ve çalışır tutarsın)

15 Haz 2026 · 2 dk okuma · EQVPS Team

Yalnızca dizüstünüz açıkken çalışan bir Telegram botu gerçekte çalışıyor değildir — demo yapıyordur. Gerçekten çevrimiçi olması, gece 3'te yanıt vermesi, sizin yeniden başlatmalarınızdan ve kendi çökmelerinden sağ çıkması için bir sunucuda yaşaması gerekir. İşte baştan sona tüm yol, komutlarla.

Önce iyi haber: bir bot minik bir iş yüküdür. Çoğunlukla mesaj bekleyerek boşta durur, o yüzden en ucuz kutu onu sorunsuz çalıştırır — özel IP yok, alan adı yok, süslü bir şey yok.

1. BotFather'dan bir token al

Telegram'da @BotFather'a mesaj at, /newbot gönder, bir ad ve kullanıcı adı seç. Sana 12345:AAH... gibi görünen bir token verir. Onu bir parola gibi ele al — ona sahip olan herkes botunu kontrol eder.

2. Minimal bir bot

Sunucuya SSH ile bağlan, Python'u ve kütüphaneyi kur:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

Yanıt veren bir bot — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Alive and on a server. 🟢")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Token'ı bir ortam değişkeninden okuduğuna dikkat et — sabit kodlanmış değil. Bu bir sonraki adımda önemli.

3. Onu gerçekten çalışır tutan kısım: systemd

Sadece python bot.py çalıştırırsan, SSH'ı kapattığın an ölür. Bir systemd hizmeti onu çıkıştan, çökmelerden ve yeniden başlatmalardan sağ çıkaran şeydir. /etc/systemd/system/mybot.service oluştur:

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

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

Sonra:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # active (running) demeli
journalctl -u mybot -f           # canlı loglar

Restart=always asıl işi yapan satırdır — çök, ve 5 saniyede geri gelir. enable bir yeniden başlatmadan sonra ayağa kalkması demektir. "Bir kez bir bot çalıştırdım" ile "botum ayakta" arasındaki tüm fark budur.

4. Neden alan adı ya da açık port yok

Bot uzun sorgulama kullanır — güncellemeler için Telegram'a uzanır, o yüzden hiçbir şeyin içeri ulaşmasına gerek yoktur. Genel URL yok, gelen güvenlik duvarı kuralı yok, özel IP yok. NAT bir VPS'in (paylaşımlı IP, bir portta SSH) bir bot için iyi ve ucuz bir ev olmasının sebebi tam olarak bu. Webhook'lar çok yüksek hacim için vardır ama başlamak için neredeyse kesinlikle onlara ihtiyacın yok.

Dürüst uyarılar

Bu kadar. Önce kutuyu güvenlik kontrol listesiyle kilitle, hizmeti bırak ve botun sen olsan da olmasan da çevrimiçi kalsın. Kripto parayla ödenen bir VPS'te, karar verdikten bir dakika sonra çalışır durumda olabilir.

SSS

Bir Telegram botu için hangi VPS'e ihtiyacım var?

En küçüğüne. Bir Telegram botu çoğunlukla boştadır, güncellemeleri bekler, o yüzden 1 GB RAM ve 2 çekirdek çoğu bot için fazlasıyla yeter — oldukça meşgul olanları bile. Yalnızca bot ağır işi kendi yapıyorsa daha fazlasına ihtiyacın olur (görüntü işleme, yerel bir model, büyük bir veritabanı).

SSH'ı kapattıktan sonra bir Telegram botunu nasıl çalışır tutarım?

Onu bir systemd hizmeti olarak çalıştır. Terminalinde başlatmanın aksine, systemd onu sen çıkış yaptıktan sonra ayakta tutar, çökerse yeniden başlatır ve bir yeniden başlatmadan sonra tekrar başlatır. Oyuncak ile ayakta kalan bir şey arasındaki fark budur.

Bağlantımı kesince botum neden duruyor?

Çünkü onu SSH oturumunda başlattın, o yüzden oturum bitince ölür. Onu bir systemd hizmetine (ya da hızlı bir test için tmux'a) sar ve girişinden bağımsız çalışır.

Bir Telegram botu için alan adına ya da webhook'a ihtiyacım var mı?

Hayır. Uzun sorgulama (getUpdates) hiçbir genel URL, alan adı ya da gelen port gerektirmez — bot Telegram'a uzanır. NAT bir VPS'in özel IP olmadan bir bot için gayet iyi olmasının sebebi bu. Webhook'lar yüksek hacim için isteğe bağlı bir optimizasyondur.

Bot token'ımı bir VPS'e koymak güvenli mi?

Evet, onu bir parola gibi ele alırsan: onu bir ortam değişkeninde ya da yalnızca botun kullanıcısının okuyabileceği bir dosyada tut, asla git'e commit etme ve sunucuyu SSH anahtarlarıyla kilitle. Bir token sızarsa, BotFather'da iptal et ve yenisini çıkar.

← Blog'a dönPlanları ve fiyatları gör →

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.