uz
DF
Daniil Fedorov
марта 5, 2026
Обновлено марта 5, 2026

VPS'dagi Telegram bot: serverda ishga tushirish bo'yicha to'liq qo'llanma

Telegram’dagi bot mijozlarga javob berishi, arizalarni yig‘ishi, ogohlantirishlar yuborishi va hatto butun bir bo‘limning rutin ishlarini o‘z zimmasiga olishi mumkin. Muammo shundaki, u uy noutbukida faqat qopqoq birinchi marta yopilguncha “yashaydi”. Wi-Fi yo‘qoldi, noutbuk osilib qoldi, elektr o‘chdi — bot jim.

Yechim oddiy: botni VPS’ga ko‘chirish — bu 24/7 ishlaydigan virtual server. Ushbu qo‘llanmada butun yo‘lni ko‘rib chiqamiz: BotFather orqali Telegram’da botni qanday ulash, logikani qaysi tilda yozish, Telegram botni serverga qanday o‘rnatish va u yiqilib qolmasligi uchun nimalar qilish kerak. Telegram botni serverga qanday yuklash, Telegram botni serverda qanday ishga tushirish va Telegram bot uchun qaysi server kerakligini ham tushuntiramiz. Hatto serverlar bilan hech qachon ishlamaganlar uchun ham mos.

Nega Telegram-botga uy kompyuteri emas, alohida server kerak

Bot — aslida skript: Python yoki Node.js’dagi fayl, u Telegram Bot API orqali kiruvchi xabarlarni “tinglaydi” va ularga javob qaytaradi. Skript doimiy ishlashi shart. U uy kompyuterida aylansa, har qanday “mayda narsa” (elektr o‘chdi, OS yangilandi, kimdir routerni qayta yukladi) botni ishdan chiqaradi.

VPS (Virtual Private Server) — bu data-markazdagi ijaraga olingan virtual mashina. U o‘chmaydi, aloqa kanali barqaror, IP-manzil esa doimiy. Normal hosting provayderlari 99,9% uptime kafolatlaydi — demak bot deyarli uzluksiz aloqada bo‘ladi, hatto uyingizda internet sustlashsa ham.

Barqarorlikdan tashqari, VPS oddiy PC’da bo‘lmaydigan imkoniyatlarni beradi: bot yonida DB ko‘tarish, tezkor reaksiya uchun webhook sozlash, bir vaqtning o‘zida 5 ta botni ishga tushirish. “Telegram bot uchun server qilish” deganda fizik temir sotib olish emas, balki oyiga bir necha yuz rublga virtual mashina ijaraga olish nazarda tutiladi. Uy kompyuteri faqat kod yozish bosqichiga mos.

Ishga tushirish uchun nima kerak: 5 daqiqada texnologiyalar steki

Telegram’da botni ulash va uni “online”ga chiqarish uchun 3 ta komponent kerak bo‘ladi. Birinchisi: messenjer ichida @BotFather orqali ro‘yxatdan o‘tkazilgan bot. Ikkinchisi: Telegram API bilan ishlash logikasi yozilgan Python yoki Node.js’dagi kod. Uchinchi: Ubuntu’da ishlaydigan VPS — kod 24/7 aynan shu yerda ishlaydi.

To‘lov faqat VPS ijarasi uchun bo‘ladi. Telegram Bot API uchun bir tiyin ham olmaydi, freymvorklar bepul, Ubuntu esa litsenziyasiz ishlatiladi. Quyida har bir elementni alohida ko‘rib chiqamiz.

Telegram’da bot yaratish va BotFather orqali token olish

Botni serverga o‘rnatishdan oldin uni ro‘yxatdan o‘tkazish kerak. Telegram’da buning uchun ichki vosita bor: @BotFather boti. Messengerni oching, qidiruvdan BotFather’ni toping va Start bosing.

So‘ng /newbot yozing. BotFather avval chat tepasida ko‘rinadigan “display name”ni so‘raydi. Keyin noyob username berish kerak. Yagona talab: username oxiri bot yoki _bot bilan tugashi shart. Masalan: my_company_support_bot.

Agar nom bo‘sh bo‘lsa, BotFather token yuboradi. U taxminan shunday ko‘rinadi: 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ. Aslida bu botning paroli. Tokenga ega bo‘lgan odam botni to‘liq boshqaradi, shuning uchun tokenni jiddiy himoya qiling.

Token bilan ishlashning asosiy qoidalari: uni kod ichiga emas, .env fayliga saqlang; .env’ni .gitignore’ga qo‘shing, repozitoriyga tasodifan “push” bo‘lib ketmasin; sizib chiqishdan shubhalansangiz, BotFather’da /mybots ni tanlab tokenni qayta chiqarib oling.

Botni qaysi tilda yozish kerak: Python, Node.js yoki boshqami

Telegram Bot API HTTP orqali ishlaydi, shuning uchun texnik jihatdan istalgan dasturlash tili mos keladi. Amalda esa ko‘pchilik Python yoki Node.js’ni tanlaydi.

Python + aiogram 3.x: rus tilida ishlaydigan dasturchilar orasida eng ommabopi. To‘liq async, hujjatlar batafsil, ustiga-ustak Groosha’dan bepul kengaytirilgan qo‘llanma bor. Oddiy echo-botdan tortib DB, to‘lov va tashqi servisli murakkab tizimlargacha ko‘taradi.

Python + python-telegram-bot: boshlovchilar uchun yaxshi variant. Kirish osonroq, dokumentatsiyasi sifatli (lekin ingliz tilida).

Node.js + Telegraf / grammY: JavaScript’da yozadiganlar uchun. Telegraf barqaror va yillar davomida sinovdan o‘tgan, grammY esa yangiroq va TypeScript bilan yaxshiroq ishlaydi.

Bu qo‘llanmada misollar Python + aiogram’da bo‘ladi, chunki bu serverda Telegram botni ishga tushirish uchun eng keng tarqalgan tanlov (boshlovchilar orasida ham).

Polling va webhook: xabarlarni olishning ikki usuli va qaysi birini tanlash

Kimdir botga yozganida, Telegram xabarni o‘z tomonida navbatga qo‘yadi. Sizning kodingiz uni ikki xil usulda “olishi” mumkin.

Long polling: bot vaqti-vaqti bilan Telegram serverlariga “yangi narsa keldimi?” deb murojaat qiladi. Javob bo‘lmaguncha ulanish ochiq turadi. Asosiy plus: domen, sertifikat va oq IP kerak emas. Skriptni ishga tushirdingiz — bot ishlayapti. Minuslari: ulanishni ushlab turish resurs yeydi, reaksiya 1–2 soniyaga sekinroq bo‘lishi mumkin.

Webhook: siz Telegram’ga URL berasiz, va messenjer har yangi xabarda POST so‘rovini o‘zi yuboradi. Javob darhol, serverga yuk deyarli nol. Evaziga HTTPS’li domen kerak bo‘ladi: Nginx sozlash, SSL sertifikat olish. Odatda buni yuzlab/minglab foydalanuvchili prod uchun tanlashadi.

Mezon Long polling Webhook Tavsiya
Sozlash Minimal, darrov ishlaydi Domen + SSL kerak Start uchun polling
Javob tezligi 1–2 soniyagacha kechikish Darhol Prod uchun webhook
Serverga yuk Doimiy ulanish Faqat hodisa bo‘lganda Webhook tejamkor
Ommaviy IP kerakmi Yo‘q Ha Polling osonroq
Nimaga mos Develop, kichik yuklama Prod, yuqori yuklama Vazifaga bog‘liq

Birinchi ishga tushirish va ko‘p vazifalar uchun polling yetarli. Bu Telegram botni serverga ulashning eng sodda yo‘li: domen va sertifikat bilan ovora bo‘lmaysiz. Keyinroq tezlik kerak bo‘lsa, bot logikasini qayta yozmasdan webhook’ka o‘tish mumkin — faqat Telegram serveriga ulanish usuli o‘zgaradi.

Telegram-bot uchun qaysi server kerak va bu qancha turadi

Botni VPS’da ishga tushirish uchun kuchli temir shart emas. Telegram-bot aslida yengil fon jarayoni: kunning katta qismida u shunchaki xabar kutadi. Resurslar faqat so‘rov kelgan soniyalarda sarflanadi.

Bitta oddiy bot uchun minimum: 1 vCPU, 1 GB RAM va 10–20 GB SSD. Bu matn buyruqlarini qayta ishlaydigan va javob beradigan Python skript uchun yetarli. OS sifatida Ubuntu 22.04 yoki 24.04 LTS tanlang.

Agar bot yonida DB (PostgreSQL, SQLite) yoki cache uchun Redis bo‘lsa, 2 GB RAM olgan ma’qul. Bir serverda bir nechta bot yoki neyroset bilan bog‘liq variantlar uchun 4 GB RAM’dan boshlang.

Telegram bot serveri narxi hosting va konfiguratsiyaga bog‘liq. Taxminan: eng yengil VPS oyiga 200–300 rubl atrofida. Serverspace’da konfiguratsiya “slayderlar” bilan yig‘iladi: yadro, xotira, disk. Moskva data-markazi, minutli billing va Docker’li tayyor image’lar bor — hammasini noldan qo‘lda o‘rnatishga hojat qolmaydi.

Telegram-botni serverda ishga tushirish: bosqichma-bosqich

Amaliyotga o‘tamiz. Quyida 5 ta qadam: Telegram botni serverga deploy qilish va ishlaydigan natija olish uchun. Aslida bu — botni serverga bosqichma-bosqich joylash. Misollar Python + aiogram uchun (python’da serverda telegram botni ishga tushirish), lekin umumiy mantiq istalgan stack’da bir xil.

1-qadam. SSH orqali serverga ulanib, tizimni tayyorlaymiz

VPS yaratilgach, provayder IP va root parolni beradi. Terminalni oching (macOS/Linux’da bor, Windows’da PowerShell yoki PuTTY mos) va bajaring:

ssh root@SIZNING-IP

Ulangandan so‘ng paketlarni yangilang:

apt update && apt upgrade -y

Bot uchun alohida user yarating. Root ostida ishga tushirish yomon amaliyot: kodda bitta “teshik” bo‘lsa, hujumchi butun serverni oladi.

adduser botuser usermod -aG sudo botuser

2-qadam. Python o‘rnatamiz va virtual muhit yaratamiz

Ubuntu 22.04/24.04’da Python 3 odatda bor, lekin pip va venv moduli alohida o‘rnatiladi:

apt install python3-pip python3-venv -y

botuser ostida login qiling, loyiha papkasini yarating va venv’ni yoqing:

su - botuser mkdir mybot && cd mybot python3 -m venv venv source venv/bin/activate

Virtual muhit dependency’lar tizim paketlari bilan to‘qnashmasligi uchun kerak. Ayniqsa bitta serverda bir nechta loyiha bo‘lsa.

3-qadam. Bot kodini yuklaymiz va dependency’larni o‘rnatamiz

Agar kod Git’da bo‘lsa:

git clone https://github.com/SIZNING-REPO/mybot.git . pip install -r requirements.txt

Repo yo‘qmi? Fayllarni o‘zingizning kompyuteringizdan scp orqali ko‘chiring yoki botni bevosita serverda yozing. Aslida “Telegram botni serverga qanday tashlash” degani — fayllarni yetkazish va dependency’larni o‘rnatish.

Bot yonida .env fayl yarating va token yozing:

BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
Tokenni hech qachon kod ichiga yozmang. Faqat environment orqali.

4-qadam. Botni ishga tushirib, tekshiramiz

Avval qo‘lda ishga tushiring:

python3 bot.py

Telegram’da bot username’ini toping va /start yuboring. Javob kelsa — kod ishlayapti, dependency’lar joyida, token to‘g‘ri. To‘xtatish: Ctrl+C.

Hozircha bot SSH sessiya ochiq bo‘lgancha yashaydi. Terminalni yopsangiz, bot yiqiladi. Keyingi qadam shuni tuzatadi.

5-qadam. systemd orqali avtomatik ishga tushirishni sozlaymiz

systemd — Ubuntu’dagi servis menejeri. U OS startida botni ishga tushiradi va nosozlikdan keyin avtomatik ko‘taradi. Unit fayl yarating:

sudo nano /etc/systemd/system/mybot.service

Ichiga quyidagini joylang:

[Unit] Description=My Telegram Bot After=network.target [Service] User=botuser WorkingDirectory=/home/botuser/mybot ExecStart=/home/botuser/mybot/venv/bin/python3 bot.py Restart=always RestartSec=5 EnvironmentFile=/home/botuser/mybot/.env [Install] WantedBy=multi-user.target

Servisni yoqing va ishga tushiring:

sudo systemctl daemon-reload sudo systemctl enable mybot sudo systemctl start mybot

Status: sudo systemctl status mybot. Loglar: journalctl -u mybot -f. Endi bot serverda joylashdi va reboot’ni ham “omon” o‘tkazadi.

Bot va serverni qanday himoyalash: paranoyasiz xavfsizlik

Telegram botni serverga ulash qiyin emas, va buni “bepul” qilish ham mumkin — chunki himoya uchun utilitalar Ubuntu bilan birga keladi. “Bepul ulash” degani software tomoni: budjetdagi yagona pulli satr — VPS ijarasi.

Token .env’da, kodda emas. 1-qoida. Token ochiq GitHub’ga tushsa, skanerlar uni bir necha daqiqada topadi. .env’ni albatta .gitignore’ga kiriting.

Parol o‘rniga SSH-key. O‘zingizda ssh-keygen bilan kalit juftini yarating, public key’ni serverga yuboring (ssh-copy-id) va /etc/ssh/sshd_config’da parol bilan kirishni o‘chiring. Shunda password brute-force befoyda bo‘ladi.

Firewall (UFW). Faqat kerakli portlarni oching: SSH uchun 22, webhook + HTTPS bo‘lsa 80 va 443. Qolgani yopiq tursin:

sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable

fail2ban loglarni kuzatadi va ko‘p marta noto‘g‘ri kirishga uringan IP’ni avtomatik ban qiladi. O‘rnatish:
sudo apt install fail2ban -y.

Alohida user. 1-qadamda botuser yaratdik. Root’dan ishlatish xavfli: kodda zaiflik bo‘lsa, hujumchi darrov butun serverga ega bo‘ladi.

Bot ishga tushgandan keyin yiqilishiga olib keladigan 5 ta xato

Telegram’da botni o‘rnatish va ishga tushirishni bilsangiz ham, mayda xatolar hammasini buzishi mumkin. Mana eng ko‘p uchraydiganlari:

  1. Token ochiq repozitoriyda. Kod GitHub’ga “push” bo‘ladi, token esa faylda qoladi. Skanerlar darrov topadi, natijada bot boshqaruvi begona qo‘lga o‘tadi. Yechim: .env + .gitignore.
  2. Process manager’siz ishga tushirish. python3 bot.py SSH sessiyada ishga tushadi. Terminal yopildi — process o‘ldi. screen/tmux ham reboot’dan keyin yordam bermaydi. To‘g‘ri yo‘l: systemd va Restart=always.
  3. Exception’lar ushlanmagan. Bitta ushlanmagan xato butun jarayonni yiqitadi. Telegram turli tipdagi xabarlar yuboradi, kod birontasiga tayyor bo‘lmasa bot “sinadi”. try/except qo‘llang va log yozing.
  4. Telegram API limitidan oshish. Telegram sekundiga 30 ta xabargacha yuborishga ruxsat beradi. Navbatsiz mass-jo‘natma 429 (Too Many Requests)ga olib keladi va bot “jim” bo‘lib qoladi. asyncio.Queue yoki Celery ishlating.
  5. VPS noto‘g‘ri tanlangan. Juda kuchsiz — bot ulgurmaydi. Juda kuchli — pul “bo‘sh” yadroga ketadi. 1 GB RAM’dan boshlang, htop’da monitoring qiling va real ko‘rsatkich bo‘yicha masshtablang.

Bot bilan nimalarni avtomatlashtirish mumkin: biznes uchun 5 ta ssenariy

Botni serverda ishga tushirish — maqsad emas, vazifalarni hal qilish uchun vosita. Botni serverga joylagach, undan qanday foyda olish mumkinligini ko‘rib chiqing.

Mijozlarni qo‘llab-quvvatlash. Bot kiruvchi murojaatlarni tahlil qiladi, kategoriyalarga ajratadi va tipik savollarga avtomatik javob beradi. Murakkab holatlar operatorga o‘tadi. Bot 24/7 ishlaydi.

Bildirishnoma va alert’lar. Trigger bo‘lsa bot xabar yuboradi: sayt yiqildi, CRM’da lead keldi, CI/CD build tugadi. Siz hodisani pochta ochganda emas, soniyalar ichida bilasiz.

Kanallarga autoposting. Jadval bo‘yicha yoki yangi material chiqqanda bot Telegram kanalga postni o‘zi joylaydi. Media, blog va do‘konlar uchun mos.

To‘lovli do‘kon. Telegram ichki to‘lovlarni qo‘llab-quvvatlaydi (Stars ham). Bot katalogni ko‘rsatadi, buyurtma oladi va to‘lovni chat ichida qabul qiladi — tashqi saytga o‘tmasdan.

Neyroset bilan integratsiya. Botga LLM API (OpenAI, Ollama, istalgan self-hosted LLM) ulab, erkin savollarga javob beradigan, hujjatlardan “siqma” qiladigan va matn yozadigan assistent olasiz.

Xulosa

Bo‘sh serverdan ishlaydigan Telegram chat-botgacha — 5 qadam va taxminan 15–20 daqiqa. BotFather orqali ro‘yxatdan o‘tish, kod, VPS ijarasi, fayllarni yuklash va autostart sozlash. Terminalga umuman kirmagan bo‘lsangiz ham, bu yerda “super murakkab” hech narsa yo‘q.

Eng yengil konfiguratsiyadan boshlang. Serverspace’da VPS ijaraga oling, botni polling orqali ishga tushiring va real sharoitda sinab ko‘ring. Auditoriya o‘ssa — paneldagi slayderlar bilan resurslarni migratsiyasiz oshiring, webhook’ka o‘ting, DB ulang. Kirish oson, natijani esa birinchi kunning o‘zida ko‘rasiz.

Ko‘p beriladigan savollar

VPS’siz, bepul bot ishga tushirish mumkinmi?

Eksperiment uchun — ha: bot noutbukingizda ham ishlaydi. Ba’zi bepul bulut platformalari ham ruxsat beradi, lekin odatda bir necha daqiqa faol bo‘lmasa process’ni “uxlatib” qo‘yadi. 24/7 barqaror ish uchun VPS eng ishonchli variant bo‘lib qoladi.

Bitta serverda nechta bot ushlab turish mumkin?

Yuklamaga bog‘liq. 2 GB RAM’li VPS odatda 3–5 ta yengil botni bemalol ko‘taradi. Docker qo‘llasangiz, har bot alohida container’da ishlaydi va bir-biriga halaqit bermaydi.

Telegram-bot uchun domen kerakmi?

Polling’da yo‘q — IP yetarli. Webhook’da esa ha: Telegram faqat HTTPS URL qabul qiladi, sertifikat olish uchun domen kerak bo‘ladi.

Nega Docker systemd’dan yaxshiroq?

Docker bot muhitini to‘liq “qadoqlaydi”: Python versiyasi, kutubxonalar, konfiguratsiyalar. Bir serverda turli dependency’li bir nechta bot bo‘lsa yoki tez boshqa mashinaga ko‘chish kerak bo‘lsa qulay. Bitta oddiy bot uchun esa systemd ham yetarli.

Bot javob bermay qo‘ysa nima qilish kerak?

Avval sudo systemctl status mybot ni tekshiring, keyin loglarni ko‘ring: journalctl -u mybot --since '1 hour ago'. Ko‘pincha sabab — RAM yetishmasligi, kodda ushlanmagan xato, token eskirib qolishi yoki Telegram serverlari bilan aloqa uzilishi.

Вам также может быть интересно...