سرور پر Telegram بوٹ: لانچ اور آٹو اسٹارٹ
VPS پر Telegram بوٹ کیسے ہوسٹ کریں: اپنے یوزر کے تحت آئسولیشن، systemd سروس، ٹوکن اسٹوریج، لاگز، اور نیٹ ورک بندش سے نمٹنا۔
اپ ڈیٹ 23 اگست، 2026
بوٹ کے لیے مسلسل چلنے والا پروسیس درکار ہوتا ہے — یہیں مفت ہوسٹنگ ختم ہوتی ہے اور VDS شروع ہوتا ہے۔ بوٹ کو وسائل تقریباً درکار نہیں ہوتے: یہاں تک کہ VDS-1 (1 کور، 2 GB) ہزاروں صارفین والے بوٹ کو سنبھال لیتا ہے۔
تعیناتی
الگ صارف اور الگ ڈائریکٹری — تاکہ بوٹ root کے طور پر نہ چلے:
useradd -r -m -d /srv/bot -s /usr/sbin/nologin botuser
cd /srv/bot && sudo -u botuser git clone https://github.com/you/bot.git .
sudo -u botuser python3 -m venv venv
sudo -u botuser venv/bin/pip install -r requirements.txt
Node.js کے لیے: venv کے بجائے npm ci --omit=dev استعمال کریں۔
ٹوکن کو کوڈ میں نہیں، ماحول کی فائل میں رکھیں:
install -o botuser -g botuser -m 600 /dev/null /srv/bot/.env
echo 'BOT_TOKEN=123456:ABC...' > /srv/bot/.env
ٹوکن والی فائل کبھی ریپوزٹری میں نہ جائے: پہلے commit سے قبل اسے .gitignore میں شامل کریں۔
سروس
/etc/systemd/system/tgbot.service:
[Unit]
Description=Telegram bot
After=network-online.target
Wants=network-online.target
[Service]
User=botuser
WorkingDirectory=/srv/bot
EnvironmentFile=/srv/bot/.env
ExecStart=/srv/bot/venv/bin/python -u bot.py
Restart=always
RestartSec=10
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now tgbot
journalctl -u tgbot -f
Python میں -u فلیگ آؤٹ پٹ بفرنگ بند کرتا ہے — اس کے بغیر لاگز journal میں کئی منٹ کی تاخیر سے نظر آئیں گے، یا بالکل نہیں آئیں گے۔
لانگ پولنگ یا ویب ہک
لانگ پولنگ زیادہ آسان ہے: بوٹ خود Telegram سے پوچھتا رہتا ہے، اور آپ کو کچھ بھی ظاہر کرنے کی ضرورت نہیں۔ زیادہ تر کاموں کے لیے یہی کافی ہے۔
ویب ہک زیادہ تیز اور ٹریفک کے لحاظ سے سستا ہے، مگر اس کے لیے ڈومین اور سرٹیفکیٹ درکار ہوتا ہے:
location /bot/token {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
آپ کو Let's Encrypt اور ریورس پراکسی کی ضرورت ہوگی۔ Telegram خود ساختہ سرٹیفکیٹ ہچکچاہٹ کے ساتھ قبول کرتا ہے — عام سرٹیفکیٹ استعمال کریں۔
بوٹ کی دو کاپیاں کبھی بیک وقت نہ چلیں: Telegram اپڈیٹس صرف ایک وصول کنندہ کو پہنچاتا ہے، اور بوٹ وقفے وقفے سے جواب دینے لگیں گے۔ تبدیلیوں کے بعد دوبارہ لانچ نہیں، بلکہ restart کریں۔
ڈیٹا
سیٹنگز اور اعداد و شمار کے لیے SQLite کافی ہے — بوٹ کے ساتھ ہی ایک فائل۔ الگ ڈیٹا بیس سرور صرف اسی صورت درکار ہوتا ہے جب بوٹ کا ویب پینل یا ایک سے زیادہ پروسیس ہوں۔
عام غلطیاں
| علامت | وجہ |
|---|---|
Conflict: terminated by other getUpdates | بوٹ کی دو کاپیاں چل رہی ہیں |
| رات کے بعد بوٹ خاموش ہو جاتا ہے | Restart=always کنفیگر نہیں، اور نیٹ ورک ڈراپ پر پروسیس کریش ہو گیا |
Unauthorized | ٹوکن منسوخ ہو چکا ہے یا اضافی اسپیسز کے ساتھ کاپی ہوا ہے |
| لاگز نہیں آ رہے | آؤٹ پٹ بفرنگ، یا stdout کے بجائے فائل میں لکھا جا رہا ہے |
| دستی طور پر چلتا ہے، سروس کے طور پر کریش ہوتا ہے | systemd میں ماحول کے متغیرات موجود نہیں |
جو ٹوکن اسکرین شاٹ، عوامی ریپوزٹری یا کسی اور کی چیٹ میں ظاہر ہو چکا ہو، وہ کمپرومائزڈ سمجھا جاتا ہے۔ اسے BotFather کے ذریعے منسوخ کریں اور
.envفائل تبدیل کریں — اس امید پر نہ رہیں کہ کسی نے دھیان نہیں دیا۔