EQVPS

ایک VPS پر ایک Telegram bot کیسے host کریں (اور اسے چلتا رکھیں)

Jun 15, 2026 · 3 min read · EQVPS Team

ایک Telegram bot جو صرف آپ کے لیپ ٹاپ کے کھلے رہنے تک چلتا ہے وہ دراصل چل نہیں رہا — یہ demo کر رہا ہے۔ اسے دراصل آن لائن رکھنے کو، رات 3 بجے جواب دیتا، آپ کے reboots اور اپنے کریشز سے بچتا، اسے ایک سرور پر رہنا چاہیے۔ یہ رہا پورا راستہ، ابتدا سے انتہا تک، کمانڈز کے ساتھ۔

پہلے اچھی خبر: ایک bot ایک چھوٹا ورک لوڈ ہے۔ یہ زیادہ تر messages کے انتظار میں idle بیٹھتا ہے، تو سب سے سستا باکس اسے خوب چلاتا ہے — کوئی dedicated IP، domain، کوئی fancy چیز نہیں۔

1. BotFather سے ایک token لیں

Telegram میں، @BotFather کو message کریں، /newbot بھیجیں، ایک نام اور username چنیں۔ یہ آپ کو ایک token دیتا ہے جو 12345:AAH... جیسا لگتا ہے۔ اسے ایک پاس ورڈ کی طرح برتیں — جس کے پاس یہ ہو وہ آپ کے bot کو کنٹرول کرتا ہے۔

2. ایک minimal bot

سرور میں SSH کریں، Python اور لائبریری سیٹ کریں:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

ایک bot جو جواب دیتا ہے — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Alive and on a server. 🟢")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

نوٹ کریں یہ token کو ایک environment variable سے پڑھتا ہے — hardcoded نہیں۔ یہ اگلے قدم میں اہم ہے۔

3. وہ حصہ جو دراصل اسے چلتا رکھتا ہے: systemd

اگر آپ بس python bot.py چلائیں، تو یہ اُس لمحے مر جاتا ہے جب آپ SSH بند کریں۔ ایک systemd سروس ہی اسے logout، کریشز، اور reboots سے بچاتی ہے۔ /etc/systemd/system/mybot.service بنائیں:

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

پھر:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # active (running) کہنا چاہیے
journalctl -u mybot -f           # live logs

Restart=always وہ لائن ہے جو اصل کام کرتی ہے — کریش، اور یہ 5 سیکنڈ میں واپس۔ enable مطلب یہ ایک ری بوٹ کے بعد آتا ہے۔ یہی "میں نے ایک بار ایک bot چلایا" اور "میرا bot اوپر ہے" کے بیچ پورا فرق ہے۔

4. کوئی domain یا کھلے ports کیوں نہیں

bot long polling استعمال کرتا ہے — یہ updates کے لیے Telegram تک پہنچتا ہے، تو کسی چیز کو اندر پہنچنے کی ضرورت نہیں۔ کوئی public URL، inbound firewall rule، dedicated IP نہیں۔ بالکل اسی لیے ایک NAT VPS (shared IP، ایک پورٹ پر SSH) ایک bot کے لیے ایک ٹھیک اور سستا گھر ہے۔ Webhooks بہت زیادہ حجم کے لیے موجود ہیں، لیکن آپ کو شروع کرنے کو تقریباً یقیناً ان کی ضرورت نہیں۔

ایماندار احتیاطیں

بس۔ پہلے باکس کو security checklist سے لاک کریں، سروس ڈالیں، اور آپ کا bot آن لائن رہتا ہے چاہے آپ رہیں یا نہ۔ ایک کرپٹو-ادا VPS پر آپ اسے فیصلہ کرنے کے ایک منٹ بعد چلتا رکھ سکتے ہیں۔

FAQ

ایک Telegram bot کے لیے مجھے کون سا VPS چاہیے؟

سب سے چھوٹا۔ ایک Telegram bot زیادہ تر idle رہتا ہے، updates کا انتظار کرتا، تو 1 GB RAM اور 2 cores زیادہ تر bots کے لیے کافی ہیں — کافی مصروف بھی۔ آپ کو زیادہ صرف تب چاہیے جب bot خود بھاری کام کرے (image processing، ایک local ماڈل، ایک بڑا database)۔

SSH بند کرنے کے بعد ایک Telegram bot کو چلتا کیسے رکھوں؟

اسے ایک systemd سروس کے طور پر چلائیں۔ اپنے terminal میں چالو کرنے کے برعکس، systemd اسے log out کے بعد زندہ رکھتا، کریش پر restart کرتا، اور ایک ری بوٹ کے بعد دوبارہ شروع کرتا ہے۔ یہی ایک کھلونے اور کسی ایسی چیز کے بیچ فرق ہے جو چلتی رہتی ہے۔

میرا bot میرے disconnect کرنے پر کیوں رک جاتا ہے؟

کیونکہ آپ نے اسے اپنے SSH سیشن میں شروع کیا، تو یہ اُس سیشن کے ختم ہونے پر مر جاتا ہے۔ اسے ایک systemd سروس میں لپیٹیں (یا ایک فوری test کے لیے tmux) اور یہ آپ کے login سے آزاد چلتا ہے۔

کیا ایک Telegram bot کے لیے مجھے ایک domain یا webhook چاہیے؟

نہیں۔ Long polling (getUpdates) کو کوئی public URL، domain، inbound port نہیں چاہیے — bot Telegram تک پہنچتا ہے۔ اسی لیے ایک NAT VPS بغیر dedicated IP ایک bot کے لیے بالکل ٹھیک ہے۔ Webhooks زیادہ حجم کے لیے ایک اختیاری optimization ہیں۔

کیا اپنا bot token ایک VPS پر رکھنا محفوظ ہے؟

جی ہاں، اگر آپ اسے ایک پاس ورڈ کی طرح برتیں: اسے ایک environment variable یا صرف bot کے user کے پڑھنے کے قابل ایک فائل میں رکھیں، اسے کبھی git پر commit نہ کریں، اور سرور کو SSH keys سے لاک کریں۔ اگر ایک token لیک ہو، تو اسے BotFather میں revoke کریں اور ایک نیا جاری کریں۔

← Back to blogSee plans & pricing →

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔