VPS Sunucuda Telegram Bot Çalıştırma: Adım Adım Rehber

VPS Sunucuda Telegram Bot Çalıştırma: Adım Adım Rehber

VPS Sunucuda Telegram Bot Çalıştırma: Başlangıç Rehberi

VPS Sunucuda Telegram Bot Çalıştırma — VPS Sunucuda Telegram Bot Çalıştırma: Başlangıç Rehberi

VPS Sunucuda Telegram Bot Çalıştırma, botunuzu 7/24 kesintisiz ve güvenli bir şekilde ayakta tutmanın en etkili yoludur. Kendi sanal sunucunuzda bot barındırmak, hem tam kontrol sağlar hem de ücretsiz platformların sınırlamalarından kurtarır. Bu rehberde, sıfırdan bir Telegram botu oluşturup VPS üzerinde nasıl çalıştıracağınızı adım adım anlatacağım.

Telegram botları, mesajlaşma otomasyonundan e-ticaret entegrasyonuna kadar geniş bir kullanım alanına sahip. Eğer halihazırda bir VPS kullanıyorsanız, botunuzu aynı sunucuda kolayca barındırabilirsiniz. Sunucunuz yoksa, öncelikle ihtiyaçlarınıza uygun bir VPS seçmeniz gerekir. Veri merkezi lokasyonu gibi faktörler, botunuzun yanıt süresini doğrudan etkiler; bu konuda Veri Merkezi Lokasyonu VPS Seçerken Neden Önemli? yazımıza göz atabilirsiniz.

Bu yazıda Python kullanacağız. Python, Telegram Bot API’si için en yaygın ve esnek dildir. Adımları takip ederek kendi botunuzu dakikalar içinde çalıştırabilirsiniz.

Telegram Botu Oluşturma ve Token Alma

Her şeyden önce Telegram üzerinde bir bot hesabı oluşturmalısınız. Bunun için Telegram’da @BotFather‘a mesaj gönderin. BotFather, size botunuzu yönetmeniz için gerekli token’ı verecektir.

  • Telegram’ı açın ve arama çubuğuna “BotFather” yazın.
  • BotFather’a /newbot komutunu gönderin.
  • Botunuz için bir isim ve kullanıcı adı belirleyin (kullanıcı adı ‘bot’ ile bitmeli).
  • Size verilen HTTP API Token‘ı kopyalayın. Bu token, botunuzun kimlik anahtarıdır; kimseyle paylaşmayın.

Token’ı aldıktan sonra botunuz hazır demektir. Şimdi VPS sunucunuza bağlanıp gerekli yazılımları kuralım.

VPS Sunucu Hazırlığı ve Python Kurulumu

VPS sunucunuza SSH ile bağlanın. Eğer SSH bağlantısında zorluk yaşıyorsanız, Güvenli SSH Bağlantısı Nasıl Kurulur? VPS Rehberi yazımız size yol gösterecektir.

Öncelikle sistem paketlerini güncelleyin:

sudo apt update && sudo apt upgrade -y

Ardından Python ve pip’i kurun:

sudo apt install python3 python3-pip python3-venv -y

Botumuz için ayrı bir kullanıcı oluşturmak güvenlik açısından iyi bir fikirdir. Örneğin:

sudo adduser botuser

Bu kullanıcıya geçiş yapın ve proje dizini oluşturun:

su - botuser
mkdir ~/mybot && cd ~/mybot

Python ile Basit Bir Telegram Botu Yazma

Botumuz için sanal ortam oluşturup python-telegram-bot kütüphanesini kuralım:

python3 -m venv venv
source venv/bin/activate
pip install python-telegram-bot

Şimdi bot.py adında bir dosya oluşturun ve aşağıdaki kodu yapıştırın. Bu bot, gelen mesajlara yanıt verecektir:

import logging
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler, MessageHandler, filters

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text="Merhaba! Ben bir botum.")

async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)

if __name__ == '__main__':
    application = ApplicationBuilder().token('YOUR_TOKEN_HERE').build()
    start_handler = CommandHandler('start', start)
    echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
    application.add_handler(start_handler)
    application.add_handler(echo_handler)
    application.run_polling()

YOUR_TOKEN_HERE kısmına BotFather’dan aldığınız token’ı yazın. Kaydedip çıkın.

Botu test etmek için:

python bot.py

Telegram’da botunuza mesaj gönderin; anında yanıt aldığınızı göreceksiniz.

Botu Systemd ile 7/24 Çalıştırma

Botu manuel olarak çalıştırmak, terminal kapandığında botun durmasına neden olur. Bunun yerine systemd servisi oluşturarak botunuzu arka planda ve otomatik olarak başlatabilirsiniz.

Öncelikle bir systemd servis dosyası oluşturun:

sudo nano /etc/systemd/system/mybot.service

İçeriği şu şekilde düzenleyin:

[Unit]
Description=Telegram Bot Servisi
After=network.target

[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/mybot
ExecStart=/home/botuser/mybot/venv/bin/python /home/botuser/mybot/bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Kaydedip çıkın. Ardından servisi etkinleştirin ve başlatın:

sudo systemctl daemon-reload
sudo systemctl enable mybot.service
sudo systemctl start mybot.service

Durumu kontrol etmek için:

sudo systemctl status mybot.service

Artık botunuz sunucu yeniden başlasa bile Otomatik olarak çalışacaktır.

Log Takibi ve Hata Ayıklama

Botunuzun düzgün çalışıp çalışmadığını görmek için logları inceleyebilirsiniz:

sudo journalctl -u mybot.service -f

Bu komut, botun canlı loglarını gösterir. Herhangi bir hata durumunda buradan tespit edebilirsiniz. Daha kapsamlı log yönetimi için Log Yönetimi ve Analizi: VPS Sunucuda Mükemmel Rehber yazımıza göz atabilirsiniz.

Güvenlik ve Performans İpuçları

VPS sunucuda Telegram bot çalıştırırken güvenliği ihmal etmeyin. İşte dikkat etmeniz gerekenler:

  • Token’ı gizli tutun: Token’ı asla kod içinde paylaşmayın, ortam değişkeni olarak saklayın.
  • Güvenlik duvarı kullanın: Sadece gerekli portları açık bırakın.
  • Düzenli güncelleme yapın: Hem sistem hem de Python paketlerini güncel tutun. Otomatik güncelleme için Otomatik Güncelleme Patch Yönetimi: VPS Sunucuda Rehber yazımızdan faydalanabilirsiniz.
  • Kaynak kullanımını izleyin: Botunuzun CPU ve RAM tüketimini takip edin.

Performans için bot kodunuzu optimize edin, gereksiz döngülerden kaçının. Eğer botunuz yoğun trafik alacaksa, daha güçlü bir VPS planına geçmeyi düşünebilirsiniz.

Artık kendi Telegram botunuzu VPS sunucunuzda güvenle çalıştırabilirsiniz. Hemen bir VPS kiralayarak ilk botunuzu dakikalar içinde hayata geçirin. Unutmayın, iyi bir sunucu ve doğru yapılandırma ile botunuz kesintisiz hizmet verecektir. Sorularınız için yorum bırakabilirsiniz!