Skip to content
VDS · ایپس اور بوٹس

سرور پر 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 فائل تبدیل کریں — اس امید پر نہ رہیں کہ کسی نے دھیان نہیں دیا۔