Telegram Botu ve Otomasyon Script'leri İçin VDS Kurulumu

Telegram Botu ve Otomasyon Script'leri İçin VDS Kurulumu

Telegram botunuzu ve zamanlanmış script'lerinizi bir VDS üzerinde 7/24 çalıştırın. Python sanal ortamı, systemd timer, cron, Docker ile izolasyon ve log yönetimi.

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

Telegram Botu ve Otomasyon Script’leri İçin VDS Kurulumu

Bir Telegram botu, zamanlanmış bir veri toplama script’i veya bildirim gönderen küçük bir servis: hepsinin ortak ihtiyacı kesintisiz çalışmadır. Bu rehberde bir VDS üzerinde bu işleri düzgün biçimde kurmayı anlatıyoruz.

1. Sunucu Hazırlığı ve Güvenlik

sudo apt update && sudo apt upgrade -y
sudo adduser --disabled-password --gecos "" bot
sudo apt install -y python3-venv python3-pip git

SSH’a anahtar ile girin, parola girişini kapatın ve güvenlik duvarında yalnızca SSH portunu açık tutun:

sudo ufw allow OpenSSH
sudo ufw enable

💡 Botlar dışa bağlantı kurar; gelen bağlantı için port açmanız gerekmez. Açık port sayısını en azda tutmak en etkili güvenlik önlemidir.

2. Python Sanal Ortamı

Sistem Python’unu kirletmeyin; her proje için ayrı sanal ortam kurun:

sudo su - bot
git clone https://github.com/kullanici/telegram-botum.git ~/bot
cd ~/bot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

3. Token’ı Güvenli Saklama

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

⚠️ Token’ı kod içine yazmayın ve depoya göndermeyin. Yanlışlıkla herkese açık bir depoya düşen token’lar dakikalar içinde taranıp kullanılıyor; böyle bir durumda BotFather üzerinden hemen yenileyin.

4. systemd ile Sürekli Çalıştırma

[Unit]
Description=Telegram Bot
After=network.target
 
[Service]
Type=simple
User=bot
WorkingDirectory=/home/bot/bot
EnvironmentFile=/home/bot/bot/.env
ExecStart=/home/bot/bot/.venv/bin/python main.py
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now telegram-bot
sudo journalctl -u telegram-bot -f

5. Zamanlanmış Görevler: cron mu systemd timer mı?

Özellikcronsystemd timer
Kurulum kolaylığıBasitBiraz daha uzun
Log yönetimiEllejournald ile hazır
Kaçırılan çalıştırmaAtlanırPersistent=true ile telafi edilir
Bağımlılık yönetimiYokServis bağımlılığı tanımlanabilir

Basit periyodik işler için cron yeterlidir:

*/15 * * * * /home/bot/bot/.venv/bin/python /home/bot/bot/gorev.py

Sunucu kapalıyken kaçan çalıştırmaların telafi edilmesi gerekiyorsa systemd timer tercih edin.

6. Docker ile İzolasyon

Farklı sürüm gereksinimleri olan birden fazla bot çalıştırıyorsanız her birini kendi konteynerinde tutmak en temiz yoldur:

docker run -d --name telegram-bot \
  --env-file /home/bot/bot/.env \
  --restart unless-stopped \
  benim-bot:latest

--restart unless-stopped, sunucu yeniden başladığında konteynerin kendiliğinden ayağa kalkmasını sağlar.

7. Log ve Disk Yönetimi

Log dosyaları sessizce diski doldurur. systemd kullanıyorsanız journald sınırını ayarlayın:

SystemMaxUse=500M

Kendi log dosyanızı yazıyorsanız logrotate tanımlayın; aksi hâlde birkaç ay sonra disk dolduğu için duran bir botla uğraşırsınız.

8. Kaynak Planlaması

Bot türüTipik bellek
Metin komutları150-400 MB
Görsel işleyen bot1 GB+
Veritabanlı bot+200-500 MB
Web scraping / crawler500 MB - 2 GB

Sonuç

Otomasyon işlerini sunucuya taşımak karmaşık bir altyapı gerektirmez: sanal ortam, bir süreç yöneticisi ve düzenli log rotasyonu yeterlidir. Kalan tek şey, sunucunun kesintisiz açık kalmasıdır.

👉 İş yükünüze uygun paket için Telegram bot ve otomasyon VDS sayfamıza, Discord tarafında da bot çalıştıracaksanız Discord bot VDS sayfamıza göz atın.