Telegram-botni uy kompyuteridan VPS’ga 30 daqiqada qanday köçiriş

VPS va serverlar Çop etilgan: · 7 daqiqa öqiş

Noutbukda işga tuşirilgan bot qopqoq yopilgunça yaşaydi. VPS’ga köçiş yarim soat oladi va kuniga 4 000 söm turadi — quyida Python va Node.js uçun bosqiçma-bosqiç yöriqnoma.

1-qadam. Server yarating

Şaxsiy kabinetda Ubuntu 22.04 yoki 24.04, 1 vCPU, 1 GB RAM, 20 GB disk tanlang — bir neçta bot uçun yetadi. Server avtomatik yaratiladi — odatda tölovdan keyin 15 daqiqa içida, söng IP-manzil va root parolini olasiz. Node.js va Python uçun tizimdagi farq ahamiyatsiz, Ubuntu — eng başorat qilinadigan variant.

2-qadam. Ulaning va tizimni tayyorlang

ssh root@SIZNING_IP
apt update && apt upgrade -y
adduser bot
usermod -aG sudo bot

Root’dan işlaş — yomon odat; alohida foydalanuvçi yarating. Keyingi barça buyruqlar undan bajariladi.

3-qadam. Muhitni örnating

Python:

sudo apt install -y python3 python3-venv python3-pip git
cd ~ && git clone https://github.com/siz/sizning-bot.git bot
cd bot && python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

Node.js:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs git
cd ~ && git clone https://github.com/siz/sizning-bot.git bot
cd bot && npm install

Bot tokeni va boşqa sirlarni kodga emas, loyiha papkasidagi .env fayliga qöying. Bot qölda işga tuşişini tekşiring: python bot.py yoki node index.js. Telegramda javob bersa — davom eting.

4-qadam. systemd xizmati sifatida işga tuşiring

Bu asosiy qadam: xizmat nosozlik yoki server qayta yuklanganidan keyin özi qayta işga tuşadi. /etc/systemd/system/bot.service faylini yarating:

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

[Service]
User=bot
WorkingDirectory=/home/bot/bot
EnvironmentFile=/home/bot/bot/.env
ExecStart=/home/bot/bot/venv/bin/python bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Node.js uçun ExecStart ni /usr/bin/node index.js ga almaştiring. Keyin:

sudo systemctl daemon-reload
sudo systemctl enable --now bot
sudo systemctl status bot
journalctl -u bot -f

Oxirgi buyruq loglarni real vaqtda körsatadi — biror narsa notöğri ketsa, xatolarni öşa yerda körasiz.

5-qadam (ixtiyoriy). Polling örniga webhook’lar

Long polling darhol işlaydi va heç narsa talab qilmaydi. Webhook’lar tezroq va tejamkorroq, lekin domen va HTTPS kerak. Domen A-yozuvini server IP’siga yönaltiring, Nginx va certbot örnating:

sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d bot.sizning-domen.uz

Nginx konfigida location /webhook ni bot tinglayotgan portga (masalan, 8080) yönaltiring va setWebhook orqali webhook’ni röyxatdan ötkazing. Telegram webhook’larni 443, 80, 88 va 8443 portlarda qabul qiladi.

6-qadam. Minimal xavfsizlik

  • Brandmauerni yoqing: sudo ufw allow OpenSSH && sudo ufw allow 443 && sudo ufw enable.
  • SSH uçun parol bilan kirişni öçiring, faqat kalitlarni qoldiring (/etc/ssh/sshd_config da PasswordAuthentication no).
  • fail2ban örnating — u parol tanlaşni bloklaydi.
  • Şaxsiy kabinetda server snapşotini oling (snapşotlar — pullik opsiya) — muvaffaqiyatsiz tajribalar uçun qaytiş nuqtasi.

Keyin nima

Botlar bir neçta bölganda yoki ma’lumotlar bazasi paydo bölganda xotira qöşing — bu qayta örnatmasdan qilinadi. Konteynerlar qulayroq bölsa, Docker ham odatdagidek örnatiladi. Tariflar va köp söraladigan savollarga javoblar — Telegram-bot uçun server sahifasida.

Maqoladagi vazifada yordam kerakmi?

Konfiguratsiyani tanlaymiz, narxini hisoblaymiz va köçişda yordam beramiz.

Nimani tanlaşni bilmayapsizmi? Maslahat beramiz va konfiguratsiya tanlaymiz

Nima kerakligini yozing — 1C uçun server, topşiriş punkti uçun kameralar yoki boşqa hostingdan köçiş. Yeçim tanlaymiz, aniq narxni aytamiz va köçişda yordam beramiz: maslahat beramiz va qadamlarni tuşuntiramiz.