تاسو یو Telegram bot د aiogram سره ولیکه، په محلي توګه مو یې وازمویه، او دا کار کوي. اوس دا باید یو ځای اوسیږي چې نه ویده کیږي کله چې تاسو laptop بند کړئ. یو کوچنی VPS طبیعي کور دی — خو د python bot.py په یوه SSH سیشن او یو bot چې واقعاً د crashونو، بیا پیلونو، او ستاسو د پیوستون د پرې کیدو ژوندی پاتې کیږي ترمنځ یوه تشه ده.
دا تولیدي نسخه ده: یو virtualenv، token ستاسو له کوډ څخه بهر ساتل شوی، یو systemd خدمت چې bot پخپله بیا ژوندی کوي، او د هغې پوښتنې یو روښانه ځواب چې هرڅوک یې بالاخره کوي — polling یا webhook؟
ولې یوازې ستاسو په laptop یې ونه چلوم
یو bot Telegram ته یو ثابت بهرته پیوستون ته اړتیا لري. ستاسو laptop ویده کیږي، د تازه معلوماتو لپاره بیا پیلیږي، او د شبکو ترمنځ ټوپ کوي — هر یو یې bot پریږدي، او کاروونکي د چوپتیا په یوه دیوال ولګیږي. یو VPS هغه پیوستون د شپې او ورځې ساتي. دا ټول دلیل دی چې دا له خپل ماشین لرې کړئ، او همدا دلیل دی چې یو Discord bot هم یوه سرور ته اړه لري.
که تاسو یوازې د یوه لږترلږه bot سره ترټولو ګړندۍ «آنلاین یې کړه» لاره غواړئ، د host-a-Telegram-bot لارښود هغه پوښي. دا ټوټه یو کچه ژوره ځي: aiogram، خوندي د token اداره، او د پورته کیدو د وخت پیژندل.
bot، په یوه virtualenv کې
SSH ورننوځئ او bot په خپل venv کې جلا وساتئ — بستې د سیسټم-په-کچه مه نصبوئ، دا لوړول او پاکول وروسته ګډوډ کوي:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/tgbot && cd ~/tgbot
python3 -m venv venv && source venv/bin/activate
pip install -U aiogram
یو لږترلږه aiogram 3 bot چې خپل token له چاپیریال څخه لولي، نه له یوه hard-coded string:
# bot.py
import asyncio, logging, os
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.filters import CommandStart
logging.basicConfig(level=logging.INFO)
dp = Dispatcher()
@dp.message(CommandStart())
async def start(m: Message):
await m.answer("Alive and running on a VPS.")
async def main():
bot = Bot(os.environ["BOT_TOKEN"])
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
token ستاسو له کوډ څخه بهر وساتئ
هیڅکله د BotFather token په bot.py کې مه پیسټ کوئ — یو push یوه عامه repo ته او دا لیک شوی دی. دا پرځای یې په یوه root-د لوستلو وړ env فایل کې کیږدئ:
sudo tee /etc/tgbot.env >/dev/null <<'EOF'
BOT_TOKEN=123456:your-token-from-botfather
EOF
sudo chmod 600 /etc/tgbot.env
یو لیک شوی token په BotFather کې یو /revoke د سمولو لرې دی — خو په یوه شریک ماشین د بل هر شي لیک بدتر دی. د bot لپاره یو dedicated VPS په رښتیا د token لپاره د ستاسو له ورځني laptop خونديتر کور دی: که لیک شي، تاسو یو token څرخوئ، نه ستاسو ټول تنظیم.
هغه برخه چې یې ژوندی ساتي: systemd
دا هغه څه دي چې یو bot چې چلیږي د یوه bot څخه چې پاتې کیږي جلا کوي. خدمت جوړ کړئ:
# /etc/systemd/system/tgbot.service
[Unit]
Description=Telegram bot (aiogram)
After=network-online.target
Wants=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/tgbot
EnvironmentFile=/etc/tgbot.env
ExecStart=/home/botuser/tgbot/venv/bin/python bot.py
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
دا د یوه غیر-root کاروونکي (پورته botuser) په توګه وچلوئ، نه root — که bot کله هم زیانمن شي، تاسو غواړئ دا بند وي. بیا:
sudo systemctl daemon-reload
sudo systemctl enable --now tgbot
Restart=always د RestartSec=3 سره پدې معنی چې یو crash — د Telegram یو بد تازهوالی، یو غیر-اداره شوی استثنا، یو OOM — bot په درېو ثانیو کې بیرته راولي د دې پر ځای چې مړ پریږدي تر هغه چې تاسو یې ونیسئ. ژوندی یې وګورئ:
journalctl -u tgbot -f
دا ستاسو ټول د logging تنظیم دی. د rotate کولو لپاره هیڅ log فایلونه نشته، هیڅ اضافي وسیله نشته — journald یې لا دمخه لري.
د ودرونې دراما پرته تازه کول
کله چې تاسو کوډ بدل کړئ یا aiogram لوړ کړئ:
cd ~/tgbot && source venv/bin/activate
pip install -U aiogram # if upgrading the library
sudo systemctl restart tgbot
journalctl -u tgbot -n 30 --no-pager # confirm it came back clean
بیا پیل bot د یوې یا دوو ثانیو لپاره blip کوي. د یوه polling bot لپاره دا کاروونکو ته نالیدونکی دی — Telegram تازه معلومات په قطار کوي او یې رسوي کله چې bot بیا ونښلي.
Polling vs webhook — ریښتینې نسخه
دا هغه پریکړه ده چې خلک یې ډیر فکر کوي. دلته ساده نسخه ده:
Polling (start_polling، هغه څه چې پورته کوډ یې کاروي) bot ته وايي چې Telegram وپوښتي «کوم نوی شی؟» په یوه اوږد-عمره پیوستون. دا د بهرته انټرنیټ پرته هیڅ ته اړتیا نلري — هیڅ ډومین، هیڅ TLS، هیڅ خلاص دننهورتګ پورټونه. دا د NAT تر شا ښه چلیږي. د botونو د لویې اکثریت لپاره، دا سم دی او تاسو باید دلته ودریږئ.
Webhook Telegram ته وايي چې تازه معلومات تاسو ته push کړي، چې پدې معنی چې تاسو باید یو عامه HTTPS endpoint څرګند کړئ. دا یو ډومین او یو د رسیدو وړ دننهورتګ پورټ ته اړتیا لري — نو یا یو dedicated عامه IP یا یو reverse proxy مخته. نور تنظیم، نور شیان چې ماتیږي. ګټه یې ټیټ latency او په لوی مقیاس لږ اضافه بار دی — زرګونه هممهاله کاروونکي، درنه د تازه معلوماتو حجم.
عملي قاعده: په یوه NAT پلان په polling پیل وکړئ. یوازې هغه وخت webhook ته واوړئ چې تاسو واقعاً polling ماتولی وي — او که تاسو یې وکړئ، هغه وخت دی چې یو dedicated IP خپل ځای ګټي، ځکه چې تاسو هغه دننهورتګ HTTPS endpoint ته اړتیا لرئ.
د چلولو لګښت څه دی
یو polling bot سپک دی. دا د Telegram long-poll انتظار کوي او په پیغامونو غبرګون کوي، نو box ډیری انتظار کوي:
- $3 Nano (1 vCPU / 1 GB) — د ډیری botونو لپاره سم، حتی خورا فلسفي.
- $5 Micro (2 vCPU / 2 GB) — کله چې bot یو ډیټابیس (SQLite/Postgres) ساتي، رسنۍ اداره کوي، یا ډیرو کاروونکو ته خدمت کوي.
- لوړ یوازې که bot پخپله ریښتینی کار وکړي — د انځور پروسس، یو محلي مودل، درنه د-هر-پیغام منطق.
راجستر یوازې-بریښنالیک دی او تاسو په USDC یا USDT په Base یا Ethereum تادیه کوئ — بې کارت، بې ID. یو کارت هم کار کوي، خو on-ramp یو ~$27 حداقل لري، نو د یوه $3 پلان لپاره یو ځل یو کوچنی بیلانس ډکول او پریښودل چې تمدیدونه یې ترې واخلي اسانه دي. دا یوازې-CPU دی، په جرمني کې یو datacenter — د یوه bot لپاره یو غیر-مسله، د دې پوهیدو ارزښت لري که تاسو یو GPU یا یوې ځانګړې سیمې ته اړتیا لرئ.
ریښتینی کتاکلی
یو Telegram bot یو له ترټولو ارزانه شیانو څخه دی چې تاسو یې ځان-کوربه کولی شئ: یو $3 box، یو systemd unit، او polling تاسو ته یو bot درکوي چې د crashونو او بیا پیلونو ژوندی دی بې ستاسو ماشومساتنې. یو webhook او یوه لویه پلان ته یوازې هغه وخت لاس ورسوئ چې مقیاس واقعاً یې اړ کړي — نه ځکه چې یوه ټیوټوریل تاسو ته وویل چې webhookونه «غوره» دي. کوچنی box واخلئ، token په یوه env فایل کې وساتئ، پریږدئ systemd اپټایم اداره کړي، او — له هر څه مخکې — د نوي-VPS د امنیت checklist وچلوئ نو box پخپله قفل وي.
د خپل کوربه کولو لپاره چمتو یاست؟ یو Telegram bot په سختۍ سرچینې کاروي — د Nano پلان ($3/میاشت) یې ۲۴/۷ بې زحمته چلوي.
تبصرې
لا تبصرې نشته. لومړی اوسئ.