
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.
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 gitSSH’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.txt3. 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.targetsudo systemctl daemon-reload
sudo systemctl enable --now telegram-bot
sudo journalctl -u telegram-bot -f5. Zamanlanmış Görevler: cron mu systemd timer mı?
| Özellik | cron | systemd timer |
|---|---|---|
| Kurulum kolaylığı | Basit | Biraz daha uzun |
| Log yönetimi | Elle | journald ile hazır |
| Kaçırılan çalıştırma | Atlanır | Persistent=true ile telafi edilir |
| Bağımlılık yönetimi | Yok | Servis 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 bot | 1 GB+ |
| Veritabanlı bot | +200-500 MB |
| Web scraping / crawler | 500 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.