Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog Telegram Botu ve Otomasyon Script'leri İçin VDS Kurulumu

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

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

Bu rehberde neler var?

  • Her proje için ayrı Python sanal ortamı kurma ve token'ı .env içinde tutma.
  • systemd servisiyle botu sürekli çalıştırma ve journalctl ile log izleme.
  • cron ile systemd timer'ın kaçırılan çalıştırma ve log yönetimi farkı.
  • Docker ile farklı sürüm gereksinimlerini ayırma ve log rotasyonu kurma.

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.